最近在做西门子1200CPU之间ModbusTCP通信的实验,出现这样的问题:
报错背景及代码
当两个1200CPU断电后再上电(同时上电,REQ自动置位),隔几秒报错16#8383
16#8383代码内容
读/写数据错误或访问了 MB_DATA_PTR 地址外的区域。读/写数据错误或访问服务器地址区域以外的位置
测试有效的处理方法
方法一:客户端CPU断电再上电,服务器CPU保持上电;
方法二:客户端MB_CLIENT:REQ复位为0,再断开连接,再连接
这两种方法都能解决,通过方法二可以编程自动处理。解决后通信都很正常。
我的问题:请问此情况下的报错的根本原因是啥?如何从根儿上解决?多谢!