女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Modbus協議的讀取保持寄存器值

瑞薩MCU小百科 ? 來源:瑞薩MCU小百科 ? 2024-10-30 10:54 ? 次閱讀

10.5.4

0x03)讀取保持寄存器

1. 功能說明

03功能碼用于讀取從設備保持寄存器的內容,不支持廣播模式。消息頓中指定了需要讀取的保持寄存器的起始地址和數目。而保持寄存器中各地址的具體內容和意義則由設備開發者自行規定。

2. 查詢報文

在查詢報文中,必須指定保持寄存器的開始地址和需要讀取的寄存器數量,例如,如下表所示,從設備地址為7(0x07),需要讀取保持寄存器地址40201~40203共計3個寄存器的內容即讀取Modbus協議地址200~202的內容,在報文中表示如下。

起始地址:0x00C8(十進制200)。

讀取數量:0x0003(十進制3)。

功能碼03查詢報文示例:

字段 例(Hex) ASCII模式字符型 RTU模式8位
(Hex)
幀頭 “:”
從設備地址 0x07 “0”,“7” 0x07
功能碼 0x03 “0”,“3” 0x03
起始地址
(高位)
0x00 “0”,“0” 0x00
起始地址
(低位)
0xc8 “c”,“8” 0xc8
寄存器數
(高位)
0x00 “0”,“0” 0x00
寄存器數
(低位)
0x03 “0”,“3” 0x03
差錯校驗 LRC(2字符) CRC(2字節)
幀尾 CR/LF
合計字節數 17 8

本功能碼的起始地址由2字節構成,取值范圍為0x00000xFFFF;寄存器數量由2字節構成取值范圍為0x00010x007D(即十進制1~125),即最多可以連續讀取125個寄存器。

需要特別注意的是,Modbus的保持寄存器和輸入寄存器是以字(Word)為基本單位的(1Word=2Byte),所以如果讀取保持寄存器地址為40001開始的一個16位(bit)的無符號數,那么返回2字節,并可以從40002開始讀取下一個16位的無符號數。如果需要讀取寄存器地址為40001開始的一個32位浮點數,則需要返回4字節,即必須連續讀取40001和40002的內容,而且下一個32位的浮點數必須從40003開始讀取。對于浮點數(或者32位的整數)而言,連續讀取的兩個寄存器之間存在字節序和大小端的問題,這一點在開發時必須引起注意。

3. 響應報文

響應報文的各項構成和意義如下表所示。因為Modbus的保持寄存器和輸入寄存器是以字為基本單位的,在上面的例子中,查詢報文連續讀取3個寄存器的內容,將返回6 字節,參考表下表中數據1~3的高位和低位。

功能碼03響應報文示例:

字段 例(Hex) ASCII模式字符型 RTU模式8位
(Hex)
幀頭 “:”
從設備地址 0x07 “0”,“7” 0x07
功能碼 0x03 “0”,“3” 0x03
數據域字節數 0x06 “0”,“6” 0x06
數據1(高位) 0x03 “0”,“3” 0x03
數據1(低位) 0x53 “5”,“3” 0x53
數據2(高位) 0x01 “0”,“1” 0x01
數據2(低位) 0xF3 “F”,“3” 0xF3
數據3(高位) 0x01 “0”,“1” 0x01
數據3(低位) 0x05 “0”,“5” 0x05
差錯校驗 LRC(2字符) CRC(2字節)
幀尾 CR/LF
合計字節數 23 11

10.5.5

(0x04)讀取輸入寄存器值

1. 功能說明

與功能碼03類似,04功能碼用于讀取從設備輸入寄存器的內容,不支持廣播模式。消息頓中指定了需要讀取的輸入寄存器的起始地址和數目,而輸入寄存器中各地址的具體內容和意義則由設備開發者自行規定。

2. 查詢報文

在查詢報文中必須指定輸入寄存器的起始地址和需要讀取的寄存器數量。例如,如表4-9所示,從設備地址為7(0x07),需要讀取輸入寄存器地址30301~30303共計 3個寄存器的內容即讀取Modbus協議地址300~302的內容,在報文中表示如下。

起始地址:0x012C(十進制300)。

讀取數量:0x0003(十進制3)。

功能碼04查詢報文示例:

字段 例(Hex) ASCII模式字符型 RTU模式8位
(Hex)
幀頭 “:”
從設備地址 0x07 “0”,“7” 0x07
功能碼 0x04 “0”,“4” 0x04
起始地址
(高位)
0x01 “0”,“1” 0x01
起始地址
(低位)
0x2c “2”,“c” 0x2c
寄存器數
(高位)
0x00 “0”,“0” 0x00
寄存器數
(低位)
0x03 “0”,“3” 0x03
差錯校驗 LRC(2字符) CRC(2字節)
幀尾 CR/LF
合計字節數 17 8

本功能碼中,起始地址由2字節構成,取值范圍為0x0000~0xFFFF;寄存器數量由2字節構成,取值范圍為0x0001~0x007D(即十進制1~125),即最多可以連續讀取125個寄存器同樣有一點需要注意,Modbus的保持寄存器和輸入寄存器是以字為基本單位的。所以對于浮點數(或者32位的整數)而言,連續讀取的兩個寄存器之間存在字節序和大小端的問題,這一點在開發時必須引起注意。

3. 響應報文

響應報文的各項構成和意義如下表所示。因為Modbus的保持寄存器和輸入寄存器是以字為基本單位的,上面的例子中,查詢報文連續讀取3個寄存器的內容,那么將返回6字節,參考下表中數據1~3的高位和低位。

