MODBUS/TCP是簡單的、中立廠商的用于管理和控制自動化設備的MODBUS系列通訊協議的派生產品。顯而易見,它覆蓋了使用TCP/IP協議的 “Intranet”和“Internet”環(huán)境中MODBUS報文的用途。協議的最通用用途是為諸如PLC’s,I/O模塊,以及連接其它簡單域總線或 I/O模塊的網關服務的。
Modbus是由Modicon(現為施耐德電氣公司的一個品牌)在1979年發(fā)明的,是全球第一個真正用于工業(yè)現場的總線協議。為更好地普及和推動Modbus在基于以太網上的分布式應用,目前施耐德公司已將Modbus協議的所有權移交給IDA(Interface for Distributed Automation,分布式自動化接口)組織,并成立了Modbus-IDA組織,為Modbus今后的發(fā)展奠定了基礎。在我國,Modbus已經成為國家標準GB/T19582-2008。據不完全統(tǒng)計:截止到2007年,Modbus的節(jié)點安裝數量已經超過了1000萬個。
Modbus 協議是應用于電子控制器上的一種通用語言。通過此協議,控制器相互之間、控制器經由網絡(例如以太網)和其它設備之間可以通信。它已經成為一通用工業(yè)標準。有了它,不同廠商生產的控制設備可以連成工業(yè)網絡,進行集中監(jiān)控。此協議定義了一個控制器能認識使用的消息結構,而不管它們是經過何種網絡進行通信的。它描述了一控制器請求訪問其它設備的過程,如何回應來自其它設備的請求,以及怎樣偵測錯誤并記錄。它制定了消息域格局和內容的公共格式。
MODBUS/TCP協議是作為一種(實際的)自動化標準發(fā)行的。Modbus協議是一種已廣泛應用于當今工業(yè)控制領域的通用通訊協議。通過此協議,控制器相互之間、或控制器經由網絡(如以太網)可以和其它設備之間進行通信。Modbus協議使用的是主從通訊技術,即由主設備主動查詢和操作從設備。一般將主控設備方所使用的協議稱為Modbus Master,從設備方使用的協議稱為Modbus Slave。典型的主設備包括工控機和工業(yè)控制器等;典型的從設備如PLC可編程控制器等。Modbus通訊物理接口可以選用串口(包括RS232和RS485),也可以選擇以太網口。其通信遵循以下的過程:
● 主設備向從設備發(fā)送請求
● 從設備分析并處理主設備的請求,然后向主設備發(fā)送結果
● 如果出現任何差錯,從設備將返回一個異常功能碼
Modbus 通信協議特點
Modbus 協議定義了一個控制器能夠認識使用的消息結構,而不管它們是經過何種網絡進行通信的。因此,底層通信方式可以使用 RS232,RS485 等串行鏈路,也可以使用 TCP/IP 以太網鏈路?,F在 Modbus 網絡上通信時,控制器必須要知道該網絡中其他設備的地址,才能識別按地址發(fā)來的消息,并作出相應行為。
簡單來說,Modbus 通信協議具有以下幾個特點:
Modbus 協議標準開放、公開發(fā)布且無版稅要求,用戶可以免費獲取并使用 Modbus 協議,不需要繳納許可證費用;
Modbus 最開始使用 RS232,RS485 等串行鏈路作為底層通信方式,串行總線的接口芯片成本低,而且布線也簡單方便;
Modbus 協議只支持多種電氣接口,如 RS232、RS485、TCP/IP 等,還可以在各種介質上傳輸,如雙絞線、光纖、紅外、無線電等;
Modbus 是簡單的應用層協議,其協議消息格式簡單、緊湊、通俗易懂,便于用戶理解和使用、廠商開發(fā)和集成,方便形成工業(yè)控制網絡。
MODBUS支持的部分功能代碼:
以十進制表示。功能碼可以分為位操作和字操作兩類。位操作的最小單位為BIT,字操作的最小單位為兩個字節(jié)。
【位操作指令】 讀線圈狀態(tài)01H,讀(離散)輸入狀態(tài)02H,寫單個線圈06H和寫多個線圈0FH。
【字操作指令】 讀保持寄存器03H,寫單個寄存器06H,寫多個保持寄存器10H。
MODBUS報文模型
這里要明白兩個縮略詞:“ADU”“PDU”
ADU: 應用數據單元
PDU: 協議數據單元
Modbus協議兩種傳輸方式
常用的MODBUS通訊規(guī)約有兩種,一種是MODBUS ASCII,一種是MODBUS RTU。每個設備必須都有相同的傳輸模式。所有設備都支持RTU模式,ASCII傳輸模式是選項。
(1)ASCII傳輸方式
Modbus串行鏈路的設備被配置為使用ASCII模式通信時,報文中的每8位字節(jié)以兩個ASCII字符發(fā)送。例:字節(jié)0X5B會被編碼為兩個字符:0x35和0x42進行傳送(ASCII編碼0x35="5",0x42="B"),這樣傳輸效率會降低。
在ASCII模式,報文用特殊的字符區(qū)分幀起始和幀結束。一個報文必須以一個‘冒號’(:)(ASCII十六進制3A)起始,以‘回車-換行’(CRLF)對(ASCII十六進制0D和0A)結束。設備連續(xù)的監(jiān)視總線上的‘冒號’字符。當收到這個字符后,每個設備解碼后續(xù)的字符一直到幀結束。報文中字符間的時間間隔可以達一秒。如果有更大的間隔,則接受設備認為發(fā)生了錯誤。
(2)RTU傳輸方式
當設備使用RTU(RemoteTerminalUnit)模式在Modbus串行鏈路通信,報文中每個8位字節(jié)含有兩個4位十六進制字符。這種模式的主要優(yōu)點是較高的數據密度,在相同的波特率下比ASCII模式有更高的傳輸效率。每個報文必須以連續(xù)的字符流傳送。
Modbus物聯網云平臺在設備和用戶之間建立開箱即用的云平臺和云應用,實現數據采集、實時控制、數據可視化、開放 API,構建靈活強大的物聯網應用。Modbus云平臺支持市場上99%以上Modbus設備接入,比如工業(yè)儀器儀表,工業(yè)傳感器,Modbus PLC設備等。用戶可以在任何地方遠程訪問任何地方的Modbus設備,并對遠程設備的數據進行實時采集監(jiān)控、遠程控制、智能音響小度、天貓精靈、小愛同學語音控制、診斷、通訊及調試等。
Modbus物聯網云平臺是一個開放的物聯網云平臺,用戶只需按步驟完成注冊即可免費使用Modbus物聯網云平臺 。支持PC、Android、iOS多平臺終端。用戶可以在任何地方遠程訪問任何地方的串口設備,并對遠程設備的數據進行實時采集監(jiān)控、遠程控制、診斷、通訊及調試等。Modbus物聯網云平臺支持微信關聯,用戶可以借助手機端的微信公眾號進行遠程查看設備的運行狀態(tài),通訊數據和報警信息等,實現隨時隨地輕松掌控,方便快捷。