全局脚本中 if 条件为什么不起限制作用了

全局动作脚本如下,用 
 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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日
下一篇 2019年6月11日

相关推荐