vb下基于modbus規(guī)約的串口通信

vb下基于modbus規(guī)約的串口通信

ID:9224552

大小:367.28 KB

頁數(shù):5頁

時間:2018-04-23

vb下基于modbus規(guī)約的串口通信_第1頁
vb下基于modbus規(guī)約的串口通信_第2頁
vb下基于modbus規(guī)約的串口通信_第3頁
vb下基于modbus規(guī)約的串口通信_第4頁
vb下基于modbus規(guī)約的串口通信_第5頁
資源描述:

《vb下基于modbus規(guī)約的串口通信》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、萬方數(shù)據(jù)8VB下基于Modbus規(guī)約的串口通信VB下基于M.Odbus規(guī)約的串口通信SeriaICOmmunicatiOnBaSedOnMOdbusPrOtOc01withMicrosOftVisuaIBasic董立君劉書偉侯逸青(航天空氣動力技術(shù)研究院,北京100074)摘要主要介紹Modbus—RTU規(guī)約,并在分析其通信原理的基礎(chǔ)上,結(jié)合一個應(yīng)用實例給出了VB6.O編程環(huán)境下利用MSComm通信控件實現(xiàn)基于該規(guī)約的工控機與數(shù)字顯示表之間的串口通信編程方法。關(guān)鍵詞:MsComm控件,RS一485,Modbus協(xié)議,CRC校驗AbslraclMOdbus—RTUprotocOIisintro

2、ducedbrIefly,andOnthebaSisOfanaIyseilscOmmunicatiOnprinciple,makeuse0fMSCOmmActiveXreaIizeseriaIcOmmunicatiOnwayofprogrammIngbetweenIPCanddIg.taIdispIaymeterbasedOnMod—bus—RTUprOtocOlunderMicrOsOftvisuaIbasIc6.OintegraleanappIicatiOn.Keywo州s:MsCOmmcOntrOl,RS一485,MOdbusprotOcOI,CRCcheck本文主要從應(yīng)用的角度利用V

3、B6.O的MicroSoftCom-municalion控件和Modbus—RTU協(xié)議,成功實現(xiàn)了某錐位控制系統(tǒng)中工控機與帶RS一485輸出接口的智能數(shù)字顯示表之間的串行通信功能。所用工控機為凌華Rack一610系列。DMP—ANFA數(shù)字顯示表應(yīng)用于某錐位控制系統(tǒng)中錐位的顯示,工控機通過讀取其顯示值作為反饋信號,實現(xiàn)錐位的閉環(huán)控制。1DMP—ANFA數(shù)宇顯示表的設(shè)置在DMP—ANFA數(shù)字顯示表的內(nèi)部已經(jīng)固化好Modbus—RTU通信協(xié)議及工作指令,允許用戶預(yù)先設(shè)定本機的地址碼。此外,要注意通信波特率必須與工控機的波特率相匹配。本例數(shù)字顯示表設(shè)置:通信地址碼:01通信波特率:9600小數(shù)點:2

4、位顯示最大量程:100.00顯示最小量程:0.002工控機通信軟件本文的工控機通信軟件主要是利用VisuaIBasIc6.0中的Mscomm通信控件來實現(xiàn)的,在VB6.O中對串口進行編程使用Mscomm控件可加快開發(fā)進度。該控件主要是為RS一232的通用串口而設(shè)計。所以為了利用工控機上現(xiàn)有的RS一232接口,通常是使用RS232/485的轉(zhuǎn)換器。通過轉(zhuǎn)換器,我們就可以像開發(fā)通用的RS一232串口一樣來快速開發(fā)基于RS一485接口的工控機通信軟件。工控機通過RS232接口,經(jīng)RS232/RS485轉(zhuǎn)換模塊與數(shù)字顯示表相連接,數(shù)字顯示表被賦予唯一的通訊地址碼用以識別身份,這樣上位工控機即能通過R

5、S一485總線實現(xiàn)對進錐系統(tǒng)錐位位置的采集與監(jiān)控。(1)工控機通信軟件界面(2)MSComm控件初始化程序設(shè)計根據(jù)數(shù)字顯示表的串行通信協(xié)議規(guī)定,在MSComm控件初始化程序中,主要是進行一些必須的串口初始化設(shè)定。具體的操作如下面代碼說明:MSComml.CommP0rt=1MSComml.setlings=叼600,h,8.1”∥設(shè)定需要使用的串口//設(shè)定傳輸?shù)牟ㄌ芈屎托r灧绞綀D1工控機通信軟件界面MSComml.

6、nputMode=comInputModeBinary//設(shè)定為二進制的數(shù)據(jù)流方式MSComml.1nputLen=0//一次全部讀入緩沖區(qū)全部內(nèi)容MSComml.PorcOpe

7、n=True//打開通訊端口MSComml.InBuffe忙ount=O//清空接收緩沖區(qū)MSComml.RThreshoId=9//設(shè)置輸入緩沖區(qū)字符輸入門限(3)Modbus—RTU協(xié)議的CRC校驗的實現(xiàn)方法冗余循環(huán)碼(CRC)包含2個字節(jié),即16位二進制。CRC碼由發(fā)送設(shè)備計算,放置于發(fā)送信息的尾部。接收信息的設(shè)備再重新計算接收到信息的CRC碼,比較計算得到的CRC碼是否與接收到的相符,如果鼴者不相符,則表明出錯。計算CRC碼的步驟為:預(yù)置16位寄存器為十六進制FFFF(即全為1)。稱此寄存器為CRC寄存器;把第一個8位數(shù)據(jù)與16位CRC寄存器的低位相異或,把結(jié)果放于CRC寄存器;把寄

8、存器的內(nèi)容右移一位(朝低位),用O填補最高位,檢查最低位;如果最低位為O:重復(fù)第3步(再次移位);如果最低位為1:CRC寄存器與多項式A001(1010o00000000001)進行異或;重復(fù)步驟3和4,直到右移8次,這樣整個8位數(shù)據(jù)全部進行了處理;萬方數(shù)據(jù)《工業(yè)控制計算機》2006年19卷第8期9重復(fù)步驟2到步驟5,進行下一個8位數(shù)據(jù)的處理;最后得到的CRC寄存器即為CRC碼。根據(jù)上述規(guī)則,編寫VB下CRC

當前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。