1

我已经在一个MODBUS项目中工作了 2 个月,现在我发现了一个问题。

我的客户要求我写一个输入寄存器(地址 30001 到 40000)。

我认为这对我来说不是一件事情,因为每个modbus文档都说 30001 到 40000 个寄存器是只读的。

在此处输入图像描述

甚至可以写入这些寄存器吗?提前致谢

4

2 回答 2

3

保持和输入寄存器相关函数都包含一个 2 字节的地址值。这意味着您可以在一个设备中同时拥有 65536 个输入寄存器和 65536 个保持寄存器。

如果您的客户正在开发从机的固件,他们可以将保持寄存器放入 3xxxx - 4xxxx 区域。他们不需要遵循原始 Modicon 设备的内存布局。

如果可以负担得起与 Modbus 标准不同的费用,甚至可以增加寄存器的数量。在我的一个项目中,我正在考虑将Preset Single Register (06)函数用作银行选择命令。当然,你不能再称它为 Modbus。但是,主机仍然可以使用标准库或诊断工具访问从机。

于 2020-05-19T17:05:34.957 回答
2
  • 您不能写入输入触点或输入寄存器,没有 Modbus 功能可以写入它们,它们根据定义是只读的

  • Modbus 是一种协议,在任何情况下都不会指定值的存储位置,只指定它们的传输方式

  • 目前有些设备支持 6 位地址,因此每组最多可寻址 65536 个寄存器

于 2020-05-19T13:10:15.937 回答