Modbus RTU筆記總結

2021-10-05 03:07:34 字數 2131 閱讀 3443

modbus是目前工業控制上最常用的通訊協議,一般採用主從模式,一台主機對應一台從機或者一台主機對應多台從機。通訊採用一發一收的方式進行通訊。如果有多台從機,則採用輪詢從機的位址,進而與每個從機進行通訊。

起始+位址碼+功能碼+資料+crc校驗+結束 (最大的幀不大於256個位元組,幀間的停頓時間要超過3.5個字元時間,字元間的時間間隔不能超過1.5個字元時間)

位址碼為通訊傳送的第乙個位元組。這個位元組表明由使用者設定位址碼的從機將接收由主機傳送來的資訊。並且每個從機都有具有唯一的位址碼,並且響應回送均以各自的位址碼開始。主機傳送的位址碼表明將傳送到的從機位址,而從機傳送的位址碼表明回送的從機位址。

1.1.2 功能碼:

通訊傳送的第二個位元組。modbus通訊規約定義功能號為1到127。作為主機請求傳送,通過功能碼告訴從機執行什麼動作。作為從機響應,從機傳送的功能碼與從主機傳送來的功能碼一樣,並表明從機已響應主機進行操作。如果從機傳送的功能碼的最高位為1(比如功能碼大與此同時127),則表明從機沒有響應操作或傳送出錯。

1.1.3 資料區:

資料區是根據不同的功能碼而不同。資料區可以是實際數值、設定點、主機傳送給從機或從機傳送給主機的位址。

1.1.4 crc碼:

二位元組的錯誤檢測碼,crc校驗碼低位元組在前,高位元組在後,主要用來檢測資料的正確性。

1.2.1 主節點傳送幀格式:

控制器位址(乙個byte)+命令型別(乙個byte)+暫存器起始位址(兩個byte)+暫存器個數(兩個byte)+crc校驗(兩個byte,低在前,高在後)

1.2.2 從節點傳送幀格式:

控制器位址(乙個byte)+命令型別(乙個byte)+傳送位元組數(乙個byte)+第乙個暫存器的值(兩個byte)+第二個暫存器的值(兩個byte)…+最後乙個暫存器的值(兩個byte)+crc校驗(兩個byte,低在前,高在後)

1.2.3 從節點異常應答格式:

控制器位址(乙個byte)+(命令型別+128) + error code +crc校驗(兩個byte,低在前,高在後)

1.3.1 寫單個暫存器命令格式

1.3.1.1 主節點傳送幀格式:

控制器位址(乙個byte)+命令型別(乙個byte)+暫存器位址(兩個byte)+資料(兩個byte)+crc校驗(兩個byte,低在前,高在後)

1.3.1.2 從節點傳送幀格式:

控制器位址(乙個byte)+命令型別(乙個byte)+暫存器位址+資料+crc校驗(兩個byte,低在前,高在後)

1.3.1.3 從節點異常應答格式:

控制器位址(乙個byte)+(命令型別+128)+error code+crc校驗(兩個byte,低在前,高在後)

1.3.2 寫多個暫存器命令格式

1.3.1.1 主節點傳送幀格式:

控制器位址(乙個byte)+命令型別(乙個byte)+起始暫存器位址(兩個byte)+暫存器數(兩個byte)+傳送位元組數(乙個byte)+第乙個暫存器的值(兩個byte)+第二個暫存器的值(兩個byte)…+最後乙個暫存器的值(兩個byte)+crc校驗(兩個byte,低在前,高在後)

1.3.1.2 從節點正常應答幀格式:

控制器位址(乙個byte)+命令型別(乙個byte)+起始暫存器位址(兩個byte)+暫存器個數(兩個byte)+crc校驗(兩個byte,低在前,高在後)

1.3.1.3 從節點異常應答格式:

控制器位址(乙個byte)+(命令型別+128)+error code+crc校驗(兩個byte,低在前,高在後)

當通訊命令傳送至儀器時,符合相應位址碼的裝置接通訊命令,並除去位址碼,讀取資訊,如果沒有出錯,則執行相應的任務;然後把執行結果返送給傳送者。返送的資訊中包括位址碼、執行動作的功能碼、執行動作後結果的資料以及錯誤校驗碼。如果出錯就不傳送任何資訊。

rs-485介面特點:

1.雙線差分電氣訊號

2.半雙工傳輸模式

3.最遠1200公尺通訊距離

4.最快10mbit/s通訊速率

5.最大支援32個節點

常用功能碼:

0x01 讀線圈

0x02 讀離散量輸入

0x03 讀保持暫存器

0x04 讀輸入暫存器

0x05 寫單個線圈

0x06 寫單個暫存器

0x0f 寫多個線圈

0x10 寫多個暫存器

詳細解釋modbus RTU

modbus 乙個工業上常用的通訊協議 一種通訊約定。modbus協議包括rtu ascii tcp。其中modbus rtu最常用,比較簡單,在微控制器上很容易實現。雖然rtu比較簡單,但是看協議資料 手冊說得太專業了,起初很多內容都很難理解。所謂的協議是什麼?就是互相之間的約定嘛,如果不讓別人知...

Modbus RTU通訊協議

1.modbus rtu報文基本格式 起始應有 不小於3.5個字元的報文間隔 目標站號 功能碼資料 crc校驗碼 1位元組1位元組 n位元組2位元組 2.modbus命令 若響應錯誤,則返回的應答幀中 功能碼 最高位置1,比如功能碼為01,若響應錯誤,則返回的功能碼為0x81。2.1 功能碼01 讀...

MODBUS RTU的報文格式

如果是想通過串列埠除錯助手給plc發命令的話,假設plc從站位址為1的情況下,比如要對q0.0進行置位的話,可以發如下命令 01 0f 00 00 00 08 01 01 3f 55 其中 0f 功能碼,用來寫多路位變數的功能碼 00 預寫的暫存器個數的高8位 08 預寫的暫存器個數的低8位 01 ...