在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

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

3天內(nèi)不再提示

寫多個線圈與寫多個保持寄存器

瑞薩MCU小百科 ? 來源:瑞薩MCU小百科 ? 2024-11-06 15:21 ? 次閱讀

10.5.11

(0x0F)寫多個線圈

1. 功能說明

15功能碼用于將連續(xù)的多個線圈或離散輸出設(shè)置為ON/OFF狀態(tài),支持廣播模式,在廣播模式下,所有從站設(shè)備的同一地址的值將被統(tǒng)一修改。15功能碼中,起始地址字段由2字節(jié)構(gòu)成,取值范圍為0x00000xFFFF:而寄存器數(shù)量字段由2字節(jié)構(gòu)成,取值范用為0x00010x07B0。

2. 查詢報文

查詢報文中包含請求數(shù)據(jù)字段,用于定義ON或OFF狀態(tài)。數(shù)據(jù)字段中為邏輯1的位對應(yīng)ON;邏輯0的位對應(yīng)OFF。其中,ON/OFF與數(shù)據(jù)字段的對應(yīng)關(guān)系可參考前面的童節(jié)“01(0x01)讀取線圈,離散量輸出狀態(tài)(Read Coilstatus/DOs)”中的內(nèi)容舉例說明,假設(shè)從站設(shè)備地址為5,需要設(shè)置線圈地址20~30的狀態(tài)如下表所示。

線圈狀態(tài):

bd1d8152-9bec-11ef-a511-92fbcf53809c.png

那么,寫入的數(shù)據(jù)字段被劃分為2字節(jié),值分別為0xD1,對應(yīng)于27~20的線圈,值0x05對應(yīng)于30~28的線圈,注意細體會其中的高低位的對應(yīng)關(guān)系。需要注意的是,在查詢報文中,Modbus協(xié)議的起始地址為19(0x13),即比線圈起始地址20少1。如下表所示,其中字節(jié)數(shù)字段表示需要變更數(shù)據(jù)的字節(jié)總數(shù)。

功能碼15查詢報文示例:

字段
(Hex)
ASCII
模式字符型
RTU模式8位
(Hex)
幀頭 “:”
從設(shè)備地址 0x05 “0”,“5” 0x05
功能碼 0x0F “0”,“F” 0x0F
起始地址
(高位)
0x00 “0”,“0” 0x00
起始地址
(低位)
0x13 “1”,“3” 0x13
寄存器數(shù)
(高位)
0x00 “0”,“0” 0x00
寄存器數(shù)
(低位)
0x0B “0”,“B” 0x08
字節(jié)數(shù) 0x02 “0”,“2” 0x02
變更數(shù)據(jù)
(高位)
0xD1 “D”,“1” 0xD1
變更數(shù)據(jù)
(低位)
0x05 “0”,“5” 0x05
差錯校驗 LRC(2字符) CRC(2字節(jié))
幀尾 CR/LF
合計字節(jié)數(shù) 23 11

3. 響應(yīng)報文

對于從設(shè)備,在正常情況下,響應(yīng)報文包括功能碼、起始地址以及寫入的線圈數(shù)量,如下表所示。

功能碼15響應(yīng)報文示例:

字段
(Hex)
ASCII
模式字符型
RTU模式8位
(Hex)
幀頭 “:”
從設(shè)備地址 0x05 “0”,“5” 0x05
功能碼 0x0F “0”,“F” 0x0F
起始地址
(高位)
0x00 “0”,“0” 0x00
起始地址
(低位)
0x13 “1”,“3” 0x13
寄存器數(shù)
(高位)
0x00 “0”,“0” 0x00
寄存器數(shù)
(低位)
0x0B “0”,“B” 0x08
差錯校驗 LRC(2字符) CRC(2字節(jié))
幀尾 CR/LF
合計字節(jié)數(shù) 17 8

10.5.12

(0x10)寫多個保持寄存器

1. 功能說明

