偶遇怪事,至今想不明白
S7-200与5块ADM模块485通过自由口通信,PLC需要发送/接收8条命令。
程序主要有2个中断程序组成,发送完成中断启动接收中断子程序,接收完成中断启动发送中断子程序并且计数值+1。
无法解释的问题来了:每次循环到第1条命令发送完成后,接收始终超时;但是软件监控时只要监控在发送该命令的网络时,通信突然又正常;监控别的网络时故障又恢复。
我都说不清楚了,一句话:这样的程序结构,监控出错的网络,它就正常。不监控它,它就不正常。
把原来的接收指令后计数值+1,改成发送命令前先把计数值+1后改问题就不出现了。