跳到主要内容

ModbusSlave

概述

ModbusSlave 作为从站,响应主站的采集报文。该插件支持 Modbus TCP 和 Modbus RTU 格式报文,适用于各种工业自动化场景。

主要特性

  • 协议支持:支持 Modbus TCP 和 Modbus RTU 格式报文
  • 通信方式:支持 TCP 客户端、TCP 服务(DTU)、串口、UDP 通信
  • 功能码:支持 01、02、03、04、05、06、15、16 功能码
  • 数据类型:支持所有 Modbus 标准数据类型
  • 高性能:基于异步架构,提供高性能的数据访问
  • 易用性:提供简洁的配置界面,易于集成和使用

适用场景

  • 工业自动化设备数据采集
  • PLC 设备通信
  • 传感器数据采集
  • 智能仪表数据读取

插件属性配置项

基本配置

属性说明备注
Modbus 协议类型Modbus TCP/Modbus RTU 格式报文选择协议类型
默认站号默认的 Modbus 站号 ID变量可单独配置站号
解析顺序4 个字节以上的数据解析,可设置为 ABCD/BADC/CDBA/DCBA,默认 ABCD,变量可单独配置ABCD:Big-Endian
BADC:Big-Endian Byte Swap
CDAB:Little-Endian Byte Swap
DCBA:Little-Endian
字符串反转字符串变量按字为单位调换false
最大连接数最大客户端数量限制-
多站点是否区分不同的站号的数据true
允许写入写入权限使能False
立即写入内存外部写入时,是否立即写入内存池False

协议类型说明

Modbus TCP

Modbus TCP 使用 MBAP 报文头:

+--------+--------+--------+--------+--------+--------+--------+--------+
| 事务标识符 | 协议标识符 | 长度 | 单元标识符 | 功能码 | 数据域 |
+--------+--------+--------+--------+--------+--------+--------+--------+
| 2字节 | 2字节 | 2字节 | 1字节 | 1字节 | N字节
+--------+--------+--------+--------+--------+--------+--------+--------+

Modbus RTU

Modbus RTU 使用CRC 校验:

+--------+--------+--------+--------+--------+--------+--------+--------+
| 从站地址 | 功能码 | 数据域 | CRC 校验 |
+--------+--------+--------+--------+--------+--------+--------+--------+
| 1字节 | 1字节 | N字节 | 2字节 |
+--------+--------+--------+--------+--------+--------+--------+--------+

变量业务属性

基本配置

属性说明备注
寄存器地址请查看 Modbus 寄存器格式-
数据类型Modbus 寄存器数据类型-
允许写入单独设置变量在该 Modbus 服务器中是否允许被写入-
Enable是否启用true

寄存器地址格式

Modbus PLC 寄存器地址格式:

地址功能码说明
4xxxxx03读取保持寄存器
3xxxxx04读取输入寄存器
1xxxxx02读取输入线圈
0xxxxx01读取输出线圈

站号配置(可选)

当需要指定站号地址时,可使用以下格式:

地址说明
s=2;10001读取 02 功能码,设备地址为 2
s=11;40001读取 03 功能码,设备地址为 11

解析顺序配置(可选)

当需要指定解析顺序时,可使用以下格式:

地址说明
o=ABCD;40001使用 ABCD 解析顺序
o=BADC;40001使用 BADC 解析顺序
o=CDAB;40001使用 CDAB 解析顺序
o=DCBA;40001使用 DCBA 解析顺序

功能码说明

读取功能码

功能码名称说明地址格式
01读取线圈读取输出线圈状态0xxxxx
02读取离散输入读取输入线圈状态1xxxxx
03读取保持寄存器读取保持寄存器值4xxxxx
04读取输入寄存器读取输入寄存器值3xxxxx

写入功能码

功能码名称说明地址格式
05写入单个线圈写入单个输出线圈0xxxxx
06写入单个寄存器写入单个保持寄存器4xxxxx
15写入多个线圈写入多个输出线圈0xxxxx
16写入多个寄存器写入多个保持寄存器4xxxxx

数据类型说明

基本数据类型

数据类型说明长度范围
Bool布尔型1 bitTrue/False
Byte字节1 byte0 ~ 255
Short短整数2 bytes-32768 ~ 32767
UShort无符号短整数2 bytes0 ~ 65535
Int整数4 bytes-2147483648 ~ 2147483647
UInt无符号整数4 bytes0 ~ 4294967295
Float单精度浮点数4 bytes±3.4E38
Double双精度浮点数8 bytes±1.7E308
String字符串可变字符串

解析顺序说明

ABCD(Big-Endian)

地址 40001-40002: 0x1234 0x5678
解析结果: 0x12345678

BADC(Big-Endian Byte Swap)

地址 40001-40002: 0x1234 0x5678
解析结果: 0x34127856

CDAB(Little-Endian Byte Swap)

地址 40001-40002: 0x1234 0x5678
解析结果: 0x56781234

DCBA(Little-Endian)

地址 40001-40002: 0x1234 0x5678
解析结果: 0x78563412