在 “ Parameter ”表格中您以创建脚本变量用来将内部变量或控制器变量传入在脚本需要的时候。
组态函数返回值,在脚本中为脚本的名称分配表达式。
例如
组态函数类型,。按下面所示,在TIA Portal 组态名称为 “ VBFunction_1 ”脚本函数的参数和返回值:
图. 01
例如,
脚本在按钮的 “ Click ” 的事件中被使用。
图. 02
在脚本中使用 "HMI_Tag_1" 的值赋给"Parameter_1" ,"HMI_Tag_2" 的值赋给"Parameter_2" ,必须有一行脚本定义了返回值。
例如
下面的例子的返回值是两个传入参数的乘积:
VB_Function_1= Parameter_1 * Parameter_2
"VB_Function_1" 是这个函数的名字,在执行这个脚本后,"HMI_Tag_3" 获得这个函数的返回值是 "HMI_Tag_1" * "HMI_Tag_2" 。
注意
定义一个 "by reference" 的参数,这意味着作为 "By_Ref " 参数,仅对脚本中定义的和引用的变量产生影响,对 HMI 内部变量或者控制器变量不起作用。
12、什么能导致“最大嵌套深度到达”消息被触发?
如果太多的脚本在结束前调用自己或者调用其他脚本,会引起到达最大嵌套深度消息。
解决方法
检查脚本过程的处理,如有必要,减少脚本的嵌套。
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"
注意
文本的变化只是“暂时”的。当屏幕更改后这个被修改后的文本将被组态的文本覆盖。
18、如何在脚本中从密码列表或用户视图中读取用户密码?
由于安全原因这个功能在 WinCC (TIA Portal) 中不能实现。
19、如何通过脚本关闭 WinCC 运行系统和关闭PC和面板?
通过系统函数“StopRuntime”可以关闭 WinCC 运行系统和操作系统 。
可以通过修改 "StopRuntime" 函数的参数方式选择仅关闭运行系统或者将运行系统和操作系统都关闭。
Parameter
Meaning
0 = hmiStopRuntime
Ends on the Runtime
1 = hmiStopRuntimeAndOperationSystem