在WinCC画面中,如何让"对象"动起来是一门学问,有许多方法可供选择,比如:变量连接、动态对话框及脚本。一般而言,要实现更为复杂的动态,就需要通过脚本动作来实现了。WinCC中可选的脚本有C脚本和VBS脚本。
接下来,我们通过一些简单的实例,来揭开WinCC的C脚本语言的神秘面纱。
本文演示一下"如何让一个【圆】在水平方向上动起来",效果如图1所示。
一、画面的结构
画面中所有的"对象"如图1所示,共分为两类:
1、运动的【圆】
【圆】是本例的主体,为使其在"水平"方向上动起来,可利用C脚本组态其【位置X】的动态属性。
2、实时坐标显示
【实时坐标显示】功能由3个"静态文本"对象组成,如图1所示。
- "静态文本1"用于显示【括号,"( , )"】,它在画面中是静止的,无需组态动态属性;
- "静态文本2"和"静态文本3"分别用于显示【圆】实时的位置X和位置Y,因为【圆】是运动着的,所以,其【文本】属性应组态成动态属性,与预先定义的内部变量"positionX"、"positionY"相关联,当它们变化时,所显示的文本随之变化,组态如图4所示。
二、让【圆】动起来
准备工作完成后,现在进入"正题",【利用C脚本,让圆在水平方向上动起来】。
如图5所示,为【圆】的"位置X"属性组态动态属性,选择【C动作...】,在"动作编辑窗口"中,编写相应的代码。
1、代码解释
在C脚本中,首先通过内部函数"GetTagDouble"将变量"positionX"的值读进来,让其自增20,然后再通过内部函数"SetTagDouble"将其写入变量"positionX"中。判断语句"if(X>=500)"用于限定【圆】的运动范围,使其仅在【100,500】之间运动。
2、C脚本的触发条件
用"C脚本"来组态对象的动态属性,需要为其配置"触发器",否则C脚本将不被执行。
在"C动作编辑窗口",点击"触发器"按钮(【小闹钟】图标),即可弹出"触发器配置"窗口,如图7所示。触发器可以是"变量触发"也可以是"周期触发",这里选择通过变量"positionX"触发脚本执行,并在positionX满足条件的情况下,每1s触发一次。
配置了上述"触发器"后,由于变量"positionX"已经被限定在【100,500】之间了,所以,脚本动作会每隔1s执行一次,也就是说,"positionX"的值每隔1s自增20,这样,动态上来看,就实现了【圆】在水平方向上了移动。
【思考】