【进阶】协议配置字段关联规则
📌总体规则

📌原始类型与数据长度
当原始类型确定后,系统会继续校验数量/字节数和位范围。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、字节串或字符串是否符合当前字段类型,再转换为协议字节并按配置的字节序/字序下发。