用snart200+宏电DTU+力控上位机做无线通信,通过端口映射,DTU可以找到上位机,可是上位机却与PLC通信不上,力控客服说上位机配置没问题,用USB转232 232转485用MODSCAN32工具可以读取到数据,问题如下:
1.程序是不是不完整,不能正确接收到上位机发出的命令?
2.通过做实验,发现调用smart200自带MBUS_INIT和MBUS_SLAVE从站指令下载到PLC后,在下载以前和别的上位机通信的程序,PLC需要断电重启才行,断电重启以后,通信正常。
3.断电重启以后,不下载smart200自带的MODBUS程序,下载以前做好的PLC通信程序,PLC不需要断电重启,通信正常。
4,2和3是分别下载从站指令和不下载从站指令,PLC不同的反应
问题补充:
我也怀疑初始化的问题,可是监控初始化所赋值的变量都正常,初始化的命令都执行了,还怀疑MODBUS库指令分配地址区的范围,我分配的VB0-vb780,是不是下载别的程序,这些数据块的值,被上一个程序暂用呢?数据块和系统块都下载进去了,按说应该复位清零了呀,回去再做做实验,继续查。
图片说明:
最佳答案
PLC是否存在报警,通讯模块MBUS_SLAVE的错误位error值是什么?通讯数据参数是否与上位机一致?如果你调用库的modbus通讯只能是支持modbus rtu的,如果不支持只能自行编写通讯程序。关于重新启动正常可能的原因出在初始化部分。
补充问题回复:
重新清空plc程序,再下载。
初始化是否完成看done位值,是否存在故障看reeor值。modbus rtu库指令均有这2个返回消息,你主要检查这些。
提问者对于答案的评价:
没有任何的错误信息,完成位为1,error为0,问题应该出在宏电模块身上了,一直出差,有空和宏电技术在咨询一下。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc136848.html