a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > MODBUS-RTU數據幀格式、報文實例

MODBUS-RTU數據幀格式、報文實例

作者: 時間:2023-12-18 來源:歐工玩轉嵌入式 收藏

報文模型

設備地址

本文引用地址:http://www.j9360.com/article/202312/453989.htm

功能代碼

數據格式

CRC校驗L

CRC校驗H

8bit

8bit

N*8bit

8bit

8bit

一個報文就是一幀數據,一個數據幀就是一個報文: 指的是一串完整的指令數據,就像上面的一串數據。

主機對從機寫數據操作

如果單片機接收到一個報文那么就對報文進行解析執行相應的處理

0x01

06

00 01

00 17

98 04

從機地址

功能號

數據地址

數據

CRC校驗

主機對從機讀數據操作

0x01

03

00 01

00 01

D5 CA

從機地址

功能號

數據地址

讀取數據個數

CRC校驗

單片機接收到這串數據根據數據計算CRC校驗判斷數據是否正確,如果判斷數據無誤,則結果是:返回信息給主機,返回的信息也是有格式的:

從機對主機返回內容

0x01

03

02

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

RO

A相電壓


從40048中讀取電壓系數

40002

RO

B相電壓


如要讀A相電壓,則應將0x00 0x00放入寄存器起始地址域中。

報文實例

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

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

從機地址

功能碼

寄存器起始地址

讀取寄存器個數

CRC校驗

01

03

00 04

00 02

85 ca

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

從機地址

功能碼

返回字節個數

寄存器40005數據

寄存器40006數據

CRC校驗

01

03

04

00 00

00 00

21 33

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

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

從機地址

功能碼

寄存器起始地址

讀取寄存器個數

要寫入的數據

CRC校驗

01

03

00 04

00 01

12 34

85 ca

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

從機地址

功能碼

寄存器起始地址

讀取寄存器個數

寫入的數據

CRC校驗

01

03

00 04

00 01

12 34

85 ca




關鍵詞: MODBUS-RTU

評論


相關推薦

技術專區

關閉