16功能碼用于設(shè)置或?qū)懭霃脑O(shè)備保持寄存器的多個連續(xù)的地址塊(1~123個寄存器),支持廣播模式,在廣播模式下,所有從站設(shè)備的同一地址的值將被統(tǒng)一修改。本功能碼中,起始地址字段由2字節(jié)構(gòu)成,取值范圍為0x0000~0xFFFF;而寄存器數(shù)量字段由2字節(jié)構(gòu)成,取值范圍為0x0001~0x007B。

2. 查詢報文

查詢報文包含請求數(shù)據(jù)字段。數(shù)據(jù)字段保存需要寫入的數(shù)值,各數(shù)據(jù)按每個寄存器2字節(jié)存放。舉例說明,從站設(shè)備地址為5,需要將保持寄存器地址40020~40022設(shè)置為如下表所示的數(shù)值。

寄存器的設(shè)置:

寄存器地址 設(shè)定值 寄存器地址 設(shè)定值
40020 0X0155 40022 0x0157
40021 0x0156

對應(yīng)于40020~40022的寄存器,注意仔細體會其中的高低位的對應(yīng)關(guān)系。需要注意的是,在查詢報文中,Modbus協(xié)議的起始地址為19(0x13),即比寄存器起始地址20少1。如下表所示,其中字節(jié)數(shù)字段表示需要變更數(shù)據(jù)的字節(jié)總數(shù)。

功能碼16查詢報文示例:

字段
(Hex)
ASCII
模式字符型
RTU模式8位
(Hex)
幀頭 “:”
從設(shè)備地址 0x05 “0”,“5” 0x05
功能碼 0x10 “0”,“F” 0x0F
起始地址
(高位)
0x00 “0”,“0” 0x00
起始地址
(低位)
0x13 “1”,“3” 0x13
寄存器數(shù)
(高位)
0x00 “0”,“0” 0x00
寄存器數(shù)
(低位)
0x03 “0”,“B” 0x08
字節(jié)數(shù) 0x06 “0”,“6” 0x06
變更數(shù)據(jù)1
(高位)
0x01 “0”,“1” 0x01
變更數(shù)據(jù)1
(低位)
0x55 “5”,“5” 0x56
變更數(shù)據(jù)2
(高位)
0x01 “0”,“1” 0x01
變更數(shù)據(jù)2
(低位)
0x56 “5”,“6” 0x56
變更數(shù)據(jù)3
(高位)
0x01 “0”,“1” 0x01
變更數(shù)據(jù)3
(低位)
0x57 “5”,“7” 0x57
差錯校驗 LRC(2字符) CRC(2字節(jié))
幀尾 CR/LF
合計字節(jié)數(shù) 31 15

3. 響應(yīng)報文

對于從設(shè)備,在正常情況下,響應(yīng)報文包括功能碼、起始地址及寫入的寄存器數(shù)量,如下表所示。

功能碼16響應(yīng)報文示例:

字段
(Hex)
ASCII
模式字符型
RTU模式8位
(Hex)
幀頭 “:”
從設(shè)備地址 0x05 “0”,“5” 0x05
功能碼 0x10 “1”,“0” 0x10
起始地址
(高位)
0x00 “0”,“0” 0x00
起始地址
(低位)
0x13 “1”,“3” 0x13
寄存器數(shù)
(高位)
0x00 “0”,“0” 0x00
寄存器數(shù)
(低位)
0x03 “0”,“3” 0x03
差錯校驗 LRC(2字符) CRC(2字節(jié))
幀尾 CR/LF
合計字節(jié)數(shù) 17 8

在實際開發(fā)過程中,功能碼“16(0x10)寫多個寄存器(Preset MultipleRegisters)”通常用于方便用戶寫入多字節(jié)類型的數(shù)據(jù)。

例如,假設(shè)從站設(shè)備地址為5,需要向保持寄存器寫入一個32位(4字節(jié))的浮點數(shù),那么此浮點數(shù)將占用2個寄存器地址。假設(shè)浮點數(shù)將存放在40001和40002寄存器中,設(shè)定值為1.235(即0x3F9E 147A)實際的查詢和響應(yīng)報文如下(其中標記部分為設(shè)定的浮點數(shù)值,假設(shè)字節(jié)序為AB-CD,參考第5.3.7章字節(jié)序和大小端的內(nèi)容)。

