技成培训网 技成学习APP 技成工具箱 技成企业服务

欢迎回到技成培训网

技成培训网

电工题库宝典

技成电工课堂

PLC练习题

技成PLC课堂

变频器故障查询

技成PLC学吧

伺服驱动故障查询

技成PLC网校

当前位置:技成首页 > 文章中心 > 技成百科 > 图形循环往复移动的问题

图形循环往复移动的问题

刘玉蓉 发布于2014-10-17 16:52 93 0 标签:

想做一个皮带机运行时的动态效果,在一个矩形里面等距离放了一些小矩形,把这些小矩形合成一个组,让这个组往右移动5次后返回原地,这样循环形成一个动态的效果。我在全局脚本里面编了一下,可是发现激活项目的时候,动态效果什么的都正常,如果在图形编辑器界面再次点激活按钮,运行画面中的小矩形组就错位了。譬如小矩形组静态X坐标是100,我让他每250ms,X轴的坐标加5,移动5次后回到坐标100,可是在图形编辑器界面再次点激活按钮,运行画面中的小矩形组的X轴坐标会错位到100以前,不知道为什么?我对C动作不熟悉,请指教,全局脚本如下(其中的一条皮带机):
long a;     //PL-1皮带X轴坐标
static int a1;
BOOL a2;
a2=GetTagBit("temp_1");  //temp_1皮带机运行反馈信号
if(a2==1)
{
a=GetLeft("主画面.pdl","组8");  //组8就是要循环移动的小矩形组
if(a1<5)
{a=a+5;a1=a1+1;}
else
{a=a-25;a1=0;}
SetLeft("主画面.pdl","组8",a);
}

问题补充:

在激活状态下点激活,怎样才能让我的计数器a1清零呢?
或者还有其他更好的办法实现这个动态吗?下面是我用另一种方法实现的,不会出现错位的情况,但是需要一个参照物。
long a;    //PL-1
long a1; 
a=GetLeft("主画面.pdl","组8"); //Return-Type: long int 
a1=GetLeft("环烧主画面20.pdl","矩形121");  //我把这个固定的矩形当参照物
if (a<a1-10+25)
a=a+5;
else
a=a1-10;  //小矩形组的起始位置在参照物矩形的左边10的位置
SetLeft("环烧主画面20.pdl","组8",a);

佳答案

因为每次激活的时候都是读a1和小矩形组静态X坐标值。问题出在从新激活时的小矩形组静态X坐标值是固定的(100),但是 a1值不一定是0,因此矩形不一定移动5次,所以在减去-25后矩形组的X轴坐标会错位到100以前。
  如果每次直接激活的话出现你说的问题,如果取消激活后再次激活的话不会出现上述问题。

若有收获,就点个赞吧!

文章来源于网络及文献如有侵权请联系站长
分享到:

微信扫一扫分享

阅读与本文标签相同的文章

相关推荐

最新文章 热门文章
最新课程 免费课程
PLC资料下载 电工电气资料下载
应用新秀
变频器故障代码查询APP
伺服故障代码查询APP
技成
手机APP
热门标签