WinCC对象属性的动态化也可以通过C动作或VBS动作来实现。用VBS动态化的属性,"小灯泡"变为带"VB"的闪电图标;用C脚本动态化的属性,"小灯泡"变为带"c"的闪电图标。下面试举一例:用C脚本实现一个五角星旋转,说明如何通过脚本实现对象属性的动态化。
动态效果如下图所示:
如图4.1所示,为画面的一些辅助配置:
- 旋转角与内部变量"angle"相关,画面中的输出域中,显示当前的角度
- 设置旋转参考坐标X、Y均为50,即"五角星"围绕包围它的矩形的中心点旋转。
一、编写C动作
1、右键单击"旋转角"属性后的"小灯泡",选择"C动作...",弹出"编辑动作"对话框。
2、初步认识"编译动作"窗口
- 程序在"代码编辑区"编写,代码可以是C语言,也可以调用左边"函数浏览区"的函数;
- 函数浏览区的函数分为:项目函数、标准函数和内部函数。
项目函数由用户自己创建,可调用其他函数,也可被其他函数或动作调用;
标准函数是WinCC提供的函数,用户不能创建,但可以修改。可调用其他函数,也可被其他函数或动作调用;
内部函数也是由WinCC提供的函数,用户既不能创建,也不能修改。只能被其他函数或动作调用。
3、编写"动作"代码,并编译。
图4.4的代码简单解释:
- 函数GetTagDWord和SetTagDWORD均为内部函数,属于固定用法,分别用于读变量"angle"的值和将值写入"angle"中。
- 每执行一次代码,"旋转角"的度数增加13°。
二、设置触发器
代码编写完成且编译无错误后,还需要为动作设置触发器。点击图4.3所示的"触发器"按钮,弹出"触发器"窗口。
可选的触发器有:
- 变量:用某一变量作为触发器。查询变量的状态,变化时就执行动作。查询周期可选范围为250ms到1小时之间,也可以是用于自定义的周期;
- 标准周期:周期性的触发动作的执行。周期时间可选范围为250ms到1小时之间,也可以是用户自定义的周期;
- 画面周期:周期性的触发动作的执行,周期为画面对象的"更新周期";
- 窗口周期:周期性的触发动作的执行,周期为画面窗口对象的"更新周期"
为了方便演示,本例中触发器选择为"标准周期",周期为250ms。