「WinCC」C脚本应用实例,“循线”运动的圆
在WinCC画面中,如何让"对象"动起来是一门学问,有许多方法可供选择,比如:变量连接、动态对话框及脚本。一般而言,要实现更为复杂的动态,就需要通过脚本动作来实现了。WinCC中可选的脚本有C脚本和VBS脚本。
上一篇文章《如何让"画面对象"在水平方向上动起来》演示一下"如何让一个【圆】在水平方向上动起来",效果如图1所示。
本文,推进一步,让【圆】沿着直线,"循线"动起来,效果如图2所示。
一、准备工作
如图3所示,为画面的总体布局,本文的"目标"是让蓝色的【圆】沿着直线"动起来"。
1、"轨迹线"方程
"轨迹线"是一条斜率为1的直线,其经过(0,600)和(600,0)两点,因此,其直线的方程为:
2、【圆】的尺寸和坐标
【圆】的直径定义为40个像素,我们知道,【WinCC中,一个对象的坐标是包含它的矩形的左上角所对应的坐标】。因此,要让【圆】的"圆心"沿着"轨迹线"运动",【圆】的坐标应该满足以下条件:
因此,只要知道"轨迹线"上任意点的坐标,分别减去【圆】的半径,就能知道其对应的【圆】的坐标了。
二、设计思路
让【蓝色圆】"循线"运动的总体思路是:
- 先让x坐标动起来;
- 为运动着的x坐标,在"轨迹线"上找到对应的y坐标;
- 通过"轨迹线"上的坐标(x,y)找到对应的【圆】的坐标。
1、让"x坐标"动起来
"x坐标"的运动,还是采用上一篇文章的方法(在"水平运动的【圆】中写C脚本"),如图4所示。每执行一次"脚本","x坐标"自增20。"脚本"的触发器选择用变量"positionX"进行触发,且设定为"每1s"触发一次,如图5所示。
2、【圆】的"循线"运动
"x坐标"动起来之后,通过"轨迹线"的方程,就可以找到对应的"y坐标"了,进而也就能确定【圆】的坐标了。由于"x坐标"是"动"着的,所以,【圆】的坐标自然也是"动"着的,而且是"循"着"轨迹线"在运动。
其中:
- "位置x"的动态属性用【动态对话框】的形式,将当前的"x坐标"减去【圆】的半径,即为当前【圆】的"位置x";
- "位置y"的动态属性选择【C脚本】(当然也可以用【动态对话框】),将当前的"y坐标"减去【圆】的半径,即为当前【圆】的"位置y"。
The End