隨著Modbus TCP和Modbus RTU兩種協(xié)議在工業(yè)現(xiàn)場設(shè)備的普及,要實現(xiàn)這兩種協(xié)議互轉(zhuǎn)的需求日益增加,GZCOM-NET可以實現(xiàn)該轉(zhuǎn)換功能,本文將詳細介紹轉(zhuǎn)換原理及使用。
原理概述
1. Modbus RTU/TCP協(xié)議簡介
Modbus通信協(xié)議具有多個變種,其中最著名的是Modbus RTU、Modbus ASCII和Modbus TCP三種。在工業(yè)現(xiàn)場一般都是采用Modbus RTU協(xié)議。與ModbusRTU協(xié)議相比較,ModbusTCP協(xié)議則是在RTU協(xié)議上加一個MBAP報文頭,并且由于TCP是基于可靠連接的服務(wù),RTU協(xié)議中的CRC校驗碼就不再需要,兩者幀格式差異如圖1所示。
圖1
1.1 ModbusRTU
1.2Modbus TCP
- Modbus TCP數(shù)據(jù)幀(ADU)由MBAP+PDU組成,物理層為以太網(wǎng)接口;
- MBAP:報文頭,長度7個字節(jié)。
1.3Modbus RTU/TCP共同點
- Modbus TCP和Modbus RTU數(shù)據(jù)幀中的PDU部分是相同的;
- PDU: 協(xié)議數(shù)據(jù)單元(Protocol Data Unit),由功能碼+數(shù)據(jù)組成。功能碼是一個字節(jié),數(shù)據(jù)長度不定,由具體功能碼的具體功能決定。
2. Modbus RTU轉(zhuǎn)Modbus TCP
Modbus RTU數(shù)據(jù)幀轉(zhuǎn)為Modbus TCP數(shù)據(jù)幀過程為取出協(xié)議數(shù)據(jù)單元(PDU),并且加入報文頭部(MBAP),將附加地址對應(yīng)到報文頭部的單元標識符,如圖2所示。
圖2
- 增加了報文頭部,并且去掉了附加地址和差錯校驗;
- 事務(wù)處理標識:可以理解為報文的序列號,一般每次通信后就要加1以區(qū)別不同的通信數(shù)據(jù)報文,由客戶端生成,應(yīng)答時復制該值;
- 協(xié)議標識符:表示Modbus TCP協(xié)議,由客戶端生成,應(yīng)答時復制該值;
- 長度:表示該字節(jié)后面的數(shù)據(jù)長度,單位為字節(jié);
- 單元標識符:設(shè)備地址,由客戶端生成,應(yīng)答時復制該值。
3. Modbus TCP轉(zhuǎn)Modbus RTU
Modbus TCP數(shù)據(jù)幀轉(zhuǎn)為Modbus RTU數(shù)據(jù)幀過程為取出協(xié)議數(shù)據(jù)單元(PDU),并且加入附加地址和差錯校驗,將報文頭部的單元標識符對應(yīng)到附加地址,如圖3所示。
圖3
- 單元標識符作為附加地址;
- 增加差錯校驗。
網(wǎng)關(guān)實現(xiàn)轉(zhuǎn)換
1. Modbus RTU Master(RS485/RS232) 轉(zhuǎn) Modbus TCP Slave
該轉(zhuǎn)換可實現(xiàn)用戶終端作為Modbus TCP從機,數(shù)據(jù)采集中心作為Modbus RTU主機。網(wǎng)關(guān)實現(xiàn)Modbus RTU和Modbus TCP兩種數(shù)據(jù)的轉(zhuǎn)換,使用RS485/RS232接口與Modbus RTU主站通信,使用TCP Client與Modbus TCP從站通信,如圖4所示。
圖4
1.1 網(wǎng)關(guān)協(xié)議轉(zhuǎn)換配置
以RS485為例,打開網(wǎng)關(guān)網(wǎng)頁左邊欄,選擇【協(xié)議轉(zhuǎn)換】,在轉(zhuǎn)換選擇頁面里選擇【Modbus RTU Master(RS485) 轉(zhuǎn) Modbus TCP Slave】,然后點擊【保存】,如圖5所示。
圖5
1.2 網(wǎng)關(guān)TCP Client配置
打開網(wǎng)關(guān)網(wǎng)頁左邊欄,選擇【網(wǎng)絡(luò)配置】,在網(wǎng)絡(luò)配置面里選擇【TCP/UDP Client】,配置客戶端參數(shù),然后點擊【保存】,如圖6所示。
圖6
1.3 RS232/RS485配置
打開網(wǎng)關(guān)網(wǎng)頁左邊欄,選擇【RS232/RS485配置】,在網(wǎng)絡(luò)配置面里選擇【RS485】,配置串口參數(shù),然后點擊【保存】,如圖7所示。
圖7
1.4 模擬主/從機配置
用PC打開Modbus模擬軟件,創(chuàng)建Modbus RTU主機和Modbus TCP從機,如圖8所示。
圖8
1.5 結(jié)果展示
Modbus RTU主機寫入Modbus TCP從機的寄存器成功,并且讀取Modbus TCP從機寄存器值成功,如圖9所示。
圖9
2. Modbus TCP Master 轉(zhuǎn) Modbus RTU Slave
該轉(zhuǎn)換可實現(xiàn)傳感器作為Modbus RTU從機,數(shù)據(jù)采集中心作為Modbus TCP主機。GZCOM-NET作為Modbus TCP和Modbus RTU兩種數(shù)據(jù)的轉(zhuǎn)換網(wǎng)關(guān),使用TCP Server與Modbus TCP主站通信,使用RS485或RS232接口與 Modbus RTU從站通信,如圖10所示。
圖10
2.1 網(wǎng)關(guān)協(xié)議轉(zhuǎn)換配置
打開網(wǎng)關(guān)的網(wǎng)頁配置頁面左邊欄,選擇【協(xié)議轉(zhuǎn)換】,在轉(zhuǎn)換選擇頁面里選擇【Modbus TCP Master轉(zhuǎn)Modbus RTU Slave】,然后點擊【保存】,如圖11所示。
圖11
2.2 網(wǎng)關(guān)TCP Server配置
打開網(wǎng)關(guān)網(wǎng)頁左邊欄,選擇【網(wǎng)絡(luò)配置】,在網(wǎng)絡(luò)配置面里選擇【TCP Server】,配置服務(wù)器參數(shù),然后點擊【保存】,如圖12所示。
圖12
2.3 RS232/RS485配置
RS232/RS485配置方法Modbus RTU Master(RS485/RS232) 轉(zhuǎn) Modbus TCP Slave一樣。
2.4 模擬主/從機配置
用PC打開Modbus模擬軟件,創(chuàng)建Modbus TCP主機和Modbus RTU從機,如圖 13所示。
圖13
2.5 結(jié)果展示
Modbus TCP主機寫入Modbus RTU從機的寄存器成功,并且讀取Modbus RTU從機寄存器值成功,如圖14所示。
圖14