CAN總線技術(shù)與iCAN模塊實(shí)驗(yàn)報(bào)告_第1頁(yè)
CAN總線技術(shù)與iCAN模塊實(shí)驗(yàn)報(bào)告_第2頁(yè)
CAN總線技術(shù)與iCAN模塊實(shí)驗(yàn)報(bào)告_第3頁(yè)
CAN總線技術(shù)與iCAN模塊實(shí)驗(yàn)報(bào)告_第4頁(yè)
CAN總線技術(shù)與iCAN模塊實(shí)驗(yàn)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩13頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 實(shí)驗(yàn)一 can總線技術(shù)與ican模塊實(shí)驗(yàn)實(shí)驗(yàn)報(bào)告 學(xué)院: 自動(dòng)化學(xué)院 專(zhuān)業(yè): 自動(dòng)化專(zhuān)業(yè) 班級(jí): 2010211410 姓名: 高娃 姚雷陽(yáng) 學(xué)號(hào):2011211975 2011211977 指導(dǎo)老師: 楊軍 一實(shí)驗(yàn)名稱(chēng):實(shí)驗(yàn)一 can總線技術(shù)與ican模塊實(shí)驗(yàn)二實(shí)驗(yàn)設(shè)備:計(jì)算機(jī)、can總線系列實(shí)驗(yàn)箱、測(cè)控設(shè)備箱、萬(wàn)用表。三實(shí)驗(yàn)過(guò)程、實(shí)驗(yàn)內(nèi)容、實(shí)驗(yàn)記錄:(1)驅(qū)動(dòng)程序安裝usbcan-2a接口卡的驅(qū)動(dòng)程序需要自己手動(dòng)進(jìn)行安裝,驅(qū)動(dòng)程序已經(jīng)存放于實(shí)驗(yàn)準(zhǔn)備內(nèi)容中。找到驅(qū)動(dòng)程序,直接點(diǎn)擊進(jìn)行安裝即可。安裝完成后,在“管理-設(shè)備管理器-通用串行總線控制器”中查看驅(qū)動(dòng)是否安裝成功。注意:安裝驅(qū)動(dòng)程序過(guò)

2、程中pc機(jī)不能連接usb電纜。(2)icantest安裝與運(yùn)行 icantest安裝與運(yùn)行后,利用icantest軟件對(duì)ican系列各模塊進(jìn)行驗(yàn)證性測(cè)試,可以測(cè)試各模塊是否可以通過(guò)usbcan-2a接口卡與pc機(jī)正常連接與通信以及進(jìn)行簡(jiǎn)單的測(cè)控操作。(3)各種ican模塊的測(cè)試1. 打開(kāi)icantest軟件(老師,我們當(dāng)時(shí)覺(jué)得安裝這些過(guò)程太簡(jiǎn)單了,沒(méi)意識(shí)到截圖,所以引用了一些ppt上的圖像,但后面測(cè)試部分的都是自己的截圖,希望老師諒解。) 在工具欄中點(diǎn)擊“系統(tǒng)配置”,在彈出的對(duì)話框中設(shè)置通信信息。如下圖: 圖 1 2. 點(diǎn)擊“搜索”,則can總線中連接的所有模塊應(yīng)該被搜索出來(lái),列表顯示。包括模

3、塊設(shè)置的macid。圖 2 3. 圖示為搜索完成后的顯示狀態(tài),在從站列表中將所有模塊予以顯示。點(diǎn)擊某個(gè)模塊,則彈出該模塊的操作窗口。 圖 3 4. 點(diǎn)擊“啟動(dòng)”,再點(diǎn)擊“全部上線”。在從站列表中所有上線的模塊標(biāo)志變成綠色的三角,表示該模塊上線成功。圖 4 5. 試驗(yàn)各個(gè)模塊的基本輸入輸出功能。點(diǎn)擊繼電器模塊2404的4個(gè)輸出,聽(tīng)到繼電器動(dòng)作聲音。圖 5 連接4210d/a模塊的通道0到4017a/d模塊的通道5,輸入0x8000對(duì)應(yīng)得到5v的電壓輸出。圖 6圖 7 使用40558入/8出模塊連接按鈕作為i/o輸入,連接指示燈和繼電器作為i/o輸出。首先,連接好24v直流電源。圖 8 圖 9 然

