我通过Modbus协议连接设备。
用于读写寄存器的命令(寄存器= 2个字节)。
但是,通常寄存器包含多个配置标志作为位,我只需要写一个左右。
我可以阅读它,修改标志并将其写回来,但这是正确的方法吗?
我已经看过一些写线圈的命令,但我不确定线圈是什么 - 有点吗?如果是这样,如何获得线圈的地址?
答案 0 :(得分:3)
这个命令叫做Mask Write Register,功能码为0x16。不幸的是,您必须验证您的设备实际上是否支持此功能。
如果没有,你将不得不做你最初提出的 - 读/修改/写。重要的是要意识到这永远不会是一个安全的操作;没有办法保证在读取它和返回修改后的值之间不会改变值。
线圈是Modbus(保持寄存器,输入寄存器,线圈,离散输入)中的四个数据区域之一,是的它们是布尔/位,但是如果您应该使用的值这并不重要读/写存储为寄存器中的位。