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