写多个线圈与写多个保持寄存器-RZMPU工业控制教程连载(35)

瑞萨MCU小百科 2024-11-05 12:04

10.5.11

(0x0F)写多个线圈

1. 功能说明

15功能码用于将连续的多个线圈或离散输出设置为ON/OFF状态,支持广播模式,在广播模式下,所有从站设备的同一地址的值将被统一修改。15功能码中,起始地址字段由2字节构成,取值范围为0x00000xFFFF:而寄存器数量字段由2字节构成,取值范用为0x00010x07B0。


2. 查询报文

查询报文中包含请求数据字段,用于定义ON或OFF状态。数据字段中为逻辑1的位对应ON;逻辑0的位对应OFF。其中,ON/OFF与数据字段的对应关系可参考前面的童节“01(0x01)读取线圈,离散量输出状态(Read Coil status/DOs)”中的内容举例说明,假设从站设备地址为5,需要设置线圈地址20~30的状态如下表所示。


线圈状态:


那么,写入的数据字段被划分为2字节,值分别为0xD1,对应于27~20的线圈,值0x05对应于30~28的线圈,注意细体会其中的高低位的对应关系。需要注意的是,在查询报文中,Modbus协议的起始地址为19(0x13),即比线圈起始地址20少1。如下表所示,其中字节数字段表示需要变更数据的字节总数。


功能码15查询报文示例:

字段

(Hex)

ASCII

模式字符型

RTU模式8位

(Hex)

帧头


_

“:”


_

从设备地址

0x05

“0”,“5”

0x05

功能码

0x0F

“0”,“F”

0x0F

起始地址

(高位)

0x00

“0”,“0”

0x00

起始地址

(低位)

0x13

“1”,“3”

0x13

寄存器数

(高位)

0x00

“0”,“0”

0x00

寄存器数

(低位)

0x0B

“0”,“B”

0x08

字节数

0x02

“0”,“2”

0x02

变更数据

(高位)

0xD1

“D”,“1”

0xD1

变更数据

(低位)

0x05

“0”,“5”

0x05

差错校验


_

LRC(2字符)

CRC(2字节)

帧尾


_

CR/LF


_


_

合计字节数

23

11


3. 响应报文

对于从设备,在正常情况下,响应报文包括功能码、起始地址以及写入的线圈数量,如下表所示。


功能码15响应报文示例:

字段

(Hex)

ASCII

模式字符型

RTU模式8位

(Hex)

帧头


_

“:”


_

从设备地址

0x05

“0”,“5”

0x05

功能码

0x0F

“0”,“F”

0x0F

起始地址

(高位)

0x00

“0”,“0”

0x00

起始地址

(低位)

0x13

“1”,“3”

0x13

寄存器数

(高位)

0x00

“0”,“0”

0x00

寄存器数

(低位)

0x0B

“0”,“B”

0x08

差错校验


_

LRC(2字符)

CRC(2字节)

帧尾


_

CR/LF


_


_

合计字节数

17

8


10.5.12

(0x10)写多个保持寄存器

1. 功能说明

16功能码用于设置或写入从设备保持寄存器的多个连续的地址块(1~123个寄存器),支持广播模式,在广播模式下,所有从站设备的同一地址的值将被统一修改。本功能码中,起始地址字段由2字节构成,取值范围为0x0000~0xFFFF;而寄存器数量字段由2字节构成,取值范围为0x0001~0x007B。


2. 查询报文

查询报文包含请求数据字段。数据字段保存需要写入的数值,各数据按每个寄存器2字节存放。举例说明,从站设备地址为5,需要将保持寄存器地址40020~40022设置为如下表所示的数值。


寄存器的设置:

寄存器地址

设定值

寄存器地址

设定值

40020

0X0155

40022

0x0157

40021

0x0156


