"VB_Function_1" 是这个函数的名字,在执行这个脚本后,"HMI_Tag_3" 获得这个函数的返回值是"HMI_Tag_1" * "HMI_Tag_2" 。
注意
定义一个 "by reference" 的参数 ,这意味着作为 "By_Ref "参数,仅对脚本中定义的和引用的变量产生影响,对 HMI 内部变量或者控制器变量不起作用。
(11)如何在运行时改变对象的属性(颜色,长度等)?
以下手册中提供了对象的属性和使用的信息:
SIMATIC WinCC WinCC Engineering V15 - 编程参考下"VB脚本编写 > VBS 对象模型 > 属性"。(没有该手册的可以联系主编)
(12)什么能导致“Zui大嵌套深度到达”消息被触发?
如果太多的脚本在结束前调用自己或者调用其他脚本,会引起到达Zui大嵌套深度消息。
解决方法检查脚本过程的处理,如有必要,减少脚本的嵌套。
(13)如何确定当前画面的编号和画面名称?
通过预定义 VB 函数 “HmiRuntime.BaseScreenName ”的返回值提供了当前画面的名字。
注意
不能使用脚本通过相关画面的“属性”直接读取画面名称/编号。
也可以使用“画面编号”区域指针。
(14)如何在脚本中使用多路复用变量?
多路复用变量不能用在脚本中。
(15)如何在脚本里使用 HMI UDT 变量?
可以使用“SmartTags” 访问数据类型是HMI UDT的变量元素(用户定义的数据类型)。
例如 访问 UDT 变量 " Recipe " 的元素 "x"
SmartTags("Recipe.x")
注意
这适用于在项目中已创建库类型 HMI UDT的实例。不能直接访问库类型。
(16)如何在脚本中保存变量值当他们在两个脚本之间调用?
在两个脚本间相互传递数据需要使用全局变量。全局变量可以是HMI 或者 PLC 变量。
脚本中定义的变量总是在脚本结束时删除。
(17)如何通过脚本修改文本域的内容?
文本域的文本在运行时可以通过修改相应的对象属性而改变。
例如 在画面 "MachineData" 中,将文本 "NewText" 分配给 文本域 "Text_Field_01" :
Dim obj
Set obj = HmiRuntime.Screens("MachineData").ScreenItems("Text_Field_01")
obj.Text= "NewText"
注意
文本的变化只是“暂时”的。当屏幕更改后这个被修改后的文本将被组态的文本覆盖。