新聞中心

EEPW首頁(yè) > 網(wǎng)絡(luò)與存儲(chǔ) > 設(shè)計(jì)應(yīng)用 > GZCOM-NET網(wǎng)關(guān)1分鐘實(shí)現(xiàn)Modbus TCP轉(zhuǎn)RTU

GZCOM-NET網(wǎng)關(guān)1分鐘實(shí)現(xiàn)Modbus TCP轉(zhuǎn)RTU

作者:ZLG致遠(yuǎn)電子 時(shí)間:2022-12-07 來(lái)源:電子產(chǎn)品世界 收藏

隨著Modbus TCPModbus RTU兩種協(xié)議在工業(yè)現(xiàn)場(chǎng)設(shè)備的普及,要實(shí)現(xiàn)這兩種協(xié)議互轉(zhuǎn)的需求日益增加,GZCOM-NET可以實(shí)現(xiàn)該轉(zhuǎn)換功能,本文將詳細(xì)介紹轉(zhuǎn)換原理及使用。

本文引用地址:http://m.butianyuan.cn/article/202212/441361.htm

原理概述

1. Modbus RTU/TCP協(xié)議簡(jiǎn)介

Modbus通信協(xié)議具有多個(gè)變種,其中最著名的是Modbus RTU、Modbus ASCIIModbus TCP三種。在工業(yè)現(xiàn)場(chǎng)一般都是采用Modbus RTU協(xié)議。與ModbusRTU協(xié)議相比較,ModbusTCP協(xié)議則是在RTU協(xié)議上加一個(gè)MBAP報(bào)文頭,并且由于TCP是基于可靠連接的服務(wù),RTU協(xié)議中的CRC校驗(yàn)碼就不再需要,兩者幀格式差異如圖1所示。

image.png

1

1.1 ModbusRTU

Modbus RTU數(shù)據(jù)幀(ADU)由地址+PDU+校驗(yàn)組成,物理層為串口,包括RS232、RS422、RS485。

1.2Modbus TCP

● Modbus TCP數(shù)據(jù)幀(ADU)MBAP+PDU組成,物理層為以太網(wǎng)接口;

MBAP:報(bào)文頭,長(zhǎng)度7個(gè)字節(jié)。

1.3Modbus RTU/TCP共同點(diǎn)

Modbus TCPModbus RTU數(shù)據(jù)幀中的PDU部分是相同的;

PDU: 協(xié)議數(shù)據(jù)單元(Protocol Data Unit),由功能碼+數(shù)據(jù)組成。功能碼是一個(gè)字節(jié),數(shù)據(jù)長(zhǎng)度不定,由具體功能碼的具體功能決定。

2. Modbus RTU轉(zhuǎn)Modbus TCP

Modbus RTU數(shù)據(jù)幀轉(zhuǎn)為Modbus TCP數(shù)據(jù)幀過(guò)程為取出協(xié)議數(shù)據(jù)單元(PDU),并且加入報(bào)文頭部(MBAP),將附加地址對(duì)應(yīng)到報(bào)文頭部的單元標(biāo)識(shí)符,如圖2所示。

image.png

2

增加了報(bào)文頭部,并且去掉了附加地址和差錯(cuò)校驗(yàn);

事務(wù)處理標(biāo)識(shí):可以理解為報(bào)文的序列號(hào),一般每次通信后就要加1以區(qū)別不同的通信數(shù)據(jù)報(bào)文,由客戶端生成,應(yīng)答時(shí)復(fù)制該值;

協(xié)議標(biāo)識(shí)符:表示Modbus TCP協(xié)議,由客戶端生成,應(yīng)答時(shí)復(fù)制該值;

長(zhǎng)度:表示該字節(jié)后面的數(shù)據(jù)長(zhǎng)度,單位為字節(jié);

單元標(biāo)識(shí)符:設(shè)備地址,由客戶端生成,應(yīng)答時(shí)復(fù)制該值。

3. Modbus TCP轉(zhuǎn)Modbus RTU

Modbus TCP數(shù)據(jù)幀轉(zhuǎn)為Modbus RTU數(shù)據(jù)幀過(guò)程為取出協(xié)議數(shù)據(jù)單元(PDU),并且加入附加地址和差錯(cuò)校驗(yàn),將報(bào)文頭部的單元標(biāo)識(shí)符對(duì)應(yīng)到附加地址,如圖3所示。

image.png

3

單元標(biāo)識(shí)符作為附加地址;

