【进阶】摩尔信使MThings协议配置字段关联规则
摩尔信使 MThings 新版本重构配置字段校验规则,以更友好的交互逻辑实现多字段协同管理,大幅提升配置拓展能力。
在配置设备字段时,会根据“数据区块、原始类型、数量/字节、位偏移/位数、呈现类型、字节序/字序、地址、系数、小数位数”等参数之间的依赖关系,
自动进行合法性校验和修正,避免字段配置与协议规则不匹配。
📌总体规则
字段校验首先以数据区块为基础判断字段的原始类型。
例如在 MODBUS中,线圈和离散输入属于位数据区,字段类型会自动限定为BIT;
保持寄存器和输入寄存器则按寄存器数据处理,可配置 UINT、INT、FLOAT、BCD、BYTES 等类型。
不同协议也会应用各自规则,例如 S7 的计数器、定时器区域固定按 UINT 类型和 2 字节处理。
📌原始类型与数据长度
当原始类型确定后,系统会继续校验数量/字节数和位范围。
BIT类型固定为 1 位;
INT/UINT可按配置的位偏移和位数从数据中截取有效位,最大支持 64 位;
FLOAT仅支持 32 位或 64 位;BCD 和 BYTES 类型必须按整字节截取。
若位偏移超出字段总长度,或位数超过剩余范围,软件会自动调整为有效范围,保证读取和写入时不会越界。
|
原始类型 |
位偏移规则 |
位数规则 |
|
🔘位数据 |
固定为0 |
固定为1 |
|
🔢有符号整数 🔢无符号整数 |
可配置;若超出字段总位数,自动恢复为0 |
可配置;最大64,且不能超过从位偏移开始的剩余位数 |
|
🔣浮点数 |
可配置;若位偏移+位数超出字段总位数,自动恢复为 0 |
仅支持32或64;不合法时自动恢复为32 |
|
🧮 BCD码 |
可配置;但偏移后剩余空间不足1字节时,自动恢复为0 |
必须为8的倍数,最小8;不能超过从位偏移开始的剩余整字节位数 |
|
🧱字节流 |
可配置;但偏移后剩余空间不足1字节时,自动恢复为0 |
必须为8的倍数,最小8;不能超过从位偏移开始的剩余整字节位数 |
|
原始类型 |
寄存器数规则 |
|
🔘位数据 |
固定为 1;用于线圈、离散输入等位区 |
|
🔣浮点数 |
寄存器个数至少2个 |
|
🧮 BCD码 |
寄存器个数:1~4 |
|
🔢有符号整数 🔢无符号整数 🧱字节流 |
按用户配置的寄存器数处理 保持寄存器:1~123 输入寄存器:1~125 |
|
原始类型 |
字节数规则 |
|
🔘位数据 |
通信时按 1 字节承载,实际有效位为 1 位 |
|
🔣浮点数 |
大于等于4 |
|
🧮 BCD码 |
1~9字节 |
|
🧱字节流 🔢有符号整数 🔢无符号整数 |
无限制 |
📌原始类型与呈现类型
呈现类型也会随原始类型自动匹配。
UINT/INT可显示为浮点数、十进制、十六进制、枚举或二进制位串;
FLOAT 仅按浮点数显示;BYTES 可显示为字节串或字符串;
BIT 可显示为 0/1 或枚举;BCD/有符号 BCD可显示为浮点数、十进制或枚举。
如果用户选择了不匹配的呈现类型,系统会自动切换到该原始类型支持的默认呈现方式。
|
原始类型 |
可关联的呈现类型 |
|
🔢有符号整数 |
🔣浮点数 🔢十进制数 🔡十六进制数 🏷️枚举 🔘二进制数 |
|
🔢无符号整数 |
🔣浮点数 🔢十进制数 🔡十六进制数 🏷️枚举 🔘二进制数 🔤字符串 ⏱️纪元秒 |
|
🔣浮点数 |
🔣浮点数 |
|
🧱字节流 |
🧱字节流 🔤字符串 |
|
🔘位数据 |
🔘二进制数 🏷️枚举 |
|
🧮 BCD码 |
🔣浮点数 🔢十进制数 🏷️枚举 |
📌呈现类型后置处理
对于数值类字段,软件支持通过系数和偏移量进行工程值换算,
显示值按“原始值 × 系数 + 偏移量”计算;写入时则反向换算为协议原始值。
当字段不是浮点或十进制显示时,系数会自动恢复为 1,偏移量恢复为 0。
小数位数仅对浮点显示有效,非浮点显示会自动置为 0,最大支持 17 位小数。
📌字节序/字序
在数据转换过程中,软件会先根据字节序和字序将通信报文统一转换为标准顺序,
再按位偏移和位数提取有效字段,最后根据呈现类型转换为界面显示值。
写入字段时,系统会先校验用户输入格式,
例如十进制、十六进制、时间、枚举、BCD、字节串或字符串是否符合当前字段类型,
再转换为协议字节并按配置的字节序/字序下发。

浙公网安备 33010602011771号