Modicon 公司首次推出了Modbus協(xié)議,Modbus RTU和Modbus ASCII誕生于此。后來施耐德電氣在1997年推出了ModbusTCP協(xié)議。2004年,中國(guó)國(guó)家標(biāo)準(zhǔn)委員會(huì)正式把Modbus作為了國(guó)家標(biāo)準(zhǔn),開啟了Modbus為中國(guó)工業(yè)通信做貢獻(xiàn)的時(shí)代。
通過此協(xié)議,控制器相互之間、控制器經(jīng)由網(wǎng)絡(luò)和其它設(shè)備之間可以通信。Modbus協(xié)議具有標(biāo)準(zhǔn)、開放,可以支持多種電氣接口,數(shù)據(jù)幀格式簡(jiǎn)單緊湊,數(shù)據(jù)傳輸量大、實(shí)時(shí)性好等特點(diǎn),在工業(yè)控制系統(tǒng)中得到了廣泛的應(yīng)用,已經(jīng)成為通用工業(yè)標(biāo)準(zhǔn)。深入分析Modbus協(xié)議實(shí)現(xiàn)原理和其安全性對(duì)提高工控系統(tǒng)安全性有著重要的現(xiàn)實(shí)意義。Modbus RTU和Modbus ASCII主要用于串行通信領(lǐng)域,而Modbus TCP則常用于以太網(wǎng)通信。現(xiàn)在,Modbus已經(jīng)成為工業(yè)領(lǐng)域通信協(xié)議標(biāo)準(zhǔn),并且現(xiàn)在是工業(yè)電子設(shè)備之間相當(dāng)常用的連接方式。
Modbus使用一種簡(jiǎn)單的Master and Slave主從協(xié)議(客戶機(jī)/服務(wù)器協(xié)議)進(jìn)行通信??蛻魴C(jī)作為主站,向服務(wù)器發(fā)送請(qǐng)求;服務(wù)器(從站)接到請(qǐng)求后,對(duì)請(qǐng)求進(jìn)行分析并作出應(yīng)答。其中使用的通信幀被稱為應(yīng)用數(shù)據(jù)單元(Application Data Unit,ADU),它包括通信地址段、功能代碼段、數(shù)據(jù)段和校驗(yàn)段。
Modbus RTU與Modbus ASCII有什么區(qū)別?
Modbus是一種應(yīng)用層協(xié)議,它定義了與基礎(chǔ)網(wǎng)絡(luò)無關(guān)的數(shù)據(jù)單元(ADU),可以在以太網(wǎng)(TCP/IP)或串行鏈路上(RS232、RS485等)進(jìn)行通信(以太網(wǎng)ADU和串行ADU略有不同)。在串行鏈路上,Modbus協(xié)議有兩種傳輸模式——ASCII模式和RTU模式。其中,ASCII是英文“American Standard Code for Information Interchange”的縮寫,中文翻譯為“美國(guó)國(guó)家信息交換標(biāo)準(zhǔn)編碼”;RTU是英文“ Remote Terminal Unit”的縮寫,中文翻譯為“遠(yuǎn)程終端設(shè)備”。
在ASCII模式下,每個(gè)8位的字節(jié)被拆分成兩個(gè)ASCII字符進(jìn)行發(fā)送,比如十六進(jìn)制數(shù)0xAF,會(huì)被分解成ASCII字符“A”和“F”進(jìn)行發(fā)送,發(fā)送的字符量比RTU增加一倍。ASCII模式的好處是允許兩個(gè)字符之間間隔的時(shí)間長(zhǎng)達(dá)1s而不引發(fā)通信故障,該模式采用縱向冗余校驗(yàn)(Longitudinal Redundancy Check ,LRC)) 的方法來檢驗(yàn)錯(cuò)誤。
在RTU(Remote Terminal Unit)模式下,每個(gè)字節(jié)可以傳輸兩個(gè)十六進(jìn)制字符,比如十六進(jìn)制數(shù)0xAF,直接以十六進(jìn)制0xAF(二進(jìn)制:10101111)進(jìn)行發(fā)送,因此它的發(fā)送密度比ASCII模式高一倍;RTU模式采用循環(huán)冗余校驗(yàn)(CRC)。邦納公司大部分產(chǎn)品支持Modbus通訊,以下為支持Modbus RTU的產(chǎn)品:
▲測(cè)量光柵支持Modbus RTU 通訊
▲拾取指示燈支持Modbus RTU通訊
▲邦納所有無線產(chǎn)品支持Modbus RTU通訊
什么是Modbus TCP?
Modbus TCP和Modbus RTU基本相同,但是也存在一些區(qū)別:
從機(jī)地址變得不再重要,多數(shù)情況下忽略。從某種意義上說從機(jī)地址被IP地址取代
CRC校驗(yàn)變得不再重要,甚至可以忽略。由于TCP數(shù)據(jù)包中已經(jīng)存在校驗(yàn),為了不重復(fù)造輪子,Modbus TCP干脆取消了CRC校驗(yàn)。
TCP 模式是為了讓Modbus數(shù)據(jù)順利在以太網(wǎng)上傳輸產(chǎn)生的,使用TCP502 端口。該協(xié)議物理層,數(shù)據(jù)鏈路層,網(wǎng)絡(luò)層,傳輸層都是基于TCP 協(xié)議,只在應(yīng)用層,將Modbus 協(xié)議修改后封裝進(jìn)去; 接收端將該TCP 數(shù)據(jù)包拆封后,重新獲得原始Modbus幀,然后按照Modbus協(xié)議規(guī)范進(jìn)行解析,并將返回的數(shù)據(jù)包重新封裝進(jìn)TCP 協(xié)議中,返回到發(fā)送端。與串行鏈路傳輸?shù)臄?shù)據(jù)格式不同,TCP 模式去除了附加地址和校驗(yàn),增加了報(bào)文頭。邦納公司大部分產(chǎn)品支持Modbus通訊,以下為支持Modbus TCP的產(chǎn)品:
▲安全控制器支持Modbus TCP通訊
▲邦納所有視覺產(chǎn)品支持Modbus TCP通訊
▲邦納二維碼讀取器都支持Modbus TCP通訊
▲邦納部分無線產(chǎn)品支持Modbus TCP通訊
(轉(zhuǎn)載)