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