【进阶】摩尔信使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、字节串或字符串是否符合当前字段类型,

再转换为协议字节并按配置的字节序/字序下发。

posted @ 2026-07-15 15:40  摩尔信使MThings  阅读(6)  评论(0)    收藏  举报