事情整体是这样的,由于开放式用户通信存在一些问题,我就在MAIN块上只修改了调用的TSEND_C块的结构参数,然后将修改后的程序下载进去,当时一切正常,但是过了一天后,继电器就没有了输出,控制的设备也没有了输出,检查程序,检查PLC以及继电器都没有发现问题,在线诊断也没有问题,但是继电器就是没有输出,试过重启,试过强制某个输出点,继电器都没有任何的输出,最后解决方法是将修改前的程序下载进去后,再将修改后的程序下载进去,一切恢复正常,我对于这个现象无法理解,各位是否遇到过这样的情况?
这个解决方式都是因为开始觉得程序有问题,于是下载了修改前的程序,发现没有作用,然后后来想着不是程序问题,又把修改后的程序下载进去,结果一切正常了,其中原理让我不能理解。
另外,在之前其实也出现过类似的情况,我只修改了MAIN块的开放式用户通信部分的程序,改为使用ISO-TCP通信方式,并没有修改其他的程序,也没有中断程序,下载进去后继电器就是没有输出,和上述情况一模一样,诊断没有问题,PLC与继电器没有问题,但是继电器无输出,无奈只好把原程序下载回去,然后继电器就有输出了,当时就觉得很奇怪,以为是程序有问题,但是现在只改了TSEND_C的结构参数(远程端口号),我觉得按理来说不应该导致继电器无输出。
具体原因希望各位帮我分析一下,一起探讨,拜谢