工控學(xué)堂:解讀Modbus通訊協(xié)議【宜收藏】
作為工控人,Modbus通訊協(xié)議想必都不陌生,Modbus通訊協(xié)議可以說(shuō)是工業(yè)自動(dòng)化領(lǐng)域應(yīng)用廣泛的通訊協(xié)議,因?yàn)樗拈_(kāi)放性、可擴(kuò)充性和標(biāo)準(zhǔn)化使他成為通用工業(yè)標(biāo)準(zhǔn)。
1979年施耐德電氣制定了一個(gè)用于工業(yè)現(xiàn)場(chǎng)的總線(xiàn)協(xié)議Modbus協(xié)議,現(xiàn)在工業(yè)中使用RS485通信場(chǎng)合很多都采用Modbus協(xié)議,所以今天我們來(lái)了解下Modbus通信協(xié)議。
Modbus是Modicon公司為其PLC通訊而開(kāi)發(fā)的一種通訊協(xié)議。也是一個(gè)真正用于工業(yè)現(xiàn)場(chǎng)的總線(xiàn)協(xié)議。Modbus網(wǎng)絡(luò)是一個(gè)工業(yè)通信系統(tǒng),由帶智能終端的可編程序控制器和計(jì)算機(jī)通過(guò)公用線(xiàn)路或局部線(xiàn)路連接而成。其系統(tǒng)結(jié)構(gòu)既包括硬件、亦包括軟件。它可應(yīng)用于各種數(shù)據(jù)采集和過(guò)程監(jiān)控。
Modbus特點(diǎn):
(1)標(biāo)準(zhǔn)、開(kāi)放,用戶(hù)可以免費(fèi)、放心地使用Modbus協(xié)議,不需要交納許可證費(fèi),也不會(huì)侵犯知識(shí)產(chǎn)權(quán)。
(2)Modbus可以支持多種電氣接口,如RS-232、RS-485等,還可以在各種介質(zhì)上傳送,如雙絞線(xiàn)、光纖、無(wú)線(xiàn)等。
(3)Modbus的幀格式簡(jiǎn)單、緊湊,通俗易懂。用戶(hù)使用容易,廠(chǎng)商開(kāi)發(fā)簡(jiǎn)單。
從1979年問(wèn)世至今,已經(jīng)成為工業(yè)通訊領(lǐng)域的業(yè)界標(biāo)準(zhǔn),初的Modbus僅支持串口,分為Rtu和ACSII兩種信號(hào)傳輸模式(一般基于RS485串口通信媒介)。而隨著時(shí)代的變遷,Modbus新增了TCP版本,可以通過(guò)以太網(wǎng)進(jìn)行通訊,此外Modbus還有一個(gè)Modicon的Modbus Plus版本。
Modbus是一種單主站的主/從通訊模式,由1個(gè)子站和多個(gè)從站組成,允許多個(gè)設(shè)備連接在同一個(gè)網(wǎng)絡(luò)上進(jìn)行通訊。
Modbus三種通信協(xié)議介紹:
Modbus TCP,以太網(wǎng),RJ45。
Modbus RTU/ASCII,異步串行通訊,RS232/485/422、光纖、無(wú)線(xiàn)
Modbus Plus,高速令牌傳遞網(wǎng)絡(luò),同軸電纜或光纜。
其中Modbus RTU、Modbus TCP常用。
信號(hào)傳輸模式對(duì)比
一、RTU與ASCII
1、Modbus ASCII協(xié)議擁有開(kāi)始和結(jié)束標(biāo)記,Modbus RTU沒(méi)有。
這就使得ASCII協(xié)議中對(duì)數(shù)據(jù)包的處理能夠更加的方便。
例如:ASCII協(xié)議中一個(gè)數(shù)據(jù)包之間的傳輸間隔可以高達(dá)1s(一般不超過(guò)1s,超過(guò)1s接收設(shè)備認(rèn)為出錯(cuò))。
RTU協(xié)議中規(guī)定每?jī)蓚€(gè)字節(jié)中之間發(fā)送或接收時(shí)間不得超過(guò)3.5倍的字符傳輸時(shí)間,否則超過(guò)這一規(guī)定時(shí)間則會(huì)認(rèn)為是新幀的開(kāi)始。
2、ASCII協(xié)議的可讀性強(qiáng)、傳輸效率低。
由于ASCII協(xié)議傳輸?shù)亩际强梢?jiàn)的ASCII字符,所以調(diào)試階段會(huì)顯得更加直觀。
但是這同時(shí)也是它的缺點(diǎn),可讀性的增加帶來(lái)的就是通訊傳輸效率低。例如傳輸1個(gè)十六進(jìn)制數(shù)0xF9,ASCII就要傳送“F”和“9”兩個(gè)字符,其對(duì)應(yīng)的ASCII碼是0x46和0x39兩個(gè)字節(jié),而RTU只需要1個(gè)字節(jié)就可以完成傳輸。
而Modbus作為應(yīng)用于工業(yè)領(lǐng)域的通信協(xié)議,面向的主要是技術(shù)工人和工程師,不需要很強(qiáng)的可讀性,反而傳輸?shù)臄?shù)據(jù)量一般會(huì)比較大,所以在工業(yè)現(xiàn)場(chǎng)很少會(huì)采用ASCII協(xié)議。
3、校驗(yàn)程序不同
RTU采用CRC校驗(yàn),而ASCII采用LRC校驗(yàn)。LRC校驗(yàn)程序相對(duì)CRC校驗(yàn)程序簡(jiǎn)單。兩種校驗(yàn)方法會(huì)在后續(xù)文章中詳細(xì)介紹。
二、TCP與Rtu
1、概念不同:Modbus是一種標(biāo)準(zhǔn)的工業(yè)控制數(shù)據(jù)交換協(xié)議,可以用RTU和ASCII兩種方式進(jìn)行協(xié)議數(shù)據(jù)的互傳,RTU是通過(guò)二進(jìn)制數(shù)據(jù)方式直接傳送數(shù)據(jù),而TCP是通過(guò)將每字節(jié)二進(jìn)制數(shù)據(jù)轉(zhuǎn)換為固定兩位十六進(jìn)制字符串,再依次串聯(lián)在一起,以TCP碼形式進(jìn)行數(shù)據(jù)傳送,一般用得多的還是RTU方式。
2、通信方式不同:以太網(wǎng),對(duì)應(yīng)的通信模式是Modbus TCP。異步串行傳輸(各種介質(zhì)如有線(xiàn)RS-232-/422/485/;光纖、無(wú)線(xiàn)等),對(duì)應(yīng)的通信模式是Modbus Rtu或Modbus ASCII。高速令牌傳遞網(wǎng)絡(luò),對(duì)應(yīng)的通信模式是Modbus PLUS。