quote:以下是引用liwenqun在2009-04-11 21:55:27的发言:
上次某客户实际应用如下:
2S一个循环,读取20个数,计算后写回10个数
使用 GetTag、SetTag 系统经常性的假死(无任何反应)
后来给他修改为 GetTagWait、SetTagWait 此现象消失
那么我认为 对于系统中必须循环用到 GetTag、SetTag 函数的时候 建议还是采用 GetTagWait、SetTagWait ,因为在Wait函数是在写入或读取完成后返回,而不使用Wait那么函数直接返回执行,这也是这两个脚本的本质区别
另外 说一下 eaglesky的问题
“1.尽量减少脚本语言的使用。wincc的脚本功能很强,确实能实现一些明显的效果,但是从全局考虑的话,其执行效率就要降低了。比较简单的例子:切换画面,用WINCC自带的直接连接的切换效率明显是高于脚本的;并且曾经因为动作需要做了一个延时脚本,结果调试中就明显发现,延时过程中整个程序都被冻结了。所以我认为脚本的执行是纯粹的单线程运行,这样,众多脚本就必然因为先后的问题而相互影响。”
对于调用Sleep延时函数,必然造成系统的冻结,这个看看说明就知道了。