MODBUS RTU資料幀格式 報文例項

2021-08-09 01:35:43 字數 2018 閱讀 8397

裝置位址

功能**

資料格式

crc校驗l

crc校驗h

8bit

8bit

n*8bit

8bit

8bit

乙個報文就是一幀資料,乙個資料幀就乙個報文: 指的是一串完整的指令資料,就像上面的一串資料。

如果微控制器接收到乙個報文那麼就對報文進行解析執行相應的處理

0x01

0600 01

00 17

98 04

從機位址

功能號資料位址

資料crc校驗

0x01

0300 01

00 01

d5 ca

從機位址

功能號資料位址

讀取資料個數

crc校驗

微控制器接收到這串資料根據資料計算crc校驗判斷資料是否正確,如果判斷資料無誤,則結果是:返回資訊給主機,返回的資訊也是有格式的:

從機對主機返回內容

0x01

0302

00 17

f8 4a

從機位址

功能號資料位元組個數

兩個位元組資料

crc校驗

這樣modbus主機就完成了一次對從機資料的讀操作,實現了通訊。

資料型別

讀功能碼

寫功能碼

物件型別

離散量輸入 02

單個位線圈狀態 01

05,15

單個位

輸入暫存器 04

16位字

保持暫存器 03

06,16

16位字

資料型別

引數位址,暫存器編號

離散量輸入

00001~0ffff

線圈狀態

10001~1ffff

輸入暫存器

30001~3ffff

保持暫存器

40001~4ffff

舉例:

modbus協議中暫存器位址從1開始,而實際儲存中位址從0開始。假如要讀取暫存器編號為40005(4為塊編號,5為modbus中暫存器位址)的暫存器的資料,則應把00

04放入報文的位址域。暫存器定義,又名碼表或者資訊點表,應由廠家提供的。

暫存器編號 屬性

定義 係數

備註40001

roa相電壓

從40048中讀取電壓係數

40002

rob相電壓

如要讀a相電壓,則應將0x00 0x00放入暫存器起始位址域中。

1、讀40005、40006兩個暫存器,假設從機位址為1

下行報文:01 03 00 04 00 02 85 ca

從機位址

功能碼暫存器起始位址

讀取暫存器個數

crc校驗 01

0300 04

00 02

85 ca

上行報文:01 03 04 00 00 00 00 21 33

從機位址

功能碼返回位元組個數

暫存器40005資料

暫存器40006資料

crc校驗 01

0304

00 00

00 00

21 33

2、向40005暫存器中寫入0x12,0x34,假設從機位址為1

下行報文:01 06 00 04 00 01 12 34 4a b0

從機位址

功能碼暫存器起始位址

讀取暫存器個數

要寫入的資料

crc校驗 01

0300 04

00 01

12 34

85 ca

上行報文:01 06 00 04 00 01 12 34 4a b0

從機位址

功能碼暫存器起始位址

讀取暫存器個數

寫入的資料

crc校驗 01

0300 04

00 01

12 34

85 ca

MODBUS RTU的報文格式

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

紅外資料幀格式

1 概述 對多種紅外遙控器的訊號進行分析,其發出的紅外指令中,引導碼各不相同,而且後面的控制指令也有較大差別,甚至指令碼的位數也不相同,原因是這些紅外設計沒有遵守相同的紅外標準。但是其基本思想是相同的,即採用不同週期和不同占空比的脈衝分別表示邏輯0及1,只要根據期占空比及脈衝週期進行解析即可得到具體...

資料鏈路層幀格式

首先簡單的介紹一下資料鏈路層 資料鏈路層在物理層的上面一層,它主要分兩種通道點對點通道和廣播通道。區分他們就看是一對一的點對點的通訊方式,還是一對多的廣播模式。先來談點對點通道。點對點的主要協議為ppp,以前還有一種可靠傳輸的協議hdlc,現在用的已經比較少了。ppp的主要作用是使用者pc連線到is...