一、流程
主体流程与普通的串口编程一样。
二、Modbus
Modbus普通串口不致的地方就是发送与返回的数据除遵循串口本身要求外,还有格式要求。
这里以读多位bit为例,其它的读者可查询Modbu功能码文档。
01功能码,读取多个线圈(位,bit),命令为16进制
发送命令:01 01 48 00 00 10 2A 66
动作 | 设备号 (1 Byte) | 功能码 (1 Byte) | 起始地址高位(1 Byte) | 起始地址低位(1 Byte) | 总位数高位(1 Byte) | 总位数 低位(1 Byte) | CRC (1 Byte) | (1 Byte) |
发送 | 01 | 01 | 48 | 00 | 00 | 10 | 2A | 66 |
返回命令: 01 01 02 FF 03 B8 0D
动作 | 设备号 (1 Byte) | 功能码 (1 Byte) | 字节数 (2 Byte) | 位状态 (On/Off) | 位状态 (On/Off |