電子吊秤為何使用和Modbus Rtu而不用Modbus TCP(來源:上海本熙測控設(shè)備科技有限公司)
很多用戶訂購帶RS485接口的電子吊秤,并且要求支持MODBUS協(xié)議,但在支持協(xié)議的種類上,一般我們只提供MODBUS RTU的電子吊秤,而并不提供MODBUS TCP協(xié)議,原因是電子吊秤是標(biāo)準(zhǔn)化程度非常高的稱重產(chǎn)品,數(shù)據(jù)輸出格式相對簡單,一般情況下MODBUS RTU已經(jīng)能滿足大部分場景下的使用需求,而MODBUS TCP相對來說與其區(qū)別在理論上不是很大,但是在硬件支持上區(qū)別很大,增加了制造成本,并且需求MODBUS電子吊秤的市場及其有限,所以很少有廠家提供MODBUS TCP協(xié)議電子吊秤。
以下就講講Modbus TCP和Modbus Rtu的區(qū)別如下:
概念不同:MODBUS是一種標(biāo)準(zhǔn)的工業(yè)控制數(shù)據(jù)交換協(xié)議,可以用RTU和ASCII兩種方式進行協(xié)議數(shù)據(jù)的互傳,RTU是通過二進制數(shù)據(jù)方式直接傳送數(shù)據(jù),而TCP是通過將每字節(jié)二進制數(shù)據(jù)轉(zhuǎn)換為固定兩位十六進制字符串,再依次串聯(lián)在一起,以TCP碼形式進行數(shù)據(jù)傳送,一般用得最多的還是RTU方式。
通信方式不同: 以太網(wǎng),對應(yīng)的通信模式是MODBUS TCP。異步串行傳輸(各種介質(zhì)如有線RS-232-/422/485/;光纖、無線等),對應(yīng)的通信模式是MODBUS RTU或MODBUS ASCII。高速令牌傳遞網(wǎng)絡(luò),對應(yīng)的通信模式是Modbus PLUS。
Modbus rtu和 Modbus tcp兩個協(xié)議的本質(zhì)都是 MODBUS協(xié)議,都是靠MODBUS寄存器地址來交換數(shù)據(jù);但所用的硬件接口不一樣,Modbus RTU一般采用串口RS232C或RS485/422,而Modbus TCP一般采用以太網(wǎng)口?,F(xiàn)在市場上有很多協(xié)議轉(zhuǎn)換器,可以輕松的將這些不同的協(xié)議相互轉(zhuǎn)換 如:Intesisbox可以把 modbus rtu轉(zhuǎn)換成 Modbus tcp,實際上Modbus協(xié)議包括ASCII、RTU、TCP。
標(biāo)準(zhǔn)的Modicon控制器使用RS232C實現(xiàn)串行的Modbus。Modbus的ASCII、RTU協(xié)議規(guī)定了消息、數(shù)據(jù)的結(jié)構(gòu)、命令和就答的方式,數(shù)據(jù)通訊采用Maser/Slave方式。
Modbus協(xié)議需要對數(shù)據(jù)進行校驗,串行協(xié)議中除有奇偶校驗外,ASCII模式采用LRC校驗,RTU模式采用16位CRC校驗,ModbusTCP模式?jīng)]有額外規(guī)定校驗,因為TCP協(xié)議是一個面向連接的可靠協(xié)議。
TCP和RTU協(xié)議非常類似,只要把RTU協(xié)議的兩個字節(jié)的校驗碼去掉,然后在RTU協(xié)議的開始加上5個0和一個6并通過TCP/IP網(wǎng)絡(luò)協(xié)議發(fā)送出去即可。
Modbus RTU和Modbus TCP是Modbus通信中比較好用的兩個協(xié)議,兩者協(xié)議很相似。下面以讀取多個保持寄存器為例說一下,先說一下Modbus RTU通信,
發(fā)送格式為 從站地址 01(表示從站地址) 功能碼 03 (讀單/多個保持寄存器) 數(shù)據(jù)起始地址 00 00 (表示從40001開始) 數(shù)據(jù)個數(shù) 00 02(表示讀兩個字) CRC檢驗碼 xx xx(這里的CRC校驗碼為C4 0B)
連起來就是 01 03 00 00 00 02 C4 0B 發(fā)送過去之后,從站會返回數(shù)據(jù),數(shù)據(jù)格式為 01 03 04 01 02 03 04 5B 3C 其中 01 從站地址 03 功能碼讀 04 數(shù)據(jù)字節(jié)數(shù) 01 02 03 04 數(shù)據(jù)內(nèi)容 5B 3C CRC校驗碼。
而Modbus TCP協(xié)議則是在Modbus RTU協(xié)議上加一個MBAP報文頭,由于TCP是基于可靠連接的服務(wù),RTU協(xié)議中的CRC校驗碼就不再需要,所以在Modbus TCP協(xié)議中是沒有CRC校驗碼,這個MBAP報文頭共七個字節(jié)長度,除了第五、六個字節(jié)外,其余的基本上都是不變。例如用Modbus TCP完成上面的操作則是發(fā)送 00 01 00 00 00 06 ff 03 00 00 00 02 即可,第五、六個字節(jié)為00 06 表示00 06之后有6個字節(jié)。具體操作見圖
返回值則是00 01 00 00 00 07 ff 03 04 01 02 03 04 。其中前7個字節(jié)是MBAP報文頭,03 功能碼讀,04 數(shù)據(jù)字節(jié)數(shù) 01 02 03 04表示數(shù)據(jù)內(nèi)容。所以Modbus TCP協(xié)議其實就是Modbus RTU協(xié)議去掉CRC校驗碼,去掉前面的從站地址碼,然后在最前面加上7個字節(jié)的長度的MBAP報文頭。
Modbus TCP是基于以太網(wǎng)的基礎(chǔ)上演變來的,物理接口就決定了它通訊速率和校驗方式。
掃一掃 微信咨詢
©2024 上海本熙測控設(shè)備科技有限公司 版權(quán)所有 備案號:滬ICP備15023781號-3 技術(shù)支持:化工儀器網(wǎng) sitemap.xml 總訪問量:277584 管理登陸