「WinCC」C脚本应用实例,“循线”运动的圆

Xsens动作捕捉 2022-10-16 16441

在WinCC画面中,如何让"对象"动起来是一门学问,有许多方法可供选择,比如:变量连接、动态对话框及脚本。一般而言,要实现更为复杂的动态,就需要通过脚本动作来实现了。WinCC中可选的脚本有C脚本和VBS脚本。

上一篇文章《如何让"画面对象"在水平方向上动起来》演示一下"如何让一个【圆】在水平方向上动起来",效果如图1所示。

「WinCC」C脚本应用实例,“循线”运动的圆  第1张

图1 【圆】的水平运动

本文,推进一步,让【圆】沿着直线,"循线"动起来,效果如图2所示。

「WinCC」C脚本应用实例,“循线”运动的圆  第2张

图2 【圆】的"循线"运动


一、准备工作

「WinCC」C脚本应用实例,“循线”运动的圆  第3张

如图3所示,为画面的总体布局,本文的"目标"是让蓝色的【圆】沿着直线"动起来"。

1、"轨迹线"方程

"轨迹线"是一条斜率为1的直线,其经过(0,600)和(600,0)两点,因此,其直线的方程为:

「WinCC」C脚本应用实例,“循线”运动的圆  第4张

2、【圆】的尺寸和坐标

【圆】的直径定义为40个像素,我们知道,【WinCC中,一个对象的坐标是包含它的矩形的左上角所对应的坐标】。因此,要让【圆】的"圆心"沿着"轨迹线"运动",【圆】的坐标应该满足以下条件:

「WinCC」C脚本应用实例,“循线”运动的圆  第5张

因此,只要知道"轨迹线"上任意点的坐标,分别减去【圆】的半径,就能知道其对应的【圆】的坐标了。


二、设计思路

让【蓝色圆】"循线"运动的总体思路是:

  1. 先让x坐标动起来;
  2. 为运动着的x坐标,在"轨迹线"上找到对应的y坐标;
  3. 通过"轨迹线"上的坐标(x,y)找到对应的【圆】的坐标。

1、让"x坐标"动起来

"x坐标"的运动,还是采用上一篇文章的方法(在"水平运动的【圆】中写C脚本"),如图4所示。每执行一次"脚本","x坐标"自增20。"脚本"的触发器选择用变量"positionX"进行触发,且设定为"每1s"触发一次,如图5所示。

「WinCC」C脚本应用实例,“循线”运动的圆  第6张

「WinCC」C脚本应用实例,“循线”运动的圆  第7张

2、【圆】的"循线"运动

"x坐标"动起来之后,通过"轨迹线"的方程,就可以找到对应的"y坐标"了,进而也就能确定【圆】的坐标了。由于"x坐标"是"动"着的,所以,【圆】的坐标自然也是"动"着的,而且是"循"着"轨迹线"在运动。

「WinCC」C脚本应用实例,“循线”运动的圆  第8张

其中:

  • "位置x"的动态属性用【动态对话框】的形式,将当前的"x坐标"减去【圆】的半径,即为当前【圆】的"位置x";
  • "位置y"的动态属性选择【C脚本】(当然也可以用【动态对话框】),将当前的"y坐标"减去【圆】的半径,即为当前【圆】的"位置y"。

上一篇《如何让“画面对象‘在水平方向上动起来》

The End