从上位机下发指令,PLC通过TCP接收后用自由口通信去读取硬件设备,这是工作逻辑。但是我在测试的时候发现XMT发送完后有时候不会触发发送完成中断,有时候触发了RCV也收不到消息,求大佬解答。
问题补充:
我发现原因可能是XMT没有正确执行。但是我有一个疑问,比如我第一次将PLC断电重启,XMT不会正确执行;再断电重启一次XMT就可以正确执行,第三次断电重启XMT又不会正确执行。而且只有通过断电重启才能改变。这是为什么?
最佳答案
你是如何判断XMT指令完成后,没有触发发送完成中断?
有时候的说法,是该指令有怀疑没有被正确执行。
你可以这样验证,手动触发XMT指令,然后到指定的发送完成中断子程序中做次数累加程序,看是否会丢失触发次数。
自由口通讯在实际应用过程中,难免会出现通讯数据丢失或者发送、接收到受干扰了的错误数据,这就需要用户自己编辑校验程序来判断数据的正确性,同时对应于数据的丢失,用间隔定时器来判断数据是否发送完成,接收完成的时序。
提问者对于答案的评价:
说错了,断电重启也改变不了,只有重新下载程序才行
最佳答案作者回复:
重新下载对于plc只是数据块数据被重新初始化了的区别,你确认通讯数据的数据块有溢出什么的可能?
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc345908.html