功能碼04響應報文示例:

字段 例(Hex) ASCII模式字符型 RTU模式8位
(Hex)
幀頭 “:”
從設備地址 0x07 “0”,“7” 0x07
功能碼 0x04 “0”,“4” 0x04
數據域字節數 0x06 “0”,“6” 0x06
數據1(高位) 0x03 “0”,“3” 0x03
數據1(低位) 0x53 “5”,“3” 0x53
數據2(高位) 0x01 “0”,“1” 0x01
數據2(低位) 0xF3 “F”,“3” 0xF3
數據3(高位) 0x01 “0”,“1” 0x01
數據3(低位) 0x05 “0”,“5” 0x05
差錯校驗 LRC(2字符) CRC(2字節)
幀尾 CR/LF
合計字節數 23 11

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 寄存器
    +關注

    關注

    31

    文章

    5421

    瀏覽量

    123290
  • MODBUS
    +關注

    關注

    28

    文章

    1995

    瀏覽量

    78940
  • 功能碼
    +關注

    關注

    0

    文章

    10

    瀏覽量

    2225

原文標題:讀取保持寄存器值 - RZ MPU工業控制教程連載(31)

文章出處:【微信號:瑞薩MCU小百科,微信公眾號:瑞薩MCU小百科】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    Modbus協議的疑問

    邏輯線圈的當前狀態(ON/OFF)2讀取輸入狀態取得一組開關輸入的當前狀態(ON/OFF)3讀取保持寄存器在一個或多個保持寄存器中取得當前的
    發表于 02-20 11:57

    基于Modbus協議的485總線,當功能碼為03H,讀取N個讀寄存器數據時,從設備需要進行N次消息回送嗎?

    基于Modbus協議的485總線,采用C51單片機作為主機,多個智能傳感作為從設備,欲準確高效得采集多傳感數據,應該功能碼為03H讀多個寄存器
    發表于 03-07 13:38

    求助大神關于modbus協議保持寄存器的問題

    我想用電腦向傳感發送采集指令,但是輸入保持寄存器時傳感沒有反應連接應該沒有問題,能讀到設備標識
    發表于 05-18 20:04

    Modbus協議說明及VC代碼

    名稱 作用 01 讀取線圈狀態 取得一組邏輯線圈的當前狀態(ON/OFF) 02 讀取輸入狀態 取得一組開關輸入的當前狀態(ON/OFF) 03 讀取保持寄存器 在一個或多個
    發表于 08-03 15:14

    Modbus庫開發筆記之九:利用協議棧開發Modbus TCP Server應用

    GetInputStatus(uint16_tstartAddress,uint16_t quantity,bool *statusValue); /*獲取想要讀取保持寄存器*
    發表于 08-26 15:56

    modbus協議筆記

    1 Modbus協議概要? Modbus通信協議由Modicon公司(現在的施耐德電氣Schneider Electric)于1979年為可編程邏輯控制(即PLC)通信而發表。目前,Modbu
    發表于 07-02 07:17

    Modbus協議是什么?Modbus協議主要有哪些應用?

    請問一下Modbus協議是什么?Modbus協議主要有哪些應用?
    發表于 07-15 12:04

    Modbus協議是什么

    Modbus協議是什么?MODBUS功能碼有哪些?MODBUS協議有哪幾種傳輸模式?
    發表于 09-29 07:06

    libmodbus寄存器個數的疑問

    MODBUS_MAX_READ_BITS2000MODBUS_MAX_READ_REGISTERS125根據modbus協議寄存器地址是從0到65535的,那這幾個宏定義,應該是指的是每次最多可連接
    發表于 06-30 15:39

    RS485和Modbus通信協議讓工業自動化更高效

    。以下是Modbus RTU協議中常用的功能碼及其含義:   01:讀取線圈寄存器   02:讀取離散輸入
    發表于 05-05 16:25

    Modbus協議的理解

    系統的兼容,最好采用通用的通訊協議。   我們可以Modbus協議進行修改,使之能使用在自己的系統中。Modbus協議包括ASCII、RTU、TCP等,并沒有規定物理層。此協議定義了控
    發表于 05-05 16:47

    modbus協議中的輸入寄存器可以讀寫嗎?

    modbus協議中的輸入寄存器可以讀寫嗎
    發表于 10-13 08:03

    C#使用Modbus協議讀寫匯川PLC的M區寄存器

    C#使用Modbus-TCP協議讀取匯川PLC,Modbus讀寫是按照MW地址來處理的 【寄存器單位是字WORD,占用兩個字節,類似于C#中
    發表于 04-19 10:34 ?15次下載
    C#使用<b class='flag-5'>Modbus協議</b>讀寫匯川PLC的M區<b class='flag-5'>寄存器</b>

    工程監測無線中繼采集儀的參數讀寫MODBUS協議

    如下 工程監測無線中繼采集儀的參數讀寫MODBUS協議 例:讀取地址為 129 的無線中繼采集儀寄存器寄存器
    的頭像 發表于 05-22 11:30 ?812次閱讀
    工程監測無線中繼采集儀的參數讀寫<b class='flag-5'>MODBUS協議</b>

    modbus協議功能碼分類 modbus協議功能碼是什么,有什么作用

    的分類及其作用。 Modbus協議功能碼分類: Modbus協議定義了一系列的功能碼,每個功能碼都代表不同的請求類型和操作。根據Modbus規范,功能碼可以分為以下幾類: 讀功能碼(0x03和0x04): 功能碼0x03用于
    的頭像 發表于 01-31 14:47 ?8854次閱讀