说一个之前调试中遇到的问题(大概三个月前)
那天遇到一个让我不可思议的事,程序运行过程中,通信不知道什么时候断开了(第三方设备有通信指示灯)!
我确认我程序中同一时间仅执行一个MSG,监控却一直报警代码6!
监控把所有En和first都复位然后只去调用一个还是会报警6 ,在我试了很久将要放弃的时候把设备断一次电,竟然就通信正常了!想不明白,这个报警代码6还会在别的情况下产生吗?(真的只调用一次MSG)
后来请教西电工程师徐工说:是因为FIRST位丢失,必须重启才会执行,所以我在程序中强制也无效!
想请教下大神什么情况出现这种情况?(这套程序也用了两三年了一直没问题,后来其他的设备(同样程序)也没有再出现这个问题!)
问题补充:
WWCWWC大神之前的三个帖子上次遇到问题的时候刚好看到,是用的上升沿,我当时是把其他大MSG全删掉只留一个,且导通条件是在done置1后延时10S在接通一次还是不行(因为测试时间隔得比较长),直到PLC断一次电之后才不报警6
PS:对于回答者表示感谢,弱弱的问一下,我好像不能回复,是权限的问题还是规则就是这样?
最佳答案
如果在程序中仅仅只是调用一个MSG指令,你以为不可能再次出现通讯报警6?
回答是否定的。
首先从MSG的故障报警6的成因说是在一个时间段不能够多次调用多个MSG的使能,那么,如果仅仅只是一个MSG且在MSG指令没有完成时,连续多次触发这个MSG,报警6也是会出现的,这个我测试确认过这个情况。
First这个MSG指令管脚触发位建议用沿触发!尤其是调用一个MSG指令的应用时,调用MSG指令前必须处理好数据接收或者发送、数据数量等的逻辑关系。
补充问题回复:
你MSG的EN管脚是调用什么控制位?建议与First管脚控制位一致,First用沿触发,目的是规避一些低级错误。
另外,由于程序在调试时,对一些中间变量的调用及删除过程,难免会造成不可理解的程序段,重新给plc断电再上电是一个办法,或者重新完整下载一次用户程序。
提问者对于答案的评价:
对于重新下载程序起不到作用,而断电重启后正常,这种情况不太理解大师能给研究下不?
最佳答案作者回复:
断电重启正常,这个问题可能的原因是控制标志位的使用,断电重启正常主要的作用是一些初始化作用。你看看当指令报错误时的那些控制位如何复位、刷新。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc281087.html