ModBus是什么?干什么用的?我們一起來了解下吧。
作為一些大型工業商,其實需要不同廠商提供的控制設備來組成一個工業網路,有了網絡是不是需要監控啊?就像你的汽車一樣,其實有一個總的控制系統在監控著油箱,行駛安全等等很多信息,所以才呈現給我們一個安全的駕駛體驗。那么開發總的控制系統如果那么多的設備都各自有一套通信方案,開發難度可想而知了吧?這個時候就需要有一個標準了,那么這個modbus就是自動控制業界的標準,其實可以理解為我們交互的一個標準協議。這樣對開發進度提升了,對通信安全提升了,還方便多個鏈路之間的通信,集中監控也更加方便了。
既然是通信的標準,也就是規范了通信的應用層。根據這個標準我們各自去進行工作就好了。
這個協議定義了一個控制器能認識的使用的消息結構,而不管是經過何種網絡進行通信的。
我們看到網絡中每種設備(PLC、HMI、控制面板、驅動程序、動作控制、輸入/輸出設備)都能使用modbus協議來啟動遠程操作。
通常我們在串行通信中用到modbus都是主從結構,總線上有一個主節點,一個或多個從節點。從節點地址是唯一的,通信模式是主節點發起請求,子節點沒有收到來自主節點的請求時,從不會發送數據,子節點之間從不會互相通信。主節點在同一時刻只會發起一個modbus事物處理。
我們說到這種協議是主從協議模式,主節點可以廣播給所有節點請求,這就是廣播模式,這種模式就是從節點不需要應答,接收到處理就可以了,地址0是專門用于表示廣播數據的。
還有一種是單播模式,就是主節點以特定地址訪問子節點,子節點接到并處理完請求后,子節點向主節點返回一個應答。
那我們一起看下協議描述:
首先我們看兩個概念,ADU:應用數據單元;PDU:協議數據單元。可以理解為PDU就是我們的應用層協議解析需要的。
其實簡單來看就是這樣的一個結構,地址域只針對于從節點而言,也有規定(0是廣播地址,1~247是從節點地址,248-255預留)其實就是一個字節的分配了。
那么功能碼就是指明要執行的動作。
功能碼后面的數據域就很容易理解了,是表示含有請求和響應參數的數據域。數據域雖然給了長度范圍,也可以是沒有的,功能碼就能代表操作了。
后面還有一個校驗,就是做過通信的都知道校驗是必須要的。否則怎么確保數據的正確性。
對于ADU的長度也是有限制的,最大ADU是256個字節,具體在什么物理層上通信對于PDU就有區別了,比如RS232/RS485 ADU = 地址域(1字節)+ PDU(253字節)+CRC(2字節)=256字節;還支持以太網口,也就是在TCP/IP協議層上封裝了一層modbus協議,這樣應用范圍更廣了。那么TCP MODBUS ADU = 249字節 + MBAP(7字節) =256字節。
到這里我們就可以知道了協議結構、協議模型、協議規則。簡單來說就是主機是老大,它說了算,它想設置或者讀取哪個從機,從機才能做出響應,所以說從機是被動的。當廣播發送的時候無需應答,這就是定義的規則,有了規則做事就方便多了啊。
具體的還詳細做了主機的處理模型,從機的處理模型,所有正常的和異常的處理都在規則里面了,是不是很貼心。基本上把邏輯關系都考慮到了,只要按照邏輯關系圖去寫程序就好了。那么對于解析而言,主要還是對于功能碼和數據域的值了。也就是到了上層應用了。
對于串行傳輸還有兩種模式,RTU模式和ASCII模式。
我們先來了解一下RTU模式
對于報文格式就是上面這樣的,子節點收到信息先解析是否是自己節點,然后對校驗做出比對處理。然后就是上層的功能碼和數據的處理了。除了數據解析還有一個超時處理,總不能一直接收吧,有個超時的要求,兩個字節之間間隔大于1.5個字符時間,報文幀就被認為不完整應該被接收節點丟棄。兩幀數據之間也有時間間隔要求,最小間隔是3.5個字符時間。
這個模式也是我們在工業控制中通用的模式,協議緊湊。
還有一個ASCII模式
我們都知道ASCII碼是一個字符一個字符發送的,也就是表示0-9,A-F;那么就是說一個字符表示四位二進制,也就是我們前面說的一個字節需要兩個ASCII字符表示,所以這個相對RTU模式時序要求不高,自然應用場合也是有區別的。
跟RTU不同的是還增加了一個起始字符和結束字符,校驗方式是LRC校驗方式,校驗不包含起始字符和結束字符的。對比而言,我們看到是一個字節由兩個字符表示的。字符間隔最大可以達到1S,相對寬松。
結構清晰了,規則有了就是可以去解析了,主要還是對功能碼和數據域的規則解析了,不同的功能碼要處理什么功能的數據區,這個都是要根據規則去解析處理。
解析這種標準協議首先就是要分好層,邏輯關系要處理清楚,模塊處理要結合實際應用映射關系,對于從節點有接收有應答,就是一個完整的閉環。你對modbus了解了嗎?
責任編輯:haq
-
協議
+關注
關注
2文章
606瀏覽量
39288 -
MODBUS
+關注
關注
28文章
1817瀏覽量
77170
原文標題:白話文講解ModBus協議
文章出處:【微信號:CanaanTech,微信公眾號:嘉楠科技】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論