Modbus協議最基礎概念詳細介紹

一文認識Modbus協議;

1 什麼是Modbus?

ModbusModicon(施耐德)公司於1979年開發的串行通信協議。它最初設計用於公司的可編程邏輯控制器(PLC)。 Modbus是一種開放式協議,支持使用RS232/RS485/RS422協議的串行設備,同時還支持調制解調器。 它的簡單性以及製造商可以免費將其納入其產品的事實使其成爲連接工業電子設備的最流行的方法。
Modbus比其他通信協議使用的更廣泛的主要原因有以下幾點:

  • 公開發表並且無著作權要求;
  • 易於部署和維護;
  • 對供應商來說,修改移動本地的比特或字節沒有很多限制;

Modbus通過設備之間的串行線進行數據傳輸。最簡單的設置是使用一根串行電纜連接兩個設備(主設備和從設備)上的串行端口。
數據以稱爲比特10的序列發送。每個位都作爲電壓發送。0被髮送爲正電壓,1被髮送爲負電壓。如下圖所示;

在這裏插入圖片描述

2 主從模式

Modbus解決了通過串行線路在電子設備之間發送信息的問題。 該協議在遵循該協議的體系結構中實現主/從模型
Modbus主站(Master)負責從其他設備(Slave)請求信息。 標準Modbus網絡中有一個Modbus主站。具體如下圖所示;


主設備向從設備請求信息,最多大約可達到240個 . 每個從設備都有自己唯一的從設備地址標識Slave Address)。
除了從從設備請求信息之外,主設備還可以寫入從設備的內部寄存器

3 協議的分類

Modbus的應用十分廣泛,特別是在工業控制領域,具體如下圖所示;

我們可以看到最常用Modbus協議總共有以下四種:Modbus ASCIIModbus RTUModbus PlusModbus TCP

具體如下圖所示;

3.1 Modbus ASCII

當設備設置爲使用ASCII美國信息交換標準代碼)模式在MODBUS串行線上進行通信時,消息中的每個8位字節將作爲兩個ASCII 4位字符發送。當物理通信鏈路或設備的功能不允許符合RTU計時器管理要求時,使用此模式。
所以此模式的效率不如RTU,因爲每個字節需要兩個字符。示例:字節0x7D編碼爲兩個字符:0x350x42(在ASCII表中爲0x37 ='7',而0x44 ='D')。

3.2 Modbus RTU

Modbus RTU是一種緊湊的,採用二進制表示數據的方式;因爲使用二進制編碼和CRC錯誤檢查的結合使得Modbus RTU適用於工業應用,因爲它比ASCII字符的替代方案更有效地傳輸。 在Modbus RTU與ASCII之間進行選擇時,如果考慮性能,則RTU是首選。

3.3 Modbus TCP

Modbus TCP 是在TCP/IP網絡上運行的Modbus的實現,旨在允許Modbus ASCII / RTU協議在基於TCP / IP的網絡上傳輸。Modbus / TCP將Modbus消息嵌入TCP / IP幀內。儘管實現起來非常簡單,但是與網絡相關的特性增加了一些挑戰。例如,由於Modbus主機期望並要求在一定時間範圍內對其輪詢做出響應,因此必須考慮TCP / IP網絡的不確定性(和其他方面)。
Modbus ASCII和Modbus TCP之間的主要區別在於,Modbus ASCII所需的LRC錯誤檢查由IP層執行。

對於以上TCP/RTU/ASCII的這三種通信協議在數據模型和功能調用上都是相同的,只有封裝方式是不同的。

3.4 Modbus Plus

Modbus有一個擴展版本Modbus Plus(Modbus+或者MB+),不過此協議是Modicon專有的,和Modbus不同。
它需要一個專門的協處理器來處理類似HDLC的高速令牌旋轉。它使用1Mbit/s的雙絞線,並且每個節點都有轉換隔離設備,是一種採用轉換/邊緣觸發而不是電壓/水平觸發的設備。連接Modbus Plus到計算機需要特別的接口,通常是支持ISA(SA85),PCI或者PCMCIA總線的板卡。1

4 libmodbus

libmodbus是一個多平臺的modbus開源庫,適用於Linux,Mac OS X,FreeBSD,QNX和Win32等操作系統;
可以根據Modbus協議發送和接收數據。支持RTU(串行)和TCP(以太網)通信。
官網:libmodbus.org
Github:github.com/stephane/libmodbus/

5 總結

本文簡單介紹了modbus協議,以及modbus的種類以及相互之間的區別,目前沒有深入到各個協議的細節,只做了一個概覽。筆者能力和水平有限,文中難免存在錯誤和紕漏,請大佬不吝賜教。


  1. wiki modbus ↩︎

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