强制编写读取寄存器#modbus



我想知道,无论如何,是否有强制写入"只读" Modbus寄存器?将寄存器定义为"只读"是否足够安全或可以绕过?

感谢您的答案!

modbus中定义"仅读取"模拟变量的正确方法是将其映射为输入寄存器。Modbus中没有定义的功能代码来写入输入寄存器。

出于历史原因,几家供应商将其所有变量映射为保存寄存器,这些变量在理论上是读/写的,即,有一个写入多个寄存器功能。每当他们仅将读取变量映射为保存寄存器时,他们就必须断言写入功能失败。但是,没有标准的异常代码,因为应读/写保存寄存器。这只是Modbus的特质之一。

回到您的问题,如果将变量映射为输入寄存器,则可以确定该协议将不允许主写入。如果,对于互操作性问题,您将其映射为固定寄存器,则该协议将允许主人使用写入功能来更改其值,并且由您决定在设备实现中阻止。