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

下載本文檔

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

文檔簡介

實(shí)驗(yàn)一 can總線技術(shù)與ican模塊實(shí)驗(yàn)實(shí)驗(yàn)報(bào)告 學(xué)院: 自動化學(xué)院 專業(yè): 自動化專業(yè) 班級: 2010211410 姓名: 高娃 姚雷陽 學(xué)號:2011211975 2011211977 指導(dǎo)老師: 楊軍 一實(shí)驗(yàn)名稱:實(shí)驗(yàn)一 can總線技術(shù)與ican模塊實(shí)驗(yàn)二實(shí)驗(yàn)設(shè)備:計(jì)算機(jī)、can總線系列實(shí)驗(yàn)箱、測控設(shè)備箱、萬用表。三實(shí)驗(yàn)過程、實(shí)驗(yàn)內(nèi)容、實(shí)驗(yàn)記錄:(1)驅(qū)動程序安裝usbcan-2a接口卡的驅(qū)動程序需要自己手動進(jìn)行安裝,驅(qū)動程序已經(jīng)存放于實(shí)驗(yàn)準(zhǔn)備內(nèi)容中。找到驅(qū)動程序,直接點(diǎn)擊進(jìn)行安裝即可。安裝完成后,在“管理-設(shè)備管理器-通用串行總線控制器”中查看驅(qū)動是否安裝成功。注意:安裝驅(qū)動程序過程中pc機(jī)不能連接usb電纜。(2)icantest安裝與運(yùn)行 icantest安裝與運(yùn)行后,利用icantest軟件對ican系列各模塊進(jìn)行驗(yàn)證性測試,可以測試各模塊是否可以通過usbcan-2a接口卡與pc機(jī)正常連接與通信以及進(jìn)行簡單的測控操作。(3)各種ican模塊的測試1. 打開icantest軟件(老師,我們當(dāng)時(shí)覺得安裝這些過程太簡單了,沒意識到截圖,所以引用了一些ppt上的圖像,但后面測試部分的都是自己的截圖,希望老師諒解。) 在工具欄中點(diǎn)擊“系統(tǒng)配置”,在彈出的對話框中設(shè)置通信信息。如下圖: 圖 1 2. 點(diǎn)擊“搜索”,則can總線中連接的所有模塊應(yīng)該被搜索出來,列表顯示。包括模塊設(shè)置的macid。圖 2 3. 圖示為搜索完成后的顯示狀態(tài),在從站列表中將所有模塊予以顯示。點(diǎn)擊某個(gè)模塊,則彈出該模塊的操作窗口。 圖 3 4. 點(diǎn)擊“啟動”,再點(diǎn)擊“全部上線”。在從站列表中所有上線的模塊標(biāo)志變成綠色的三角,表示該模塊上線成功。圖 4 5. 試驗(yàn)各個(gè)模塊的基本輸入輸出功能。點(diǎn)擊繼電器模塊2404的4個(gè)輸出,聽到繼電器動作聲音。圖 5 連接4210d/a模塊的通道0到4017a/d模塊的通道5,輸入0x8000對應(yīng)得到5v的電壓輸出。圖 6圖 7 使用40558入/8出模塊連接按鈕作為i/o輸入,連接指示燈和繼電器作為i/o輸出。首先,連接好24v直流電源。圖 8 圖 9 然后,選擇1個(gè)指示燈、1個(gè)繼電器連接4055模塊的dout0、dout1,選擇1個(gè)按鈕連接4055模塊的din0。圖 10 最后,用鼠標(biāo)點(diǎn)擊4055窗口上的do輸出燈(對應(yīng)dout0、dout1),可控制指示燈的亮滅及繼電器的動作。當(dāng)目標(biāo)箱上的按鈕按下時(shí),di的指示燈會變化(對應(yīng)di0)。圖 11 將溫濕度傳感器連接至4017a/d模塊。圖 12圖 13通過4017a/d模塊的操作窗口,觀察通道0和通道1的電壓值,通過溫濕度傳感器的參數(shù)說明,換算出溫度和濕度值。圖 14 通道0和通道1的電壓值分別為:5.596v,4.740v;因?yàn)槿缦陆泳€圖所示,可知通道0和通道1的電壓值分別表示溫度和濕度。圖 15 實(shí)際溫度:(5.596v500)(20ma-4ma)50=34.975實(shí)際濕度:(4.740v500)(20ma-4ma)100%rh=59.25%rh(4)有關(guān)ican4055功能模塊的簡單功能實(shí)現(xiàn)的整體代碼1. 在生成的類頭文件sample4055dlg.h中的類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文件中編寫控制代碼 對變量的定義: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ù)的代碼:啟動按鈕消息響應(yīng)函數(shù)void csample4055:onstartsysbutton1() / todo: add your control notification handler code herecfg.icardtype=4;/使用usbcan2接線口cfg.icardind=0;/卡序號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ù)對can網(wǎng)絡(luò)是否啟動進(jìn)行判斷,返回為icanokmessagebox(系統(tǒng)啟動失敗);elsemessagebox(can網(wǎng)絡(luò)已啟動);鏈接按鈕消息響應(yīng)函數(shù)void csample4055:onlink4055button2() if(mgr_isstarted()!=1) messagebox(系統(tǒng)未啟動或啟動失敗,請先啟動can網(wǎng)絡(luò));else/ todo: add your control notification handler code hereroute_addslave(hroute,1,&hslave4055);/添加從站4055,macid=1if(slave_connect(hslave4055)!=icanok)/判斷從站4055是否連接成功messagebox(4055連接失敗); elsemessagebox(4055連接成功); settimer(1,1000,null);/設(shè)定開啟定時(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(hslave4055,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_isconnected(hslave4055)=1) updatedata(true);outvalue=strtol(m_invalue,null,16);/按十六進(jìn)制進(jìn)行讀取if(outvalue = 0 & outvalue =0.0&m_setch08;elsemessagebox(提示:請輸入010v電壓);if(m_setch1=0.0&m_setch18;/將buf3向右移8位elsemessagebox(提示:請輸入010v電壓); slave_senddata(hslave4210,0x60,buf,4);else messagebox(系統(tǒng)未啟動或從站未連接,請查看后再進(jìn)行操作);(7) 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*/): cdialog(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 your control notification handler code herecfg.icardtype=4;/使用usbcan2接線口cfg.icardind=0;/卡序號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ù)對can網(wǎng)絡(luò)是否啟動進(jìn)行判斷,返回為icanokmessagebox(系統(tǒng)啟動失敗);elsemessagebox(can網(wǎng)絡(luò)已啟動);void csample4017:onbuttonlink4017() / todo: add your control notification handler code hereif(mgr_isstarted()!=1) messagebox(系統(tǒng)未啟動或啟動失敗,請先啟動can網(wǎng)絡(luò));else/ todo: add your control notification handler code hereroute_addslave(hroute,3,&hslave4017);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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論