多年工作經驗的工程師說MODBUS通訊

前面給大家介紹了工業自動化控制系統,以及其中的IO部分,今天繼續給大家介紹串口通信部分。在工業自動化控制系統中現場最常用到的就是Modbus通信,而學習Modbus相對來說是有點難度的,因此我計劃除了本文介紹以外,還將Modbus通信國標的PDF版以及調試Modbus必須用到的兩個工具分享給大家,並錄製一段視頻給大家演示一下怎麼建立Modbus通信連接。

1、 Modbus 協議由來及國標規範

Modbus是Modicon(莫迪康現為施耐德電氣公司的一個品牌)在1979年開發的一項在ISO模型第7層的應用層報文傳輸協議。Modbus應用於電子控制器上的一種通用語言。通過此協議,控制器相互之間、控制器經由網絡(例如以太網)和其它設備之間可以通信。它已經成為一通用工業標準。Modbus已經形成國家規範,主要分成三個部分:

基於Modbus協議的工業自動化網絡規範:

GB/Z19582.1 第1部分:Modbus應用協議;

GB/Z19582.2 第2部分:Modbus協議在串行鏈路上的實現指南

GB/Z19582.3 第3部分:Modbus協議在TCP/IP上的實現指南

第1部分描述了Modbus事物處理;

第2部分提供了一個有助於開發者實現串行鏈路上的Modbus應用層的參考信息;

第3部分提供了一個有助於開發者實現TCP/IP上的Modbus應用層的參考信息;

以上是深入學習Modbus的重要資料,用於提高成為行業專家,不需要太深入瞭解,只是應用,看本文即可。

2、 Modbus通信協議簡介

Modbus是主/從通信協議。主站主動發送報文, 只有與主站發送報文中呼叫地址相同的從站才向主站發送回答報文。具體數據結構見下圖。

多年工作經驗的工程師說MODBUS通訊

3、 Modbus通信各個參數的設置簡介

我們經常做Modbus通信的時候都有一些術語:RS-485,波特率9600(串口通信時),站地址(設備地址),模式,數據位,停止位,奇偶校驗。瞭解這些術語,並設置匹配是通訊是否成功的關鍵。

主要通訊介質:Modbus 協議主要用於控制器之間的通信。通過此協議,兩個控制器相互之間,或控制器通過網絡和其它設備之間進行通信。其主要傳送介質有RS-232、RS-485、以太網。從現場端來說,使用最多的是RS-485。從PLC到HMI使用最多的是以太網。

波特率:波特率是指數據信號對載波的調製速率,它用單位時間內載波調製狀態改變的次數來表示。最常用的是9600。

站地址(設備地址):Modbus是主/從通信協議。主站主動發送報文, 只有與主站發送報文中呼叫地址相同的從站才向主站發送回答報文。Modbus 協議是主從站通訊協議,用異步串行口完成通訊。理論上可接(尋址)一臺主站和至多 247 臺從站。

模式:Modbus規定了 2 種字符傳輸模式:ASCII 模式、RTU(二進制)模式;兩種傳輸模式不能混用。RTU模式比較常見。

多年工作經驗的工程師說MODBUS通訊

只有Modbus的主從設備,以上參數都設置一致,才能建立起物理通訊。具體數據怎麼獲取,需要先了解Modbus存儲區以及報文發送接收規則。

4、 Modbus存儲區(數據段)存儲規則

主要定義MODBUS 涉及到的控制器(或 MODBUS 設備)存儲區。用來存放數據,在工程實踐中為了方便,工程師一般會把數據放在可讀寫的兩個區。0XXXX放開關量數據,4XXXX放浮點量數據。如果是現場設備,如閥門、泵、低壓配電櫃、UPS等485通訊設備,需要工程師根據其提供的說明書進行組態。

多年工作經驗的工程師說MODBUS通訊

5、 Modbus數據報文解析

Modbus是主/從通信協議。主站主動發送報文, 只有與主站發送報文中呼叫地址相同的從站才向主站發送回答報文。具體數據結構見下圖。

(1) 讀取輸出狀態

功能碼:01H

Modbus主站詢問報文格式:

多年工作經驗的工程師說MODBUS通訊

本例:讀 11H 號從站輸出線圈,起始地=0013H=19,對應地址 00020;線圈數=0025H=37;末地址=00020+37-1=00056;(本例為16進制)。因此,本詢問報文功能是:讀 17(11H)號從站輸出線圈 00020—00056,共 37 個線圈狀態;

從站應答格式:

多年工作經驗的工程師說MODBUS通訊

本例:11H 號從站回答請求報文,功能碼01,字節5個;(本例為16進制)。因此,本詢問報文功能是:回答17號從站線圈狀態,CD=11001101,6B=01101011,B2=10110010,0E=00001110,1B=00011011,;因此,本回答報文功能是:回答17(11H)號從站輸出線圈 00020—00056,共 37 個線圈狀態為11001101、01101011、10110010、00001110、00011。

其他功能碼作用類似,不在此逐一解釋,附上功能碼錶,有興趣的可以自己研究一下。注意我們比較常用的功能碼就4個。

多年工作經驗的工程師說MODBUS通訊

6、 總結

今天我們一起了解了一下Modbus通訊。在第一節、第二節主要簡單介紹了一下Modbus。第三節重點描述了Modbus通訊參數的設置。第四節描述了寄存器。第五節主要描述了Modbus數據報文解析的解析。如果你有一定的Modbus的基礎,這篇文章應該能幫你梳理一邊知識點。如果你沒有接觸過Modbus可能還需要我通過兩個軟件加視頻的方式帶你入門。如果你已經有一定基礎了,建議看看Modbus的國標。可以提高升華,有需要Modbus國標的朋友可以關注並私聊我。


分享到:


相關文章: