RHILEX 集成 Modbus 协议
Modbus 点位表是 Modbus 协议中的一个重要概念,主要用于描述设备状态和配置信息。它是一个包含所有 Modbus 设备及其相关数据的列表,通常用于监控和控制工厂中的各种设备,如泵、风机、传感器等。每个设备在点表中都有一个唯一的 ID,用于读取和写入其数据。
规范
RHILEX 点位表使用 Excel 来规范,样表如下:
导入 RHILEX:
字段说明
字段名 | 说明 |
---|---|
alias | 传感器别名,用于标识不同传感器,如“传感器1-湿度”、“传感器2-温度”等。 |
function | 功能码,表示 Modbus 协议中用于读取或写入数据的功能代码。 |
frequency | 采样频率,表示传感器数据采集的频率,单位为毫秒。 |
slaverId | 从设备 ID,用于标识 Modbus 网络中的从设备。 |
address | 寄存器地址,表示传感器数据在 Modbus 寄存器中的地址。 |
quality | 寄存器个数(一个寄存器 2 字节) |
type | 数据类型,表示传感器数据在寄存器中的数据类型。 |
order | 字节顺序,表示数据在寄存器中的存储顺序,如 AB 表示先存储高位字节,再存储低位字节。 |
weight | 权重系数,输出值 = 采集值 * 系数。 |
type
字段数据类型列表:
- BYTE:单字节
- INT16:双字节整数
- UINT16:无符号双字节整数
- INT32:4 字节整数
- UINT32:无符号 4 字节整数
- FLOAT32:32 位浮点数
- UTF8:字符串
💡
点位表的字段错误是无法导入导出的
案例
下面的案例展示如何将点位表采集到的数据提交到 TCP Server。
新建 Modbus 设备
导入点位表
新建北向到 TCP
编写脚本
Ruby
Actions = {
function(args)
Debug(args);
local err = data:ToTcp("OUTJ3WDZPFT", args);
if err ~= nil then
Throw(err);
return true, args;
end;
return true, args;
end
};
数据验证
实验用 SSCOM5.13.1 模拟 TCP Server:
点位表采集到的数据被发到了 TCP Server。