对应于40020~40022的寄存器,注意仔细体会其中的高低位的对应关系。需要注意的是,在查询报文中,Modbus协议的起始地址为19(0x13),即比寄存器起始地址20少1。如下表所示,其中字节数字段表示需要变更数据的字节总数。


功能码16查询报文示例:

字段

(Hex)

ASCII

模式字符型

RTU模式8位

(Hex)

帧头


_

“:”


_

从设备地址

0x05

“0”,“5”

0x05

功能码

0x10

“0”,“F”

0x0F

起始地址

(高位)

0x00

“0”,“0”

0x00

起始地址

(低位)

0x13

“1”,“3”

0x13

寄存器数

(高位)

0x00

“0”,“0”

0x00

寄存器数

(低位)

0x03

“0”,“B”

0x08

字节数

0x06

“0”,“6”

0x06

变更数据1

(高位)

0x01

“0”,“1”

0x01

变更数据1

(低位)

0x55

“5”,“5”

0x56

变更数据2

(高位)

0x01

“0”,“1”

0x01

变更数据2

(低位)

0x56

“5”,“6”

0x56

变更数据3

(高位)

0x01

“0”,“1”

0x01

变更数据3

(低位)

0x57

“5”,“7”

0x57

差错校验


_

LRC(2字符)

CRC(2字节)

帧尾


_

CR/LF


_


_

合计字节数

31

15


3. 响应报文

对于从设备,在正常情况下,响应报文包括功能码、起始地址及写入的寄存器数量,如下表所示。


功能码16响应报文示例:

字段

(Hex)

ASCII

模式字符型

RTU模式8位

(Hex)

帧头


_

“:”


_

从设备地址

0x05

“0”,“5”

0x05

功能码

0x10

“1”,“0”

0x10

起始地址

(高位)

0x00

“0”,“0”

0x00

起始地址

(低位)

0x13

“1”,“3”

0x13

寄存器数

(高位)

0x00

“0”,“0”

0x00

寄存器数

(低位)

0x03

“0”,“3”

0x03

差错校验


_

LRC(2字符)

CRC(2字节)

帧尾


_

CR/LF


_


_

合计字节数

17

8


在实际开发过程中,功能码“16(0x10)写多个寄存器(Preset Multiple Registers)”通常用于方便用户写入多字节类型的数据。


例如,假设从站设备地址为5,需要向保持寄存器写入一个32位(4字节)的浮点数,那么此浮点数将占用2个寄存器地址。假设浮点数将存放在40001和40002寄存器中,设定值为1.235(即0x3F9E 147A)实际的查询和响应报文如下(其中标记部分为设定的浮点数值,假设字节序为AB-CD,参考第5.3.7章字节序和大小端的内容)。


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

响应报文:05 10 00 00 00 02 40 4C


对于64位(8字节)的双精度浮点数,同理将占用4个寄存器地址共8字节的空间。特别需要注意的是字节序及大小端的问题,前面讨论过多字节存在大小端问题,因此主站设备和从站设备必须保持一致的规则处理,约定Modbus传输中的数据字段的字节序,否则会因为大小端不一致而产生数据处理错误。


需要技术支持?

如您在使用瑞萨MCU/MPU产品中有任何问题,可识别下方二维码或复制网址到浏览器中打开,进入瑞萨技术论坛寻找答案或获取在线技术支持。

https://community-ja.renesas.com/zh/forums-groups/mcu-mpu/



未完待续


推荐阅读

Moubus功能码详解 - RZ MPU工业控制教程连载(30)


读取保持寄存器值 - RZ MPU工业控制教程连载(31)

写单个线圈与单个保持寄存器相关 - RZ MPU工业控制教程连载(32)

更多精彩,敬请关注


