我正在使用 freemodbus 库作为 stm32 modbus TCP 客户端示例。但我想学习如何在线上保护 modbus tcp 消息。
例如,主站想从从站读取第 5 个保持寄存器,其值为 100,但物理线路上发生了一些事情,从站向主站发送了 105 值。此数据发送错误。
如何判断此消息是否已正确发送和接收。我知道 Modbus 帧中没有 CRC 校验和字段,但有没有办法添加它来验证?
答案1
我知道 Modbus 帧中没有 CRC 校验和字段,但是有没有办法添加它来验证?
不,没有办法添加这样的字段。但是 Modbus TCP 已经有一个 16 位 CRC,并且由于 Modbus TCP 位于 TCP 之上,因此它也隐式地使用此校验和。