在WinCC Comfort 和 WinCC Advanced 中,如何使用脚本动态化对象?

描述
通过脚本访问对象属性,是除通过属性或动画对话框来组态对象属性之外的另一个选择。

SIMATIC WinCC (TIA Portal) 中,在运行时使用标准组态,一些对象属性不能被动态化/动画,如改变矩形大小。在这种情况下,可以在运行时使用脚本 动态化多数的对象属性。

在本条目结尾可以下载一个 PDF 文件及示例项目。PDF 文件它包含了 WinCC Comfort 和 WinCC Advanced对象的属性列表,也包含可以在脚本中调用的对象所有属性及属性类型。
手册中列出了对象可以动态化的所有属性和方法。 "可视化过程 > 使用系统函数和运行系统脚本> 参考 > VB 脚本编写> VBS 对象模型" 章节中的 " 属性 "和 " 方法 ".

操作说明
下面的例子展示在运行时,如何通过脚本更改矩形的宽度和高度。

变量和对象(矩形)的名称可以根据需要各自更改。
这些变量不需要与控制器连接(只有需要通过控制器分配矩形的宽度和高度时,才需要与控制器连接的变量)。

为了更好的理解,请打开附件中的组态。

编号. 过程
1 添加一个矩形

  • 在“Screen_01”中插入一个“矩形”对象
    注意
    稍后会在脚本中使用画面名称。
  • 定义对象的尺寸和名称
    本例中矩形的宽度和高度分别为100和50。
    对象的名称为“Rectangle_1”。
    注意
    稍后会在脚本中使用对象(矩形)的名称。

在WinCC Comfort 和 WinCC Advanced 中,如何使用脚本动态化对象?
Fig. 01

2 创建变量
通过脚本更改矩形的宽度和高度。创建两个内部变量,名称为“RectangleHeight”和“RectangleWidth”。
(项目导航 >操作面板 > HMI 变量 > 标准变量表 )

为变量分配一个“初始值”。本例中,宽度为“100”,高度为“50”。
(属性 >值 >初始值)。下文会解释设置原因 (见步骤8)。

注意
将会在脚本中使用这些变量。

在WinCC Comfort 和 WinCC Advanced 中,如何使用脚本动态化对象?
Fig. 02

3
创建脚本
组态中要使用两个脚本。

(项目导航 > 操作面板 > VB 脚本 > 添加新的 VB 功能)
可以根据需要指定脚本的名称。
此例中:

  • Script_01_Rectangle
  • Script_02_Init_Rectangle

下面详细介绍这两个脚本。

4 Script_01_Rectangle
使用“
Script_01_Rectangle”可以改变矩形尺寸。

创建一个内部脚本变量
通过一个内部脚本变量更改 WinCC 对象的属性(本例为矩形的属性)。
可以根据需要指定变量的名称。
本例中为:“ObjectRectangle”

对象定义
在脚本编辑器中,将对象“Rectangle_1”传送给变量“ObjectRectangle”。
HmiRuntime.Screens”语句表示对象(矩形)所在的画面。
画面中对象(矩形)的引用可以通过“ScreenItem”语句。
本例为:
Set ObjectRectangle = HmiRuntime.Screens("Screen_01").ScreenItems("Rectangle_1")

注意
记住画面中的对象名称必须是唯一的,这意味着其它对象不能使用这个名称。
然而,在不同的画面中可以存在相同的对象名称!

给对象(矩形)的“高度”和“宽度”分配变量
"Width" 为对象宽度。
"Height" 为对象高度。
为矩形的“高度”和“宽度”定义了两个变量。
并把这两个变量分配给相应的对象。

本例中:

ObjectRectangle.Width = SmartTags("RectangleWidth")
ObjectRectangle.Height = SmartTags("RectangleHeight")

在WinCC Comfort 和 WinCC Advanced 中,如何使用脚本动态化对象?
Fig. 03

5 Script_02_Init_Rectangle
通过 "Script_02_Init_Rectangle" 可以把矩形设置到脚本中指定的尺寸(重置到“初始大小”)。
脚本用于不事先在 IO 域中设定值,而把矩形重置为“初始大小”。

此脚本和 Script_01_Rectangle" 结构相同。唯一不同的是指定值是矩形宽度 ("200") 和高度 ("100") 。

在WinCC Comfort 和 WinCC Advanced 中,如何使用脚本动态化对象?
Fig. 04

