表达式

使用raw表示原值
支持 + - * / % 运算和()等常规运算
支持比较运算符(>= <= > < == !=)和逻辑运算符(&& ||)
支持条件运算符(?:)
Modbus 报文格式

Modbus TCP 示例:主站请求读取从站 (ID=1) 的保持寄存器 (功能码 03),起始地址为 0,读取 10 个寄存器。
请求报文 (Request):
00 01 00 00 00 06 01 03 00 00 00 0A
-
00 01: 事务元标识 -
00 00: 协议标识 -
00 06: 长度 (后面的 PDU01 03 00 00 00 0A共 6 个字节) -
01: 单元标识符 (从站地址) -
03: 功能码 (Read Holding Registers) -
00 00: 起始地址 (0) -
00 0A: 寄存器数量 (10)
响应报文 (Response):
假设所有寄存器的值都是 0,响应应为:
00 01 00 00 00 07 01 03 14 00 00 ... (20个字节的0)
-
00 07: 长度 (后面的 PDU01 03 14 ...共 7 个字节) -
03: 功能码 (与请求一致) -
14: 字节数 (10个寄存器 * 2字节/寄存器 = 20字节,即 0x14) -
00 00 ...: 寄存器的数据 (每个寄存器2字节)

Modbus RTU 示例:主站请求读取从站 (ID=1) 的保持寄存器 (功能码 03),起始地址为 0,读取 10 个寄存器。
请求报文 (Request):
01 03 00 00 00 0A C5 CD
-
01: 从站地址 -
03: 功能码 (Read Holding Registers) -
00 00: 起始地址 (0) -
00 0A: 寄存器数量 (10) -
C5 CD: CRC16 校验码 (由01 03 00 00 00 0A计算得出)
响应报文 (Response):
假设所有寄存器的值都是 0,响应应为:
01 03 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 XX XX(最后的 XX XX是 CRC)
-
01: 从站地址 -
03: 功能码 -
14: 字节数 (20字节) -
00 00 ...: 20个字节的0 (10个寄存器的数据) -
XX XX: CRC16 校验码


