全局动作脚本如下,用
if (GetTagWord("t02"));作条件来决定是否执行下面的脚本,为什么起步了作用?"t02"是WINCC二进制变量,置1的话就执行下面的脚本,置0就不执行.但是现在起不了作用,只要WINCC一激活,脚本就全部执行了。是不是和静态变量有关?请高手指教,如何才能把 if 限制条件加进去?谢谢。。
#include "apdefap.h"
int gscAction( void )
{
static DWORD i=0 ,j=45;
if (GetTagWord("t02"));
{
i=i+10;
SetTagWord("xxzxz",122);
if(i==360)(i=0);
SetTagDWord("t03",i);
j=j+10;
if(j==405)(j=45);
SetTagDWord("t04",j);
}
return (0x0);
}
问题补充:
谢谢,2楼是正确的,为什么一定要用static呢?如果不用static,动画就实现不了啊,这是为什么?一般什么时候用static定义变量?
最佳答案
如果在 i=i+10;
SetTagWord("xxzxz",122);
前加上i=GetTagDWord("to3");
就不需要static定义了,但是这样做当 i的值消失或者溢出时,wincc中的变量to3的值就不会更新了。所以用static.
提问者对于答案的评价:
xiexie
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc273390.html