modbus科普文章

一、modbus起源

Modbus是一種串行通信協議,是Modicon公司(現在的施耐德電氣 Schneider Electric)於1979年爲使用可編程邏輯控制器(PLC)通信而發表。Modbus已經成爲工業領域通信協議的業界標準(De facto),並且現在是工業電子設備之間常用的連接方式。

二、modbus協議版本

Modbus協議目前存在用於串口、以太網以及其他支持互聯網協議的網絡的版本。

大多數Modbus設備通信通過串口EIA-485物理層進行。

對於串行連接,存在兩個變種,它們在數值數據表示不同和協議細節上略有不同。Modbus RTU是一種緊湊的,採用二進制表示數據的方式,Modbus ASCII是一種人類可讀的,冗長的表示方式。這兩個變種都使用串行通信(serial communication)方式。RTU格式後續的命令/數據帶有循環冗餘校驗的校驗和,而ASCII格式採用縱向冗餘校驗的校驗和。被配置爲RTU變種的節點不會和設置爲ASCII變種的節點通信,反之亦然。

對於通過TCP/IP(例如以太網)的連接,存在多個Modbus/TCP變種,這種方式不需要校驗和計算。

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

三、modbus 硬件與通信

Modbus協議是一個master/slave架構的協議。有一個節點是master節點,其他使用Modbus協議參與通信的節點是slave節點。每一個slave設備都有一個唯一的地址。在串行和MB+網絡中,只有被指定爲主節點的節點可以啓動一個命令(在以太網上,任何一個設備都能發送一個Modbus命令,但是通常也只有一個主節點設備啓動指令)。

一個ModBus命令包含了打算執行的設備的Modbus地址。所有設備都會收到命令,但只有指定位置的設備會執行及迴應指令(地址0例外,指定地址0的指令是廣播指令,所有收到指令的設備都會運行,不過不迴應指令)。所有的Modbus命令包含了檢查碼,以確定到達的命令沒有被破壞。基本的ModBus命令能指令一個RTU改變它的寄存器的某個值,控制或者讀取一個I/O端口,以及指揮設備回送一個或者多個其寄存器中的數據。

有許多modems和網關支持Modbus協議,因爲Modbus協議很簡單而且容易複製。它們當中一些爲這個協議特別設計的。有使用有線、無線通信甚至短消息和GPRS的不同實現。不過設計者需要克服一些包括高延遲和時序的問題。

四、modbus在嵌入式領域的應用

FreeMODBUS一個奧地利人寫的Modbus協議。它是一個針對嵌入式應用的一個免費(自由)的通用MODBUS協議的移植。Modbus是一個工業製造環境中應用的一個通用協議。Modbus通信協議棧包括兩層:Modbus應用層協議,該層定義了數據模式和功能;另外一層是網絡層。

五、freemodbus下載

https://www.embedded-solutions.at/zh-hans/freemodbus/

六、modbus常用調試工具及說明

modbus poll

modbusslave

使用說明:

https://www.cnblogs.com/hieroly/p/9063710.html

 

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