报文格式
主站发送报文: 从站地址(1字节), 功能码05(1字节), 写线圈地址(2字节), 写入值(2字节), CRC校验(2字节)
从站响应报文: 从站地址(1字节), 功能码05(1字节), 写线圈地址(2字节), 写入值(2字节), CRC校验(2字节)
这里的写入值, 如果是置位则写入FF 00, 如果是复位则写入00 00
按照这个报文格式, 可以把写单个线圈功能方法设计成这样
发送接收报文处理步骤
第一步需要拼接发送报文
CRC校验码有现成的方法可以直接算出校验码
第二步是发送报文, 因为发送接收报文是一个方法, 所以第二步和第三步合并到一起
第四步是验证返回报文, 可以验证返回报文长度是否正确, 从从站的响应报文可以发现, 返回报文与发送报文完全一致, 所以
还可以验证返回报文的CRC校验码是否正确, 结合上述两个验证条件都成立, 就可以进行下一步, 因为是写入, 不涉及对报文的解析, 所以只需要判断是否写入成功
推荐一个AI工具
https://manus.im/invitation/VUJOAQI5TNGR
下一节内容: Modbus写单个寄存器开发