RS-232轉(zhuǎn)RS-485網(wǎng)絡(luò)的通信
4 網(wǎng)絡(luò)通訊協(xié)議的介紹
通過UT-201 在監(jiān)控計算機(jī)和智能儀表之間搭建的RS-485 網(wǎng)絡(luò),硬件是采用RS-485 接線,主從式半雙工通訊,主機(jī)呼叫從機(jī)地址,從機(jī)應(yīng)答方式通訊。通信協(xié)議是遵循MODBUS 協(xié)議,由于是和現(xiàn)場智能儀表進(jìn)行通訊,所以選擇MODBUS 通訊協(xié)議的RTU(遠(yuǎn)程終端設(shè)備)模式,數(shù)據(jù)幀10 位,1 個起始位,8 個數(shù)據(jù)位,1 個停止位,無校驗。波特率:9600;19200;38400。
MODBUS 協(xié)議共有二十幾個功能編碼,我們用的智能儀表是XMD5000 萬能輸入多路巡檢儀,它只需要用到MODBUS 協(xié)議的03H、06H、83H、86H 等幾個功能編碼就能夠?qū)崿F(xiàn)基本數(shù)據(jù)的傳送。
例如主機(jī)希望讀取1 號儀表第1 通道(寄存器地址0010)的瞬時值(假設(shè)為130),則只需要調(diào)用功能編碼03H。主機(jī)請求和從機(jī)響應(yīng)的幀格式如下:
主機(jī)發(fā)送:
第1 字節(jié)ARD : 從機(jī)地址碼(=001~254)
第 2 字節(jié)03H : 讀寄存器值功能碼
第3、4 字節(jié) : 要讀的寄存器開始地址
第5、6 字節(jié) : 要讀的寄存器數(shù)量
第7、8 字節(jié) : 從字節(jié)1 到6 的CRC16 校驗和
從機(jī)回送:
浮點數(shù):43020000 表示整數(shù)130 (符合IEEE-754 標(biāo)準(zhǔn)的單精度浮點數(shù))
第1 字節(jié)ARD : 從機(jī)地址碼(=001~254)
第2 字節(jié)03H : 返回讀功能碼
第3 字節(jié) : 字節(jié)總數(shù)
第4~7 字節(jié) : 寄存器數(shù)據(jù)
第8、9 字節(jié) : 從字節(jié)1 到7 的CRC16 校驗和
當(dāng)從機(jī)接收錯誤時,從機(jī)回送:
第1 字節(jié)ARD : 從機(jī)地址碼(=001~254)
第2 字節(jié)83H : 讀寄存器值出錯
第3 字節(jié)信息碼 : 可查信息碼表
第4、5 字節(jié) : 從字節(jié)1 到3 的CRC16 校驗和
UT-201接口轉(zhuǎn)換器遵循MODBUS 通訊協(xié)議,幀格式以及所執(zhí)行的功能都有明確的定義,不能隨意更改。在通信過程中,要確保主機(jī)和從機(jī)的對應(yīng)關(guān)系正確。此外,用戶可以根據(jù)實際需要配置合適的傳輸波特率。
5 應(yīng)用VB(Visual Basic)開發(fā)通信程序
自來水廠泵站監(jiān)控組態(tài)軟件很多都是應(yīng)用美國羅克韋爾(Rockwell)公司開發(fā)的RSView32軟件,RSView32 軟件支持VB 編程,在此基礎(chǔ)上開發(fā)通信應(yīng)用程序相當(dāng)方便、實用。
在開發(fā)VB 通信應(yīng)用程序中,調(diào)用MSComm 控件,使得程序更加簡明、有效。MSComm控件是Microsoft 公司提供的簡化Windows 下串行通信編程的ActiveX 控件,它為應(yīng)用程序提供了通過串行接口收發(fā)數(shù)據(jù)的簡便方法。程序主要由以下幾個部分組成:
初始化MSComm 控件,主要是對串口進(jìn)行設(shè)置,包括波特率、校驗位、數(shù)據(jù)位、停止位的設(shè)置。
設(shè)置并發(fā)送讀指令,主要是根據(jù)MODBUS 通訊協(xié)議對要讀取的智能儀表和寄存器地址進(jìn)行設(shè)置,以及計算出CRC16 校驗和。
接收數(shù)據(jù),主要是讀取智能儀表回送的響應(yīng)幀。
處理數(shù)據(jù),主要是判斷響應(yīng)幀數(shù)據(jù)的有效性,正確則存取數(shù)據(jù),否則重新再讀取。
根據(jù)UT-201 轉(zhuǎn)換器及智能儀表的通信原理畫出了圖3 所示的主機(jī)通信程序結(jié)構(gòu)框圖。
圖3 通訊程序框圖。
6 結(jié)束語
經(jīng)過現(xiàn)場調(diào)試,實現(xiàn)了1 臺監(jiān)控計算機(jī)通過1 個UT-201接口轉(zhuǎn)換器與10 臺智能儀表組成的RS-485網(wǎng)絡(luò)連接,每臺智能儀表連接兩個埋置式鉑熱電阻和三個埋置式銅電阻。實際應(yīng)用證明,這種方式組成的系統(tǒng),結(jié)構(gòu)簡單,應(yīng)用方便,能滿足控制需要。
本文的創(chuàng)新點是:通過該系統(tǒng)能夠根據(jù)具體的協(xié)議實現(xiàn)智能儀表與監(jiān)控組態(tài)軟件RSView32 之間的數(shù)據(jù)交換,從而把現(xiàn)場智能儀表檢測到的數(shù)據(jù)實時地在監(jiān)控計算機(jī)上顯示。
評論