新聞中心

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

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

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

        報文模型

        設備地址

        本文引用地址:http://www.104case.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

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 虹口区| 鱼台县| 滕州市| 临朐县| 龙井市| 鲁山县| 清水河县| 饶平县| 甘德县| 阿巴嘎旗| 宕昌县| 钟山县| 玉树县| 堆龙德庆县| 齐齐哈尔市| 桂平市| 衡南县| 花垣县| 武义县| 阿尔山市| 石屏县| 鄂州市| 武川县| 偃师市| 张家川| 信丰县| 铜梁县| 清徐县| 涟水县| 儋州市| 甘肃省| 托克托县| 长泰县| 汤阴县| 昌乐县| 莆田市| 伊春市| 黑龙江省| 如东县| 洞口县| 芜湖市|