例如
下面的例子的返回值是两个传入参数的乘积:
VB_Function_1= Parameter_1 * Parameter_2
"VB_Function_1" 是这个函数的名字,在执行这个脚本后,"HMI_Tag_3" 获得这个函数的返回值是 "HMI_Tag_1" * "HMI_Tag_2" 。
注意
定义一个 "by reference" 的参数vbs脚本执行,这意味着作为 "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
Ends both the Runtime and the OS
例如
StopRuntime hmiStopRuntime
StopRuntime 1
注意
Windows-based 面板的操作系统不能通过这种方式关闭。
20、如何在脚本中访问一个画面或者模板的对象?
组态 “Runtime” 对象的属性“ ActiveScreen ”,可以找到画面上组态对象的名字和修改相关的属性。
例如
把激活屏幕中的对象 "Circle_01" 设置为不显示
HmiRuntime.ActiveScreen.ScreenItems("Circle_01").Visible=False
注意
在画面中被组态对象必须有唯一的名字。对象的属性修改仅是暂时的,当屏幕更改后视图使用组态时的配置。
21、如何在运行时选择一个画面对象(例如输入输出域)?
获得一个对象的焦点通过 "Activate" 功能,文本输入会直接自动指向那个对象。
例如
获得屏幕 "Screen_1" 的 输入/输出域"IOField_1"的焦点
HMIRuntime.Screens("Screen_1").ScreenItems("IOField_1").Activate
来源:【九爱网址导航www.fuzhukm.com】 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!