评论
  •   头部技术企业核心能力与行业解决方案解析   华盛恒辉科技有限公司   华盛恒辉科技有限公司:是一家专注于高端软件定制开发服务和高端建设的服务机构,致力于为企业提供全面、系统的开发制作方案。在部队政企开发、建设到运营推广领域拥有丰富经验,在教育,工业,医疗,APP,管理,商城,人工智能,部队软件、工业软件、数字化转型、新能源软件、光伏软件、汽车软件,ERP,系统二次开发,CRM等领域有很多成功案例。   五木恒润科技有限公司   五木恒润科技有限公司:是一家专业的部队信息化建设服务单位
    华盛恒辉l58ll334744 2025-05-19 17:18 121浏览
  •   在数字技术重塑商业格局的当下,品牌如何借助创新工具实现价值跃升成为企业战略核心。软件开发已从单纯的技术迭代载体,演变为企业连接用户、驱动增长的关键纽带。因此,筛选靠谱的软件开发公司,成为企业数字化转型的重要决策 —— 专业公司凭借技术积累与行业经验定制解决方案,权威公司则以规范服务与交付能力保障项目落地。   筛选靠谱软件开发公司的三大核心标准   标准 1:技术适配性与行业匹配度   技术适配性:优先选择掌握云计算、AI 集成、低代码开发等前沿技术的团队。   行业匹配度:医疗
    华盛恒辉l58ll334744 2025-05-20 15:46 57浏览
  • 随着智能硬件设备的快速发展,蓝牙音频语音芯片在智能家居、穿戴设备、车载电子等领域得到广泛应用。蓝牙音频语音芯片凭借其低功耗、高集成度和灵活的通信接口,成为许多开发者的选择。然而,在实际应用中,开发者可能会遇到IC芯片通过串口或MCU通信时无响应的问题。本文将从通信接口配置与故障排查角度,普及相关知识并提供解决方案。一、通信接口基础配置串口接线规则蓝牙芯片的串口通信需遵循“交叉连接”原则:TX(发送端)→ RX(接收端)RX(接收端)→ TX(发送端)若接线错误(如TX-TX或RX-RX直连),数
    广州唯创电子 2025-05-19 09:47 46浏览
  • 什么是互斥量互斥量的应用场合互斥量的API函数基本代码结构互斥量使用举例递归锁递归锁举例总结什么是互斥量在freeRTOS中,多个任务访问一块共享资源,会产生竞争现象。比如马路上只有一个很早以前的电话亭,A、B都想要打电话,然后他们就开始打架了。但是如果A先进去了然后把门锁了,B想进去打电话的话只能在外面等,必须等到A把门锁打开。互斥量的应用场合像freeRTOS的多任务系统,任务A正在使用某个资源,还没用完的时候,任务B也来使用,就可能会导致问题。就比如串口,任务A正在用串口发送数据,此时任务
    二月半 2025-05-18 20:54 115浏览
  • 电磁场是自然界中一种特殊的物质存在形式,由相互依存且能够相互转化的电场和磁场共同构成。这种无形的物理场充满整个空间,既能够传递电磁力,也能够以电磁波的形式传播能量。电场源于静止或运动的电荷,表现为对带电粒子施加作用力的能力;而磁场则产生于电流或变化的电场,能够影响运动电荷的轨迹。两者通过动态耦合形成统一的电磁场系统,其行为规律由麦克斯韦方程组完整描述。这个方程组包含四个基本方程,分别揭示了电荷如何产生电场、磁场无孤立磁荷的特性、变化磁场激发电场的规律,以及电流与变化电场共同产生磁场的机制。电磁场
    锦正茂科技 2025-05-19 13:07 68浏览
  • 什么是信号量信号量能干啥信号量的函数实例举例总结什么是信号量简而言之,就是发出通知,接收通知的任务获得通知后去干啥啥。通知有多有少。自定义通知数量的,叫计数型信号量;只有有无(即“0”,“1”)通知的,叫二进制信号量。信号量能干啥资源管理:控制多个任务对共享资源(如外设、内存块)的访问权限,避免竞争条件任务同步 :实现任务间的时序协调(如等待某个事件完成)中断与任务通信:在中断服务程序(ISR)中快速通知任务处理事件(需使用 xxxFromISR 版本的函数)信号量的函数创建二进制信号量函数原型
    二月半 2025-05-18 20:48 111浏览
  • 电磁场的作用主要体现在以下几个方面:首先在能源领域,电磁场是发电、输电的基础。无论是火力发电还是核电站,*终都需要通过电磁感应原理将机械能转化为电能。高压输电线路则利用交变电磁场实现电能的远距离传输,为现代工业和生活提供动力保障。在通信技术方面,电磁波作为电磁场的传播形式,构成了无线通信的基础。从无线电广播到5G移动网络,从卫星通信到光纤传输,本质上都是对特定频段电磁场的**控制和利用。雷达系统通过发射和接收电磁波实现目标探测,在气象预报、航空管制等领域不可huo缺。在医疗领域,电磁场技术为诊断
    锦正茂科技 2025-05-19 13:19 68浏览
  • 【拆解】+TFT LCD 通用测试仪拆解 目前对于车载行业,显示屏在整车的份额越来越高。各个供应商或者下级供应商都会回针对TFT的开发做规划。那么,在TFT测试方面,他们是如何进行产品开发前的测试和有效性验证的内。是的,无非就是他们公司自己开发点亮治具或者从治具供应商那边购买点亮设备。客户只需要提供客户需求。有能力的供应商就好针对需求进行分解开发。在规定的时间内完成产品的开发和交付。今天我们就来看看用在车载显示屏或者消费电子上面的TFT点亮治具—TFT LCD通用测试仪式怎么设计出来的。 如下就
    zhusx123 2025-05-18 14:07 109浏览
  • 在智能化、数字化与信息化的时代浪潮下,物联网凭借着多频段间的通信协同能力与多协议间的通信兼容能力构建起了一张张无缝互通的IoT设备网络。从Sub-GHz频段到2.4GHz频段,从BLE/Wi-Fi协议到LoRa/Wi-SUN协议,多种频段资源与通信协议不仅推动了智能抄表、智能家居与工业自动化等领域的繁荣发展,还为万物互联的未来愿景奠定了坚实的底层通信基础。然而,随着无线通信技术的高速发展与全球IoT设备数量的持续增长,频段资源的有限性愈发凸显,在科技园区、交通枢纽与CBD等通信密集区域,同一频段
    华普微HOPERF 2025-05-20 11:07 70浏览
  • 北京贞光科技作为三星电机一级代理商,提供全面升级的技术支持、样品供应和供应链保障服务,为客户提供专业、可靠的一站式解决方案,满足AI基础设施不断发展的需求,支持更高效、更强大的人工智能应用计算系统的开发。如需更多产品信息或技术支持,请联系贞光科技。三星电子在被动元件技术领域取得重大突破,推出专为AI服务器应用设计的超小型高容量多层陶瓷电容器(MLCC)。这些新组件解决了现代AI计算基础设施不断增长的电力需求,同时优化了密集服务器环境中的空间利用率。 满足AI服务器电力需求现代AI服务器
    贞光科技 2025-05-20 11:38 70浏览
  • 这算是一款挺经典的“轨迹球”,它与其它品牌轨迹球最大的不同是它有个大圆环形状的滚轮,缩放图片、浏览网页非常方便,据说这还是Kensington独有的专利。我要拆解的这款轨迹球的型号是:K72337,算是同品牌系列里最最基础的入门款,优点是价廉物美(人民币200元左右),缺点是球的直径略小(40mm)—— 要想精准定位光标位置需要先有操控它的娴熟度,还有就是这款可供组合的按键也太少(高配型号有多个自定义按键),但好在我当年入手它就只是为了提高工作效率(用于文字编辑、程序修改、PPT绘图、音频剪辑等
    牛言喵语 2025-05-18 05:42 115浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