我在想, 无论如何,强制写一个“只读”的文章。 Modbus注册? 将注册表定义为“只读”'足够安全还是可以绕过?
感谢您的回答!
答案 0 :(得分:2)
在Modbus中定义“只读”模拟变量的正确方法是将其映射为输入寄存器。 Modbus中没有定义函数代码来写入输入寄存器。
由于历史原因,一些供应商将其所有变量映射为保持寄存器,理论上是读/写,即有一个写多寄存器功能。每当它们将只读变量映射为保持寄存器时,它们必须断言写入函数失败。但是,没有标准的异常代码,因为保持寄存器应该是可读/写的。这只是Modbus的特质之一。
回到你的问题,如果你将变量映射为输入寄存器,你可以确定协议不允许主机写入它。如果为了将互操作性问题映射为保持寄存器,协议将允许主机使用写入功能来更改其值,并且由您来阻止您的设备实现。