关于举行移动的脚本

我做了一个矩形向上移动的脚本,要移动3次,每次移动10,三次后回到初始位置,但是运行后矩形一直想上移动不回初始位置,监控发现  i 的值始终为1,请问哪儿哟差错了。C脚本如下
long top;
int i;
top=GetTop(lpszPictureName,lpszObjectName);
if(i<3)
{
top=top-10;
i=i+1;
}
else
{
top=top+30;
i=0;
}
return top;

最佳答案

因为你的i是脚本里面定义的变量就相当于step7中的临时变量一样,下一个扫描周期它又从初始值0开始使用,所以你应该是在脚本的最后把当前i的值保存到wincc的变量中,然后脚本执行时先读取保存的变量值然后在执行你后面的程序。
long top;
int i;
i=GetTagByte("I_save");//i的保存值
top=GetTop(lpszPictureName,lpszObjectName);
if(i<3)
{
top=top-10;
i=i+1;
}
else
{
top=top+30;
i=0;
}
SetTagByte("I_save",i);//保存i值到wincc的变量I_save(无符号8位整数)。
return top;

提问者对于答案的评价:
我试了,还是不行 ,可以的话请把方法发我邮箱675882412@qq.com

最佳答案作者回复:
我源代码都给你还不行!你要看你的数据是整数还是浮点数,定义的i要根据你的实际数据类型来确定。你说不行目前什么状况?

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc223533.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年3月6日 下午12:35
下一篇 2018年3月6日 下午12:36

相关推荐