工業上的通訊協議之Modbus

工業上的通訊協議之Modbus

Modbus通訊協議

當在一Modbus網絡上通信時,此協議決定了每個控制器需要知道它們的設備地址,識別按地址發來的消息,決定要產生何種行動。如果需要回應,控制器將生成反饋信息並用Modbus協議發出。在其它網絡上,包含了Modbus協議的消息轉換爲在此網絡上使用的幀或包結構。這種轉換也擴展了根據具體的網絡解決節地址、路由路徑及錯誤檢測的方法。

當在網絡上通信時,Modbus協議決定了每個控制器需要知道它們的設備地址,識別按地址發來的消息,決定要產生何種行動。如果需要回應,控制器將生成應答並使用Modbus協議發送給詢問方。

Modbus協議需要對數據進行校驗,串行協議中除有奇偶校驗外,ASCII模式採用LRC校驗,RTU模式採用16位CRC校驗。另外,Modbus採用主從方式定時收發數據,在實際使用中如果某從站點斷開後(如故障或關機),主端可以診斷出來,而當故障修復後,網絡又可自動接通。因此,Modbus協議的可靠性較好。

Modbus與OSI參考模型

Modbus之ASCII通訊方式

數據幀

廣播模式(只用於寫操作)

非廣播模式

Modbus之RTU通訊方式


Modbus TCP通訊應用

Modbus TCP通訊應用舉例

在讀寄存器的過程中,以Modbus TCP請求報文爲例,具體的數據傳輸過程如下:

1) Modbus TCP客戶端實況,用Connect()命令建立目標設備TCP 502端口連接數據通信過程;

2) 準備Modbus報文,包括7個字節MBAP內請求;

3) 使用send()命令發送;

4) 同一連接等待應答;

5) 同recv()讀報文,完成一次數據交換過程;

6) 當通信任務結束時,關閉TCP連接,使服務器可以爲其他服務。

Modbus TCP/IP協議

Modbus TCP/IP協議,就是去掉了modbus協議本身的CRC校驗,增加了MBAP 報文頭。

首先來看一下,MBAP 報文頭都包括了哪些信息和內容。

MBAP報文頭包括下列區域:

MODBUS公共功能碼定義

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章