4、后,選擇1個(gè)指示燈、1個(gè)繼電器連接4055模塊的dout0、dout1,選擇1個(gè)按鈕連接4055模塊的din0。圖 10 最后,用鼠標(biāo)點(diǎn)擊4055窗口上的do輸出燈(對(duì)應(yīng)dout0、dout1),可控制指示燈的亮滅及繼電器的動(dòng)作。當(dāng)目標(biāo)箱上的按鈕按下時(shí),di的指示燈會(huì)變化(對(duì)應(yīng)di0)。圖 11 將溫濕度傳感器連接至4017a/d模塊。圖 12圖 13通過(guò)4017a/d模塊的操作窗口,觀察通道0和通道1的電壓值,通過(guò)溫濕度傳感器的參數(shù)說(shuō)明,換算出溫度和濕度值。圖 14 通道0和通道1的電壓值分別為:5.596v,4.740v;因?yàn)槿缦陆泳€圖所示,可知通道0和通道1的電壓值分別表示溫度和濕度。圖

5、 15 實(shí)際溫度:(5.596v500)(20ma-4ma)50=34.975實(shí)際濕度:(4.740v500)(20ma-4ma)100%rh=59.25%rh(4)有關(guān)ican4055功能模塊的簡(jiǎn)單功能實(shí)現(xiàn)的整體代碼1. 在生成的類(lèi)頭文件sample4055dlg.h中的類(lèi)csample4055中添加申明變量:public:unsigned char buf1;/發(fā)送數(shù)據(jù)的數(shù)據(jù)緩存區(qū)unsigned char recbuf1;/接受數(shù)據(jù)的數(shù)據(jù)緩存區(qū)unsigned long len;int outvalue;int count;cstring str;2. 在sample4055.cpp文件

6、中編寫(xiě)控制代碼 對(duì)變量的定義:routecfg cfg; handle hroute=0; /新的ican網(wǎng)絡(luò)handle hslave4055=0;/數(shù)字量輸入輸出模塊4055,macid=1csample4055:csample4055(cwnd* pparent /*=null*/): cdialog(csample4055:idd, pparent)buf0=0;recbuf0=0;count=0;len=0;str=;3. 添加每個(gè)控件消息響應(yīng)函數(shù)的代碼:?jiǎn)?dòng)按鈕消息響應(yīng)函數(shù)void csample4055:onstartsysbutton1() / todo: add your c

7、ontrol notification handler code herecfg.icardtype=4;/使用usbcan2接線口cfg.icardind=0;/卡序號(hào)cfg.icanind=0;/can通道選擇(0表示0通道;1表示1通道)cfg.wcanbaud=0x001c;/波特率的設(shè)定0x001c(500kbps)cfg.imastercycle=500;/主站循環(huán)周期cfg.wmasterid=0; /主站id mgr_addroute(cfg,&hroute);/添加ican網(wǎng)絡(luò)if(mgr_startsys()!=icanok)/調(diào)用mgr_startsys()函數(shù)對(duì)can網(wǎng)

8、絡(luò)是否啟動(dòng)進(jìn)行判斷,返回為icanokmessagebox(系統(tǒng)啟動(dòng)失敗);elsemessagebox(can網(wǎng)絡(luò)已啟動(dòng));鏈接按鈕消息響應(yīng)函數(shù)void csample4055:onlink4055button2() if(mgr_isstarted()!=1) messagebox(系統(tǒng)未啟動(dòng)或啟動(dòng)失敗,請(qǐng)先啟動(dòng)can網(wǎng)絡(luò));else/ todo: add your control notification handler code hereroute_addslave(hroute,1,&hslave4055);/添加從站4055,macid=1if(slave_connect(hsla

9、ve4055)!=icanok)/判斷從站4055是否連接成功messagebox(4055連接失敗); elsemessagebox(4055連接成功); settimer(1,1000,null);/設(shè)定開(kāi)啟定時(shí)循環(huán),1代表消息事件id,1000表示1000ms即1s定時(shí)器消息響應(yīng)函數(shù)void csample4055:ontimer(uint nidevent) /timer事件函數(shù)/ todo: add your message handler code here and/or call defaultif(nidevent=1) len=1;slave_getdidata(hslave

10、4055,recbuf,&len); /讀取4055數(shù)字量輸入端口數(shù)據(jù)str.format(0x%02x,recbuf0);m_getdi.setwindowtext(str);count=count+1; cdialog:ontimer(nidevent); 設(shè)置按鈕消息響應(yīng)函數(shù),設(shè)置4055do通道控制狀態(tài)值void csample4055:onbuttonsetvalue() /設(shè)定4055數(shù)字量輸出端口值/ todo: add your control notification handler code hereif(mgr_isstarted()=1)&(slave_isconnec

11、ted(hslave4055)=1) updatedata(true);outvalue=strtol(m_invalue,null,16);/按十六進(jìn)制進(jìn)行讀取if(outvalue = 0 & outvalue =0.0&m_setch08;elsemessagebox(提示:請(qǐng)輸入010v電壓);if(m_setch1=0.0&m_setch18;/將buf3向右移8位elsemessagebox(提示:請(qǐng)輸入010v電壓); slave_senddata(hslave4210,0x60,buf,4);else messagebox(系統(tǒng)未啟動(dòng)或從站未連接,請(qǐng)查看后再進(jìn)行操作);(7)

12、ican4210模塊自編程序運(yùn)行結(jié)果與界面截圖 圖18(8) 8路模擬量輸入模塊ican4017編程使用1. 在生成的.h頭文件中添加使用到的變量的申明:public:unsigned char recbuf16;unsigned long len;int count;2. 在.cpp文件中首先添加ican網(wǎng)絡(luò)定義和申明以及變量的初始化操作。routecfg cfg;handle hroute=0; /新的ican網(wǎng)絡(luò)handle hslave4017=0;/ai模塊4017,macid=3csample4017:csample4017(cwnd* pparent /*=null*/): cd

13、ialog(csample4017:idd, pparent)/afx_data_init(csample4017)m_valuech0 = 0.0;m_valuech1 = 0.0;m_valuech2 = 0.0;m_valuech3 = 0.0;m_counter = 0;/afx_data_initrecbuf0=0;recbuf1=0;recbuf2=0;recbuf3=0;recbuf4=0;recbuf5=0;recbuf6=0;recbuf7=0;len=0;count=0;void csample4017:onbuttonstartcansys() / todo: add y

14、our control notification handler code herecfg.icardtype=4;/使用usbcan2接線口cfg.icardind=0;/卡序號(hào)cfg.icanind=0;/can通道選擇(0表示0通道;1表示1通道)cfg.wcanbaud=0x001c;/波特率的設(shè)定0x001c(500kbps)cfg.imastercycle=500;/主站循環(huán)周期cfg.wmasterid=0; /主站id mgr_addroute(cfg,&hroute);/添加ican網(wǎng)絡(luò)if(mgr_startsys()!=icanok)/調(diào)用mgr_startsys()函數(shù)

15、對(duì)can網(wǎng)絡(luò)是否啟動(dòng)進(jìn)行判斷,返回為icanokmessagebox(系統(tǒng)啟動(dòng)失敗);elsemessagebox(can網(wǎng)絡(luò)已啟動(dòng));void csample4017:onbuttonlink4017() / todo: add your control notification handler code hereif(mgr_isstarted()!=1) messagebox(系統(tǒng)未啟動(dòng)或啟動(dòng)失敗,請(qǐng)先啟動(dòng)can網(wǎng)絡(luò));else/ todo: add your control notification handler code hereroute_addslave(hroute,3,&h

16、slave4017);if(slave_connect(hslave4017)!=icanok)messagebox(4017連接失敗); elsemessagebox(4017連接成功);settimer(1,1000,null);void csample4017:ontimer(uint nidevent) / todo: add your message handler code here and/or call defaultif(nidevent=1) len=16; slave_getaidata(hslave4017,recbuf,&len); m_valuech0=(double)(recbuf0*16*16+recbuf1)-0x8000)*10/(double)0x8000; m_valuech1=(double)(recbuf2*16*16+recbuf3)-0x8000)*10/(d

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論