【问题标题】:Force writing only-read register #Modbus强制写入只读寄存器#Modbus
【发布时间】:2015-05-12 07:57:17
【问题描述】:

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

感谢您的回答!

【问题讨论】:

  • 我不知道,但是......还要记住,寄存器有时使用不同的地址来读取和写入地址。 (例如,使用 WAGO 750 设备)
  • 嘿,我面对的设备有一些寄存器只保存为 r,一些寄存器保存为 r/w

标签: modbus scada


【解决方案1】:

在 Modbus 中定义“只读”模拟变量的正确方法是将其映射为输入寄存器。 Modbus 中没有定义写入输入寄存器的功能代码。

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

回到你的问题,如果你将你的变量映射为一个输入寄存器,你可以确定协议不会允许主机写入它。如果出于互操作性问题将其映射为保持寄存器,则协议将允许主设备使用写入函数来更改其值,并且由您来阻止设备实现。

【讨论】:

  • 感谢您的回答!
猜你喜欢
  • 1970-01-01
  • 2015-03-08
  • 1970-01-01
  • 2023-02-08
  • 2019-05-14
  • 2018-12-15
  • 1970-01-01
  • 1970-01-01
  • 2022-01-06
相关资源
最近更新 更多