增加差錯(cuò)校驗(yàn)。

網(wǎng)關(guān)實(shí)現(xiàn)轉(zhuǎn)換

1. Modbus RTU Master(RS485/RS232) 轉(zhuǎn) Modbus TCP Slave

該轉(zhuǎn)換可實(shí)現(xiàn)用戶終端作為Modbus TCP從機(jī),數(shù)據(jù)采集中心作為Modbus RTU主機(jī)。網(wǎng)關(guān)實(shí)現(xiàn)Modbus RTUModbus TCP兩種數(shù)據(jù)的轉(zhuǎn)換,使用RS485/RS232接口與Modbus RTU主站通信,使用TCP ClientModbus TCP從站通信,如圖4所示。

image.png

4

1.1 網(wǎng)關(guān)協(xié)議轉(zhuǎn)換配置

RS485為例,打開(kāi)網(wǎng)關(guān)網(wǎng)頁(yè)左邊欄,選擇【協(xié)議轉(zhuǎn)換】,在轉(zhuǎn)換選擇頁(yè)面里選擇【Modbus RTU Master(RS485) 轉(zhuǎn) Modbus TCP Slave】,然后點(diǎn)擊【保存】,如圖5所示。

image.png

5

1.2 網(wǎng)關(guān)TCP Client配置

打開(kāi)網(wǎng)關(guān)網(wǎng)頁(yè)左邊欄,選擇【網(wǎng)絡(luò)配置】,在網(wǎng)絡(luò)配置面里選擇【TCP/UDP Client】,配置客戶端參數(shù),然后點(diǎn)擊【保存】,如圖6所示。

image.png

6

1.3 RS232/RS485配置

打開(kāi)網(wǎng)關(guān)網(wǎng)頁(yè)左邊欄,選擇【RS232/RS485配置】,在網(wǎng)絡(luò)配置面里選擇【RS485】,配置串口參數(shù),然后點(diǎn)擊【保存】,如圖7所示。

image.png

7

1.4 模擬主/從機(jī)配置

PC打開(kāi)Modbus模擬軟件,創(chuàng)建Modbus RTU主機(jī)和Modbus TCP從機(jī),如圖8所示。

image.png

8

1.5 結(jié)果展示

Modbus RTU主機(jī)寫入Modbus TCP從機(jī)的寄存器成功,并且讀取Modbus TCP從機(jī)寄存器值成功,如圖9所示。

image.png

9

2. Modbus TCP Master 轉(zhuǎn) Modbus RTU Slave

該轉(zhuǎn)換可實(shí)現(xiàn)傳感器作為Modbus RTU從機(jī),數(shù)據(jù)采集中心作為Modbus TCP主機(jī)。GZCOM-NET作為Modbus TCPModbus RTU兩種數(shù)據(jù)的轉(zhuǎn)換網(wǎng)關(guān),使用TCP ServerModbus TCP主站通信,使用RS485RS232接口與 Modbus RTU從站通信,如圖10所示。

image.png

10

2.1 網(wǎng)關(guān)協(xié)議轉(zhuǎn)換配置

打開(kāi)網(wǎng)關(guān)的網(wǎng)頁(yè)配置頁(yè)面左邊欄,選擇【協(xié)議轉(zhuǎn)換】,在轉(zhuǎn)換選擇頁(yè)面里選擇【Modbus TCP Master轉(zhuǎn)Modbus RTU Slave】,然后點(diǎn)擊【保存】,如圖11所示。

image.png

11

2.2 網(wǎng)關(guān)TCP Server配置

打開(kāi)網(wǎng)關(guān)網(wǎng)頁(yè)左邊欄,選擇【網(wǎng)絡(luò)配置】,在網(wǎng)絡(luò)配置面里選擇【TCP Server】,配置服務(wù)器參數(shù),然后點(diǎn)擊【保存】,如圖12所示。

image.png

12

2.3 RS232/RS485配置

RS232/RS485配置方法Modbus RTU Master(RS485/RS232) 轉(zhuǎn) Modbus TCP Slave一樣。

2.4 模擬主/從機(jī)配置

PC打開(kāi)Modbus模擬軟件,創(chuàng)建Modbus TCP主機(jī)和Modbus RTU從機(jī),如圖 13所示。

image.png

13

2.5 結(jié)果展示

Modbus TCP主機(jī)寫入Modbus RTU從機(jī)的寄存器成功,并且讀取Modbus RTU從機(jī)寄存器值成功,如圖14所示。

image.png

14




評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