跳到主要内容

Modbus 主站

读取 Modbus TCP、RTU 或 ASCII 设备。先确认设备 IP 或串口参数、站号,以及一个已知的寄存器地址和类型。没有设备时先做采集第一个点

先读一个保持寄存器

下面用 TCP 设备举例;地址和站号必须换成设备实际配置。

  1. 打开“开发配置 → 采集配置”,新建通道,类型选择 TCP 客户端,远程地址填 设备IP:端口,例如 192.168.1.10:502,保存。
  2. 在这个通道下新增设备,采集插件选择“Modbus 主站”。
  3. 在插件属性中把“Modbus类型”设为 ModbusTcp,“默认站号”填写设备站号。示例使用 1,不是所有设备都用 1
  4. 设备执行间隔先用 1000 毫秒,其余超时、打包和并发参数保持默认,保存并启用。
  5. 选择设备,新增变量,名称填 TestValue,寄存器地址填 40001,类型选 Int16,保持启用并保存。本例要求从站的第一个保持寄存器是有符号 16 位整数。
  6. 回到变量列表,查看当前值、在线状态和采集时间。把当前值与设备显示或已知测试值对比。

读到正确值后,再添加其余点位。第一次读取不需要写入设备,也不用调整所有高级参数。

串口设备怎么改

通道类型选择串口,填写实际 COM 口及设备要求的波特率、数据位、停止位、校验位。设备的 Modbus 类型选择对应的 RTU 或 ASCII,站号仍按设备填写。不要把 Modbus TCP 与 RTU over TCP 当作同一种报文格式。

支持的通道和数据类型

通道类型配置前检查
TCP 客户端确认设备 IP、端口和网关到设备的网络可达性。
TCP 服务端确认本地监听地址和端口可用,并允许现场设备主动连接网关。
串口确认串口未被其它程序占用,并与设备保持一致的波特率、数据位、停止位和校验位。
UDP确认本地绑定地址、端口和防火墙规则,并核对报文来源。

可选数据类型: Boolean、Byte、Int16、UInt16、Int32、UInt32、Int64、UInt64、Float、Double、String、Decimal

插件参数

Modbus 主站继承采集公共属性。通道类型远程地址/本地绑定地址、串口参数、TLS、连接超时、失败重试、读写占空比、写优先、数据解析顺序、字符串反转和最大并发数仍在设备属性中显示,具体字段和通道联动见采集配置。本页只列出 Modbus 专用字段。

协议参数

参数说明
Modbus类型普通 Modbus TCP 选 ModbusTcp;RTU、ASCII 或透传连接按设备实际报文类型选择。
默认站号默认 1,按设备站号修改;地址中写了 S= 时,以该变量地址的站号为准。

打包规则

首次只读一个点时全部保持默认。批量读取失败、但单点读取成功时,再按设备说明书降低对应功能码的数量上限。

参数说明
FC1 最大读取线圈位数量默认 1600 位,可填 12000;限制一次读取的线圈位数。
FC2 最大读取离散输入位数量默认 1600 位,可填 12000;限制一次读取的离散输入位数。
FC3 最大读取保持寄存器数量默认 100 个,可填 1125;按寄存器数量计算,不是变量条数。
FC4 最大读取输入寄存器数量默认 100 个,可填 1125;按寄存器数量计算,不是变量条数。
FC15 最大批量写入线圈位数量默认 1968 位,可填 11968;只影响批量写线圈,不用于调整读取。
FC16 最大批量写入寄存器数量默认 123 个,可填 1123;只影响批量写寄存器,不用于调整读取。

连接配置

参数说明
DTU ID仅通过 DTU 服务连接时填写登记的设备标识;直连设备留空。

“通道类型”为 DTU 服务时,DTU ID 必须与DTU 服务中登记的设备标识完全一致;直连 TCP、串口和 UDP 不需要填写该值。

地址规则

  • 线圈使用从 00001 开始的地址编号。
  • 离散输入使用从 10001 开始的地址编号。
  • 输入寄存器使用从 30001 开始的地址编号。
  • 保持寄存器使用从 40001 开始的地址编号。
  • 40001 表示保持寄存器的第一个寄存器。
  • 40001;s=2; 表示使用站号 2 读取保持寄存器。
  • 40001;w=16; 表示写入时使用功能码 16
  • F=3;100 表示显式使用功能码 3 从协议偏移 100 读取保持寄存器;使用 F= 时地址是零基偏移,不再按 40001 这类区域前缀换算。
  • 多个选项用分号分隔,例如 S=2;F=3;100;站号、功能码和写功能码只作用于当前变量地址。

地址中的 W= 只接受大于 0 的功能码,批量写入通常使用 15(多线圈)或 16(多寄存器)。如果不填写 W=,写入功能码由变量数据类型和协议默认规则决定。

设备调试

进入“开发配置 → 采集配置”,选择当前设备后点击“更多功能”并打开“调试”。

功能作用
读写按站号、寄存器地址和数据类型读取或写入测试值。写入前确认功能码和现场安全。
消息查看 Modbus 请求、响应、功能码和异常码,用于定位地址或链路问题。

读写

Modbus 主站 读写

  1. 打开“读写”,输入同一个测试地址 40001,选择 Int16,读取数量填 1
  2. 点击“读取”,核对返回结果。需要临时使用另一个站号时,地址可写为 S=2;F=3;0
  3. 读取失败时查看错误消息,再打开“消息”查看请求和响应。

“写入”会修改从站数据,首次验证不用点击。只有已确认安全的测试寄存器才能写入。

消息

Modbus 主站 消息

查看设备收发消息和协议日志,定位报文格式、连接和解析问题。

没读到正确值时

现象先检查
连接超时IP、端口、TCP/RTU 类型,设备是否允许网关连接
有响应但地址错误站号、功能区及偏移;40001 对应 F=3;0,不是 F=3;1
数值明显不对有无符号、16/32 位类型、跨寄存器字节序是否与点表一致
串口无响应串口占用、接线、波特率、校验位和站号
单点成功、批量失败降低对应 FC 的打包数量,并检查点表是否跨越设备不允许的地址区间

相关操作

  • 采集配置:查看通道、设备和公共变量配置。
  • 插件索引:查找其它采集或数据转发插件。