我正在通过TCP / IP连接从站,通过使用Wireshark软件,一切看起来都很好,我可以验证CRC校验和始终有效为“良好”,但是我想知道如何破坏CRC校验和,因此可以看到校验和“无效”。关于如何完成此操作的任何建议,可能是python代码,或者可能的话,采用其他任何方式。
谢谢大家 塔里克
答案 0 :(得分:1)
我认为您使用的是计算CRC的库。如果要模拟错误的CRC条件,可以不使用它就形成Modbus数据包
答案 1 :(得分:0)
首先,请注意Modbus TCP不包含任何CRC,错误控制是通过TCP协议本身的适当层进行处理的。例如,查看此帖子:Can you keep a CRC in a Modbus TCP message?
如果您想处理Modbus RTU CRC错误,可以看看MinimalModbus(Python)及其单元测试MiniMalModbus Unit Tests
如果您更喜欢简单的东西,则可能需要看一下ModbusPoll,您可以在其中定义一个从站并模拟CRC错误(我认为仅适用于Modbus RTU)。有30天的试用版。
据我所知,我要使用的其他库pymodbus和libmodbus不可能开箱即用,但是编写类似于MinimalModbus单元测试的东西应该并不难。