在项目运行后,最短1天,最长好几天,在wincc诊断文件夹内,报错:
错误1:1007000,4,,XXX,SCRIPT,ActionOverflow:more than 10000 Actions to work
错误2:1007008,4,,XXX,SCRIPT,EndAct Timeout(这个出现的更频繁,几分钟一次)
报了这两个错误后,HMI基本上处于瘫痪状态,只有重启计算机才管用(根据现场人员反映)。
查看了论坛帮助,http://support.automation.siemens.com/WW/llisapi.dll?func=cslib.csinfo&lang=en&objid=2357302&caller=view,说的主要是如下几点解决方法:
1. 使用变量触发器(我基本可以保证使用的全是变量触发器,除了全局脚本内有一个全局动作,2秒执行一次,大概读写20个变量左右)
2.给定的时间内不能完成动作(很难入手检查,在画面按钮内,我使用了一些sleep的函数来仿真脉冲发给PLC,但休眠时间很短,都是100MS左右,而且按钮动作只在操作时被执行一次,应该问题不大吧?)
3.脚本中的连续循环和死锁(这里是指全局脚本?脚本中没有使用循环,其他的地方应该没有使用循环)
4. 变量记录中周期性选择或非周期性归档大量数据(归档数据并不多,周期也都是2秒,经过检查,归档文件夹的尺寸也没问题)。
请教各位专家,这种情况应该如何处理呢?另外,错误1和错误2中的action 和 act 是特指全局脚本吗?还是指画面中所有的C动作和全局脚本呢?
另外,这种现象能判断出具体是哪个画面出的问题或哪个脚本,哪个动作出现的问题吗?尝试着用了一下utool 里的apdiag,但是这个诊断工具太耗内存,短时间也诊断不出什么东西,长时间在现场(已投产)运行也不现实。。。
希望大家不吝赐教,多谢!
图片说明:
最佳答案
1、你的问题就是使用sleep的问题,使用它会造成假死。即脚本暂停执行,直到sleep结束后才执行。
2、读写多个变量一个个读写浪费了大量的时间,应该是用组的概念来做。
http://www.52plc.net/read.php?tid=6397
http://www.52plc.net/read.php?tid=6494
提问者对于答案的评价:
回答虽然和我的问题联系不大,但是也谢谢您
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc217266.html