Modbus通信協議是什麽?
關(guan) 於(yu) Mod,因為(wei) 這種協議最早被用在PLC控製器中,準確的說是Modicon公司的PLC控製器,這也是Mod-Bus名稱的由來。後來Modicon被施耐德(Schneider)收購,Modbus協議廣泛應用在工業(ye) 控製器、HMI和傳(chuan) 感器上,逐漸被其他廠商所接受,成為(wei) 了一種主流的通訊協議,用於(yu) 和外圍設備進行通訊。
Modbus協議作為(wei) 當今工業(ye) 控製領域的通用通訊協議,在無數物聯網產(chan) 品中得到應用,工業(ye) 、農(nong) 業(ye) 等物聯網解決(jue) 方案中都有其身影。ModBus網絡是一個(ge) 工業(ye) 通信係統,由智能終端的可編程序控製器和計算機,通過公用線路或局部專(zhuan) 用線路連接而成。其係統結構既包括硬件、亦包括軟件,應用於(yu) 各種數據采集和過程監控。
Modbus網絡體(ti) 係
通過Modbus協議,控製器相互之間、或控製器經由網絡(如以太網)可以和其它設備之間進行通信。Modbus協議使用的是主從(cong) 通訊技術,即由主設備主動查詢和操作從(cong) 設備。一般將主控設備方所使用的協議稱為(wei) Modbus Master,從(cong) 設備方使用的協議稱為(wei) Modbus Slave。典型的主設備包括工控機和工業(ye) 控製器等;典型的從(cong) 設備如PLC可編程控製器等。Modbus通訊物理接口可以選用串口(包括RS232和RS485),也可以選擇以太網口。
Modbus在7層OSI參考模型中屬於(yu) 第七層應用層,數據鏈路層有兩(liang) 種:基於(yu) 標準串口協議和TCP協議,物理層可使用3線232、2線485、4線422,或光纖、網線、無線等多種傳(chuan) 輸介質。
ModBus網絡隻有一個(ge) 主機,發出通訊信號,多個(ge) 從(cong) 機,網絡可支持247個(ge) 之多的遠程從(cong) 屬控製器,但實際所支持的從(cong) 機數要由所用通信設備決(jue) 定。采用這個(ge) 係統,各PC可以和中心主機交換信息而不影響各PC執行本身的控製任務。
Modbus協議包括ASCII、RTU、TCP等,並沒有規定物理層。此協議定義(yi) 了控製器能夠認識和使用的消息結構,而不管它們(men) 是經過何種網絡進行通信的。
Modbus協議目前存在用於(yu) 串口、以太網以及其他支持互聯網協議的網絡的版本。
大多數Modbus設備通信通過串口EIA-485物理層進行。
對於(yu) 串行連接,存在兩(liang) 個(ge) 變種,它們(men) 在數值數據表示不同和協議細節上略有不同。
三種傳輸模式
1979年,Modicon 首先推出了串行Modbus標準,後來由於(yu) 網絡的普及,需要更高的傳(chuan) 輸速度,1997年製定了基於(yu) TCP網絡的Modbus標準。
所以總的可分為(wei) 兩(liang) 個(ge) 傳(chuan) 輸模式:基於(yu) 串行鏈路的和基於(yu) 以太網TCP/IP的。但是我個(ge) 人還是習(xi) 慣分為(wei) 3種傳(chuan) 輸模式:
基於(yu) 串口的Modbus-RTU 數據按照標準串口協議進行編碼,是使用最廣泛的一種Modbus協議,采用CRC-16_Modbus校驗算法。
基於(yu) 串口的Modbus-ASCII 所有數據都是ASCII格式,一個(ge) 字節的原始數據需要兩(liang) 個(ge) 字符來表示,效率低,采用LRC校驗算法。
基於(yu) 網口的Modbus-TCP Modbus-TCP基於(yu) TCP/IP協議,占用502端口,數據幀主要包括兩(liang) 部分:MBAP(報文頭)+PDU(幀結構),數據塊與(yu) 串行鏈路是一致的。
所以當我們(men) 提及Modbus協議時,要確定是哪種模式:RTU、ASCII或TCP,3種模式區別還是很大的。
有些設備支持多種Modbus模式,有些設備隻支持其中一種,實際使用要根據設備使用手冊(ce) 來選擇采用哪種模式。
對於(yu) 所有的這三種通信協議在數據模型和功能調用上都是相同的,隻有封裝方式是不同的。
Modbus有一個(ge) 擴展版本Modbus Plus(Modbus+或者MB+),不過此協議是Modicon專(zhuan) 有的,和Modbus不同。它需要一個(ge) 專(zhuan) 門的協處理器來處理類似HDLC的高速令牌旋轉。它使用1Mbit/s的雙絞線,並且每個(ge) 節點都有轉換隔離裝置,是一種采用轉換/邊緣觸發而不是電壓/水平觸發的裝置。連接Modbus Plus到計算機需要特別的接口,通常是支持ISA(SA85),PCI或者PMCIA總線的板卡。
標準的Modicon控製器使用RS232C實現串行的Modbus。
Modbus的ASCII、RTU協議規定了消息、數據的結構、命令和就答的方式,數據通訊采用Maser/Slave方式,Master端發出數據請求消息,Slave端接收到正確消息後就可以發送數據到Master端以響應請求;
Master端也可以直接發消息修改Slave端的數據,實現雙向讀寫(xie) 。
Modbus協議需要對數據進行校驗,串行協議中除有奇偶校驗外,ASCII模式采用LRC校驗,RTU模式采用16位CRC校驗,但TCP模式沒有額外規定校驗,因為(wei) TCP協議是一個(ge) 麵向連接的可靠協議。
另外,Modbus采用主從(cong) 方式定時收發數據,在實際使用中如果某Slave站點斷開後(如故障或關(guan) 機),Master端可以診斷出來,而當故障修複後,網絡又可自動接通,Modbus協議的可靠性較好。
對於(yu) Modbus的ASCII、RTU和TCP協議來說,其中TCP和RTU協議非常類似,隻要把RTU協議的兩(liang) 個(ge) 字節的校驗碼去掉,然後在RTU協議的開始加上5個(ge) 0和一個(ge) 6並通過TCP/IP網絡協議發送出去即可。
Modbus RTU 協議
Modbus在7層OSI參考模型中屬於(yu) 第七層應用層,數據鏈路層有兩(liang) 種:基於(yu) 標準串口協議和TCP協議,物理層可使用3線232、2線485、4線422,或光纖、網線、無線等多種傳(chuan) 輸介質。
Modbus RTU 協議是一種開放的串行協議,廣泛應用於(yu) 當今的工業(ye) 監控設備中。該協議使用 RS-232 或 RS-485 串行接口進行通信,並得到市場上幾乎所有商業(ye) SCADA、HMI、OPC 服務器和數據采集軟件程序的支持。
Modbus RTU 協議使用主/從(cong) 技術在設備之間進行通信。這意味著,任何使用 Modbus RTU 協議的應用程序都將有一個(ge) Modbus 主站和至少一個(ge) Modbus 從(cong) 站。Modbus Master 通常是一台運行軟件的主機監控計算機,它將與(yu) 一個(ge) 或多個(ge) Modbus Slave 設備進行通信。
Modbus 從(cong) 設備是執行係統參數測量和控製係統中的開/關(guan) 設備的設備。為(wei) 了執行這些任務,主站向 Modbus 從(cong) 站發送消息,請求執行特定任務。
Modbus RTU 協議使用格式化的消息在主機和從(cong) 機之間進行通信。消息由係統 Master 發起並發送到 Slave 設備。然後,從(cong) 站以請求的數據進行響應,或者確認它執行了請求的功能。所有進出主站的消息都包含一個(ge) 兩(liang) 字節(16 位)CRC(循環冗餘(yu) 校驗)校驗和值,用於(yu) 錯誤檢查。如果將無效請求傳(chuan) 輸到 Modbus 從(cong) 站,則會(hui) 返回一個(ge) 字節(8 位)錯誤代碼值,說明請求錯誤的原因。
Modbus 主站消息包含幾個(ge) 重要的信息。每條消息都以接受消息的設備的從(cong) 地址開始。接下來是要執行的功能編號(或命令)。後麵是指定函數正確執行所需的任何數據。從(cong) 地址是一個(ge) 單字節(8 位)值,可用值範圍在 0-247 之間。Modbus 功能號也是一個(ge) 字節值,並且在協議中定義(yi) 了許多標準化功能號。支持所請求功能所需的任何數據值的長度將是一個(ge) 或多個(ge) 字節。Modbus 從(cong) 站響應消息將包含響應的從(cong) 站地址、功能編號和主站請求的任何必要數據。
Modbus 通信協議特點
(1)標準、開放,用戶可以免費、放心地使用Modbus協議,不需要交納許可證費,也不會(hui) 侵犯知識產(chan) 權。
(2)Modbus可以支持多種電氣接口,如RS-232、RS-485等,還可以在各種介質上傳(chuan) 送,如雙絞線、光纖、無線等。
(3)Modbus的幀格式簡單、緊湊,通俗易懂。用戶使用容易,廠商開發簡單。
Modbus4種數據類型
Modbus協議規定,進行讀寫(xie) 操作的數據類型,按照讀寫(xie) 屬性和類型可分為(wei) 以下4種:
- 離散量輸入(Discretes Input ):1位,隻讀
2.線圈(Coils):1位,讀寫(xie)
3.輸入寄存器(Input Registers ):16位,隻讀
4.保持寄存器(Holding Registers):16位,讀寫(xie)
常用的MODBUS通訊方式
有兩(liang) 種,一種是MODBUS ASCII,一種是MODBUS RTU。每個(ge) 設備必須都有相同的傳(chuan) 輸模式。所有設備都支持RTU模式,ASCII傳(chuan) 輸模式是選項。
+ASCII傳(chuan) 輸方式
Modbus串行鏈路的設備被配置為(wei) 使用ASCII模式通信時,報文中的每8位字節以兩(liang) 個(ge) ASCII字符發送。例:字節0X5B會(hui) 被編碼為(wei) 兩(liang) 個(ge) 字符:0x35和0x42進行傳(chuan) 送(ASCII編碼0x35="5",0x42="B"),這樣傳(chuan) 輸效率會(hui) 降低。
在ASCII模式,報文用特殊的字符區分幀起始和幀結束。一個(ge) 報文必須以一個(ge) ‘冒號’(:)(ASCII十六進製3A)起始,以‘回車-換行’(CRLF)對(ASCII十六進製0D和0A)結束。設備連續的監視總線上的‘冒號’字符。當收到這個(ge) 字符後,每個(ge) 設備解碼後續的字符一直到幀結束。報文中字符間的時間間隔可以達一秒。如果有更大的間隔,則接受設備認為(wei) 發生了錯誤。
+RTU傳(chuan) 輸方式
當設備使用RTU(RemoteTerminalUnit)模式在Modbus串行鏈路通信,報文中每個(ge) 8位字節含有兩(liang) 個(ge) 4位十六進製字符。這種模式的主要優(you) 點是較高的數據密度,在相同的波特率下比ASCII模式有更高的傳(chuan) 輸效率。每個(ge) 報文必須以連續的字符流傳(chuan) 送。
Modbus RS485接線方法
RS485的應用挺廣泛,可以支持ModBus協議,因為(wei) 簡單、便宜、可靠、成熟,所以在工業(ye) 控製、智能儀(yi) 表和電力通信領域應用很多。
1、我們(men) 來看看RS485的一個(ge) 典型組網結構:
理論上,一條RS485總線的傳(chuan) 輸距離可以達到1200米。但是在實際應用受通信芯片、波特率和線材、幹擾等影響,實際上是遠遠達不到這個(ge) 數值的。
理論上,一條RS485總線可以掛254台設備,實際上也遠遠達不到,通常的應用中,也就是30台左右。
RS485總線要采用上圖手拉手式的總線結構,堅決(jue) 杜絕星型連接和分叉連接,如下圖:
+關(guan) 於(yu) 線材的選用
通信線纜要選擇兩(liang) 芯屏蔽雙絞線,線徑不低於(yu) 0.5平方。雙絞是因為(wei) 485通訊采用差模通訊原理,雙絞的抗幹擾性最好。有些野路子的做法用非屏蔽非雙絞線甚至是網線來敷設485通訊線,是極端錯誤的。
+關(guan) 於(yu) 保障通信質量的幾種手段
1、共地法:用1條線或者屏蔽線將所有485設備的GND地連接起來,這樣可以避免所有設備之間存在影響通訊的電勢差。
2、終端電阻法:在最後一台485設備的485+和485-上並聯連接120歐姆的終端電阻來改善通訊質量。
3、如果通訊距離過長,建議如果超過500米就采用中繼器或者485HUB來解決(jue) 問題。如果負載數過多,建議如果一條總線上超過30台就采用485HUB來解決(jue) 問題。
+場景應用-Modbus物聯網雲(yun) 平台
Modbus物聯網雲(yun) 平台在設備和用戶之間建立開箱即用的雲(yun) 平台和雲(yun) 應用,實現數據采集、實時控製、數據可視化、開放 API,構建靈活強大的物聯網應用。Modbus雲(yun) 平台支持市場上99%以上Modbus設備接入,比如工業(ye) 儀(yi) 器儀(yi) 表,工業(ye) 傳(chuan) 感器,Modbus PLC設備等。用戶可以在任何地方遠程訪問任何地方的Modbus設備,並對遠程設備的數據進行實時采集監控、遠程控製、智能音響小度、天貓精靈、小愛同學語音控製、診斷、通訊及調試等。
Modbus物聯網雲(yun) 平台是一個(ge) 開放的物聯網雲(yun) 平台,用戶隻需按步驟完成注冊(ce) 即可免費使用Modbus物聯網雲(yun) 平台 。支持PC、androids、ioses多平台終端。用戶可以在任何地方遠程訪問任何地方的串口設備,並對遠程設備的數據進行實時采集監控、遠程控製、診斷、通訊及調試等。Modbus物聯網雲(yun) 平台支持微信關(guan) 聯,用戶可以借助手機端的微信公眾(zhong) 號進行遠程查看設備的運行狀態,通訊數據和報警信息等,實現隨時隨地輕鬆掌控,方便快捷。
總 結
總的來說,簡單是 Modbus 如此普遍的主要原因。消息檢查是 Modbus 如此受歡迎的另一個(ge) 原因。CRC 和 LRC 檢查意味著檢查傳(chuan) 輸錯誤的準確率達到 99%。概括來講,Modbus就是一種用於(yu) 工業(ye) 控製的協議,具有免費使用、上手簡單、修改方便三大特點,已經被廣泛使用。
此協議支持傳(chuan) 統的RS-232、RS-485、RS-422和以太網設備。許多工業(ye) 設備,包括PLC,DCS,智能儀(yi) 表,變頻器等都在使用Modbus協議作為(wei) 他們(men) 之間的通訊標準。有了它,不同廠商生產(chan) 的控製設備可以連成工業(ye) 網絡,進行集中監控。