发表于:2006-12-14 13:14:00
51楼
我和lesing.du分析了一下.你的程序存在隐患:
1.P9中,M1123前面就算加上了M200(或M201).也可能出现情况:M200 ON(发出MODBUS写命令)的时间到达了200ms,但却没有收到回传的数据(M1123一直为OFF),这样该笔数据交换就没有完成.这时,M200由ON变OFF,M201由OFF变ON(开始发送第二个MODBUS命令),在第一笔数据交换未完成的情况下又发送第二比数据命令,可能会发生冲突.
解决方法:对M1123=ON的次数计数(比如为C0),C0=0时,执行M200;C0=1时,执行M201;C0=2时,清零即C0=0,又开始执行M200,如此循环.P8的情况也一样.
2. P8和P9中的MODBUS指令有可能发生冲突,因为你程序中有可能发生情况:P8中的通讯指令还没有执行完成.CALL P9就开始执行了.
解决方法:在CALL P9前面加上常开接点M50.
3. 你的D1129中写入了逾时时间,但你没有规划逾时后如何动作,建议用M1129写一段程序(逾时后程序该如何动作)
以上是一些建议,不一定是问题的症结.但可以参考一下.