编了个WINCC 脚本,各位帮忙看下哪错了,编译时显示无错误,但是运行不行,b的数据在变化,但是s得值没任何变化:
#include "apdefap.h"
int gscAction( void )
{
#pragma option(mbcs)
double s;
double b;
s=GetTagDouble("aaa");
b=GetTagDouble("zhuan");
if( GetTagBit("qq") )
{
b=b+1;
s=s+10;
if (b>2)(b=1);
if(s>800)(s=344);
}
else
b=0;
s=344;
SetTagDouble("zhuan",b);
SetTagDouble("aaa",s);
return 0;
}
最佳答案
一楼答案正确,应该改为:
else
{
b=0;
s=344;
}
不加括弧时,在else条件满足时只执行b=0操作,而且s=344一直执行,这样导致s在任何条件下都为344。因此,后边再执行SetTagDouble("aaa",s);语句时,sss一直为344。
提问者对于答案的评价:
谢谢,对于其它大侠一样表示感谢,不过关于编译,当时编译完了确实是没有任何报警,显示0错误,0警告。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc263602.html