ModBus:数据类型
数据类型 | 说明 |
---|---|
INT16 | -32768 至 32767 范围内的整数。 |
UINT16 | 0 至 65535 范围内的无符号整数。 |
ENUM | 是一种列举方式。只能设为参数下列举的数值之一。 |
BOOL | 一个布尔值是一个包含两种状态(0 - 假/false,1 - 真/true)的参数。一般所有数值都大于零且为 true。 |
BITMAP* | 一种 16 个布尔值 (Bit) 的汇总方式。数值表示为 0 到 15。寄存器中要读取或写入的数字,由所有比特值合计得出:数值 1 乘以以 2 为底数,以比特位为指数的幂。
|
BITMAP32 | 一种包含 32 个布尔值 (Bit) 的汇总方式。计算详情请参考 Bitmap。 |
* 举例解释:
Bit 3、6、8、15 是 1,所有其他都是 0。则总和为 23+26+28+215 = 8+64+256+32768 = 33096。反之亦然。这时会从指数最大的比特开始,检查读入的数字是否大于或等于 2 的幂。如果是这种情况,则将比特设为 1,从数字中减去 2 的幂。之后使用之前计算得到的剩余数,检查指数次大的比特,如此重复,直至到达 Bit 0 或者剩余数为零为止。举例讲解:读取的数字是 1416。Bit 15 是 0,因为 1416<32768。Bits 14 至 11 也是 0。Bit 10 是 1,因为 1416>1024。剩余数是 1416-1024=392。Bit 9 是 0,因为 392<512。Bit 8 是 1,因为 392>256。剩余数是 392-256=136。Bit 7 是 1,因为 136>128。剩余数是 136-128=8。Bit 6 至 4 是 0。Bit 3 是 1,因为 8=8。剩余数是 0。因此,剩余的 Bit 2 至 0 就全部是 0。