日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

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

瑞薩嵌入式小百科 ? 來源:瑞薩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的線圈,注意細(xì)體會其中的高低位的對應(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的寄存器,注意仔細(xì)體會其中的高低位的對應(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)報文如下(其中標(biāo)記部分為設(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

    文章

    1895

    瀏覽量

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

    關(guān)注

    31

    文章

    5620

    瀏覽量

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

    關(guān)注

    0

    文章

    10

    瀏覽量

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

    關(guān)注

    0

    文章

    39

    瀏覽量

    4387
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(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

    無法理解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 ?3083次閱讀

    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ù)的作用是向下負(fù)責(zé)與寄存器直接打交道,向上提供用戶函數(shù)調(diào)用的接口(API)。相對于固件庫的方式,直接寄存器
    的頭像 發(fā)表于 08-09 17:22 ?8673次閱讀
    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 ?1827次閱讀
    <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 ?1878次閱讀

    大彩講堂:VisualHMI-LUA教程-連續(xù)多個寄存器函數(shù)的應(yīng)用

    ,value2,…,value120)vtype:數(shù)據(jù)類型addr:變量起始地址,最大可以120個連續(xù)寄存器value1:寄存器1的值value2:寄存器2的值……valu
    的頭像 發(fā)表于 10-17 00:00 ?1654次閱讀
    大彩講堂:VisualHMI-LUA教程-連續(xù)<b class='flag-5'>寫</b><b class='flag-5'>多個</b><b class='flag-5'>寄存器</b>函數(shù)的應(yīng)用
    和政县| 泾川县| 绿春县| 嘉祥县| 黑龙江省| 永靖县| 阳朔县| 师宗县| 衡南县| 牙克石市| 肃北| 莎车县| 永仁县| 吉林市| 年辖:市辖区| 信宜市| 离岛区| 盐边县| 齐齐哈尔市| 呼伦贝尔市| 积石山| 周宁县| 博客| 奉新县| 吉木萨尔县| 临清市| 南川市| 陆良县| 喜德县| 江油市| 丰顺县| 仙游县| 海伦市| 朔州市| 渭南市| 闽清县| 略阳县| 铅山县| 平果县| 棋牌| 大连市|