6 创建脚本的技巧

自动完成

  • 在创建脚本时,使用“自动完成”。
    自动完成是一种特征,在对话框中提供一种上下文相关的列表,从中可以选择需要的变量或指令。
    示例1
    在“...= HmiRuntime”对话框之后,输入一个“句点”(.)。
    打开一个“弹出菜单”,可以从中选择所有可用的变量和语句。

在WinCC Comfort 和 WinCC Advanced 中,如何使用脚本动态化对象?
Fig. 05

示例 2
在“ObjectRectangle”对话框之后,输入一个“句点”(.)
打开一个“弹出菜单”,可以从中选择所有可用的属性。

在WinCC Comfort 和 WinCC Advanced 中,如何使用脚本动态化对象?
Fig. 06

添加变量

  • 定位到需要添加变量的位置。
  • 点击右键。打开弹出菜单。
    选择菜单命令“自动完成>列表对象”。
    打开另外一个窗口,从中选择相关的变量,并点击“确认”按钮输入。

在WinCC Comfort 和 WinCC Advanced 中,如何使用脚本动态化对象?
Fig. 07

7 添加按钮和输入输出域
为了指定矩形的宽度和高度,需要创建两个输入输出域和一个执行脚本的按钮。

  • "Change size" ("Script_01_Rectangle" script)
  • "Standard size" ("Script_02_Init_Rectangle" script)

在WinCC Comfort 和 WinCC Advanced 中,如何使用脚本动态化对象?
Fig. 08

在各自的输入输出域中组态关联内部变量“宽度”和“高度”。
(属性 > 常规 > 过程)

“更改尺寸”按钮调用脚本“Script_01_Rectangle”。
(属性 >事件 > 单击)

“标准尺寸”按钮调用脚本“Script_02_Init_Rectangle”。
(属性 > 事件> 单击)

8 通过画面“Screen_01”执行当前的例子
如果矩形的尺寸发生改变,此改变只是临时起作用。如果再次调用此页面,矩形恢复到组态尺寸。

如果需要画面改变后仍然保存修改后的尺寸,在画面“Screen_01”装载时调用脚本“Script_01_Rectangle”( 属性 > 事件 > 装载)

首次调用画面,或者还没有为矩形设置尺寸时,矩形在画面上不可见 (宽度和高度都为 "零")。
通过定义初始大小 "Width" 和 "Height" 变量可以避免此情况 (见步骤2)。

在WinCC Comfort 和 WinCC Advanced 中,如何使用脚本动态化对象?
Fig. 09

9 组态时的注意事项和技巧

  • 为了测试附件中的组态,可以使用WinCC Comfort 中的 TP1200 或 WinCC Advanced 仿真。通过IO域指定值,确保对象(矩形)指定的值不能超过当前画面的宽度或者高度。否则提示系统消息(脚本错误)。

补救措施

通过“属性〉范围〉设置”属性为变量“RectangleHeight”和“RectangleWidth”设置一个最大值。 此值大小与组态对象的位置有关。

  • 脚本中的错误 ...
    脚本读出对象(矩形)的名称。如果希望在“PC 运行模拟器”中测试组态,在启动运行时之前,检查是否使能“运行系统设置〉常规〉画面〉装载名称”选项。
  • WinCC (TIA Portal) 帮助系统提供了更多关于“VBS 对象模型”的信息,在 "可视化过程 > 使用系统函数和运行系统脚本> 参考 > VB 脚本编写> VBS对象模型".

在WinCC Comfort 和 WinCC Advanced 中,如何使用脚本动态化对象?
Fig. 10

Table 01

附加信息(与此例无关)
WinCC (TIA Portal)帮助系统提供了与VBS有关的所有对象。条目标题为 "对象和对象类型之间的关系" (条目号: 108893939) 给出了对象和相关对象类型的列表。在(TIA Portal 帮助)手册或信息系统中,通过对象类型可调用 - 单独语言 - 搜索对象的概览。

在信息系统中,例如,或手册 (条目号: 109091876) 输入 "矩形" 作为关键字在索引中查找。可以获得对象概览。描述包括了对象属性和方法。

在WinCC Comfort 和 WinCC Advanced 中,如何使用脚本动态化对象?
Fig. 11

注意事项
有些对象只能在某些面板上使用。

下载

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc323545.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日
下一篇 2021年4月12日

相关推荐

发表回复

登录后才能评论