查詢報文:05 10 00 00 00 02 04 3F 9E 14 7A 05 86

響應(yīng)報文:05 10 00 00 00 02 40 4C

對于64位(8字節(jié))的雙精度浮點數(shù),同理將占用4個寄存器地址共8字節(jié)的空間。特別需要注意的是字節(jié)序及大小端的問題,前面討論過多字節(jié)存在大小端問題,因此主站設(shè)備和從站設(shè)備必須保持一致的規(guī)則處理,約定Modbus傳輸中的數(shù)據(jù)字段的字節(jié)序,否則會因為大小端不一致而產(chǎn)生數(shù)據(jù)處理錯誤。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 線圈
    +關(guān)注

    關(guān)注

    14

    文章

    1844

    瀏覽量

    45106
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5401

    瀏覽量

    122773
  • 功能碼
    +關(guān)注

    關(guān)注

    0

    文章

    10

    瀏覽量

    2206
  • 報文
    +關(guān)注

    關(guān)注

    0

    文章

    39

    瀏覽量

    4132

原文標題:寫多個線圈與寫多個保持寄存器 - RZ MPU工業(yè)控制教程連載(35)

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

收藏 人收藏

    評論

    相關(guān)推薦

    NXP RC522 寄存器問題,哪位大神給點建議

    問題:寄存器 后再讀取寄存器值;但讀取的總是RC522 寄存器復(fù)位值(如TxControlReg 0x01,讀出是0x80;試寫過RC5
    發(fā)表于 12-29 02:32

    NI提供的modbus工具包功能測試結(jié)果,但是讀線圈讀不回來,多個寄存器也只能寫進去起始地址那個是什么原因呢?

    我使用的是NI提供的modbus工具包,目前成功的是連讀多個寄存器單個線圈單個寄存器;讀
    發(fā)表于 07-20 08:59

    Modbus協(xié)議———常用功能碼詳解

    0x0032,讀2個保持寄存器3)響應(yīng):數(shù)據(jù)存儲順序04H-讀輸入寄存器1)描述:讀輸入寄存器,字節(jié)指令操作,可讀單個或者多個; 2)發(fā)送指
    發(fā)表于 08-02 19:47

    如何把庫函數(shù)的文件和寄存器的文件結(jié)合起來用?

    庫函數(shù)的文件 怎么樣和 寄存器的文件 結(jié)合起來用啊?庫函數(shù)的文件 怎么樣和 寄存器的文件
    發(fā)表于 08-07 02:49

    無法理解Modbus RTU協(xié)議多個寄存器的這兩個參數(shù)

    Modbus RTU協(xié)議多個寄存器的協(xié)議是下面這樣描述的:針對這個協(xié)議我有幾個問題,請教大家:1、其中請求PDU中的“寄存器數(shù)量”和“字節(jié)數(shù)”兩個參數(shù)是不是冗余了?“字節(jié)數(shù)”不是可以
    發(fā)表于 05-07 10:43

    無法理解Modbus RTU協(xié)議多個寄存器的這兩個參數(shù)!

    Modbus RTU協(xié)議多個寄存器的協(xié)議是下面這樣描述的:針對這個協(xié)議我有幾個問題,請教大家:1、其中請求PDU中的“寄存器數(shù)量”和“字節(jié)數(shù)”兩個參數(shù)是不是冗余了?“字節(jié)數(shù)”不是可以
    發(fā)表于 05-07 15:21

    調(diào)試AD7124-8驅(qū)動時,對各寄存器配置之后再次讀各寄存器的值,多個寄存器的值都為fffffffd是為什么?

    在調(diào)試AD7124-8驅(qū)動時,對各寄存器配置之后再次讀各寄存器的值,多個寄存器的值都為fffffffd,這是為什么? 看參考程序里面對各寄存器
    發(fā)表于 12-07 08:29

    寄存器尋址方式

    寄存器尋址方式   寄存器尋址是對由指令選定的工作寄存器(R0--R7)進行讀/,由指令操作碼字節(jié)的最低3位指明所尋址的工作寄存器
    發(fā)表于 03-14 15:29 ?2928次閱讀

    32位寄存器,32位寄存器是什么意思

    32位寄存器,32位寄存器是什么意思  從X8086開始學(xué)了一年,第一個ASM的程序就是變32換16進制的程序,不過現(xiàn)在叫我從新開始ASM程
    發(fā)表于 03-08 17:26 ?1.8w次閱讀

    使用寄存器級讀&控制基于PXI平臺的FPGA

    本文以基于PXI平臺的Marvin Test Solutions 3U FPGA板卡GX3500為設(shè)計對象,通過設(shè)計實例講解如何使用寄存器級讀&控制FPGA,并提供FPGA設(shè)計相關(guān)文件(如
    發(fā)表于 09-27 17:46 ?10次下載

    如何使用寄存器級讀&控制基于PXI平臺的FPGA

    如何使用寄存器級讀&控制基于PXI平臺的FPGA
    發(fā)表于 10-16 15:20 ?14次下載
    如何使用<b class='flag-5'>寄存器</b>級讀&<b class='flag-5'>寫</b>控制基于PXI平臺的FPGA

    如何使用寄存器級讀&控制基于PXI平臺的FPGA

    如何使用寄存器級讀&控制基于PXI平臺的FPGA
    發(fā)表于 10-19 08:48 ?12次下載

    STM32系列MCU,寄存器Or利用固件庫

    嵌入式的編程,往下說就是操作MCU的寄存器。而固件庫就是函數(shù)的集合,固件庫函數(shù)的作用是向下負責(zé)與寄存器直接打交道,向上提供用戶函數(shù)調(diào)用的接口(API)。相對于固件庫的方式,直接寄存器
    的頭像 發(fā)表于 08-09 17:22 ?7516次閱讀
    STM32系列MCU,<b class='flag-5'>寫</b><b class='flag-5'>寄存器</b>Or利用固件庫

    寄存器陣列低功耗設(shè)計方案

    寄存器操作的時候會改變寄存器內(nèi)容,需要時鐘鎖入新的數(shù)據(jù)。但是,對寄存器進行讀操作的時候,寄存器內(nèi)容不改變,
    的頭像 發(fā)表于 12-08 11:19 ?778次閱讀
    <b class='flag-5'>寄存器</b>陣列低功耗設(shè)計方案

    單個線圈與單個保持寄存器相關(guān)

    05功能碼用于將單個線圈寄存器(或離散輸入)設(shè)置為ON或OFF,該功能碼支持廣播模式在廣播模式下,所有從站設(shè)備的同一地址的值將被統(tǒng)一修改。查詢報文中的ON/OFF狀態(tài)由報文數(shù)據(jù)字段的常數(shù)指定
    的頭像 發(fā)表于 11-01 13:46 ?488次閱讀
    主站蜘蛛池模板: 美女扒开尿囗给男人玩的动图 | 一级做a爱免费观看视频 | www.黄黄黄 | 在线天堂资源www中文在线 | 欧美一区二区三区成人看不卡 | 亚洲永久网站 | 日韩免费三级 | 久久精品国产免费看久久精品 | 中文字幕天天躁夜夜狠狠综合 | 高清视频在线观看+免费 | 欧美黄三级在线观看 | 亚洲人成电影在线小说网色 | 色在线播放 | 天堂一区二区三区在线观看 | 成人性欧美丨区二区三区 | 超h高h文污肉 | 看片久久| 五月综合久久 | 2021天天操| 免费成人黄色网址 | 欧美特级午夜一区二区三区 | 久久久久久久综合狠狠综合 | 伊人一区二区三区 | 一级在线观看视频 | 美女扒开下面让男人捅 | 国产一区二区在线观看免费 | 午夜精品福利在线观看 | 国产三级国产精品 | 青草青青视频 | 女人张开腿让男人桶免费网站 | аⅴ资源中文在线天堂 | 4438x亚洲最大| 日本三级日本三级日本三级极 | 国产主播一区二区 | 人人艹人人干 | 久青草国产观看在线视频 | 久久黄色精品视频 | 夜夜骑首页 | 国产精品无码永久免费888 | 91大神成人偷拍在线观看 | 欧美一级三级在线观看 |