为什么不能在脚本里使用 “ MsgBox ” 命令?
“MsgBox” 命令不能用于 WinCC Comfort 和 WinCC Advanced版本是由于安全的原因。 “MsgBox”的弹出显示可能会覆盖掉元素操作,比如:阻止设备的快速操作。消息框可能会阻止脚本的执行。
解决办法可以使用系统函数 ShowSystemAlarm。
如何在一个脚本中使用十六进制符号给变量赋值?
在脚本编辑器中把字符组合 "&h"作为个十六进制常数的标识。
例如
Dim Tag_01
Tag_01 = &h45E ' Corresponds to the decimal value "1118"
(7)如何在脚本里显示或隐藏各个层级?
使用层是 WinCC (TIA Portal) 开发系统的一个功能。层只能在这里组态及显示隐藏。
这个功能在操作面板或 PC 的运行系统中不可用。不能用脚本显示或隐藏“层”。
解决办法
在 “ 属性>动画>可见性 ” 组态变量,根据变量值控制相关对象的显示或隐藏。
(8)如何在脚本中合并字符串?
可以使用 “ & ”来合并字符串:
例如 将 "Tag_Text_01","Tag_Text_02" 和 "Tag_Text_03" 合并成新字符串"Tag_01"
Dim Tag_01, Tag_Text_01, Tag_Text_02,Tag_Text_03
Tag_01 = Tag_Text_01 & Tag_Text_02 & Tag_Text_03
注意VB函数 CStr (Expression)将相应的表达式转换为“字符串”类型。 这样在连接字符串转换之前可以避免运行时出现错误。
(9)在脚本中如何在单独的字符串之间插入一个通配符(空格)?
为了在两个文本之间插入任意数量的空格,可以使用两个引号 ""。“空格”的数量取决于两个引号间的距离" "。
连接下一个字符需要使用连接操作 "&"。
例如 将字符串 "Tag_Text_01","Tag_Text_02" 和 "Tag_Text_03" 还有空格组合成一个新的字符串"Tag_01"
Dim Tag_01, Tag_Text_01, Tag_Text_02,Tag_Text_03
Tag_01 =Tag_Text_01 & "" & Tag_Text_02 & "" & Tag_Text_03
(10)如何组态带返回值和参数的脚本?
脚本类型必须是 “ Function ”才可以有返回值。请在TIA Portal 中添加新 VB 函数的 "Properties > General> Settings" 类型的下拉列表框中选择 “Function” 。
在 “ Parameter” 表格中您以创建脚本变量用来将内部变量或控制器变量传入在脚本需要的时候。组态函数返回值,在脚本中为脚本的名称分配表达式。
例如
组态函数类型,。按下面所示,在TIA Portal 组态名称为 “ VBFunction_1” 脚本函数的参数和返回值:
图. 01
例如,脚本在按钮的 “ Click ” 的事件中被使用。
图. 02
在脚本中使用 "HMI_Tag_1" 的值赋给"Parameter_1" ,"HMI_Tag_2" 的值赋给"Parameter_2",必须有一行脚本定义了返回值。
下面的例子的返回值是两个传入参数的乘积:
"VB_Function_1" 是这个函数的名字,在执行这个脚本后,"HMI_Tag_3" 获得这个函数的返回值是"HMI_Tag_1" * "HMI_Tag_2" 。
注意
定义一个 "by reference" 的参数 ,这意味着作为 "By_Ref "参数,仅对脚本中定义的和引用的变量产生影响,对 HMI 内部变量或者控制器变量不起作用。