DrMai
如题,各位大佬有没有遇到这样的问题,在使用Modbus通讯时,通过监控数据缓存VB的值计算出来的CRC校验时没问题的,但是通过串口发送之后校验码的值就变了,起初想着难道有寄存器被占用了,改了库存储器的分配地址,但是问题依然存在,然后我新建了一个空工程,如图,只写了主站的程序,但是CRC校验缓存值仍然是正确的,但发送出去的就是错误的;创建从站程序后,调试软件发出的数据在PLC缓存区没有,PLC功能块也没转到通讯中的状态。请各位大佬指导一下,谢谢
请叫我王老湿
计算正确的,那就看看发送出去格式,看看是不是高地址低字节方式发送出去了,导致检验码不对
回复本条
发表回复
DrMai楼主
这个是能设置的吗?好像没找到这个的设置呢,还有就是每次都是校验码高位的最高位丢失的,如图上的C4 0B,实际发出的44 0B,二进制是1100 0100 0000 1011 =》 0100 0100 0000 1011,之前测试读其他地址数据时的校验码,是高位的最高位和低位的最高位都变0的
2024-11-29 09:09:06回复
如果是高低字节对调的话,那发出去的数据也应该是0B C4啊,现在发出的是44 0B,而且这个高低字节对调可以选择的吗?我没看到有这个设置或者引脚啊
2024-12-13 16:45:29回复
leichangchun
高低字节或格式是否有问题