VBS 脚本可以用在 WinCC Comfort/Advanced Runtime。下面就是一些很实用技巧,希望对大家有所帮助!
PLC相关项目案例程序,资料教程可以加我微信“dqjob12345”找我要下,一起学习。
1、为什么一个由内部变量的 “数值改变” 事件触发的脚本不被执行?
如果使用一个内部变量调用另外一个内部变量,以此,例如被调用的变量又去执行一个脚本(比如,根据变量变化),此时一个安全机制会阻止这个功能被执行。
此安全功能是为了阻止连续的执行。
例如
在内部变量 “HMI_Tag_01” 属性下,“更改数值”事件去置位内部变量 “HMI_Tag_02” 中的某一位。
同时内部变量 “HMI_Tag_02” 的“更改数值”事件下又调用一个脚本。
结果:这个脚本不会被执行。
解决办法
使用和控制器通讯的外部变量。请注意,通过使用外部变量可以规避上述安全机制。在项目运行时可能会产生问题。
2、如何在一个脚本中访问数组中的元素?
对数组元素的访问是通过数组的名称和数组中由括号分隔的数组索引来实现的:“SmartTags("Array Name")(array index) ”
例如
访问数组 "DB10_HMI_Data" 的第二个元素 :Dim Tag_01 'Internal script tag
Tag_01 = SmartTags("DB10_HMI_Data")(2)
注意
使用下面语法访问字符串类型数组中的元素:Dim Tag_01 'Internal script tag
Tag_01 = SmartTags("DB10_HMI_Data[2]")
例如
通过一个循环描述数组 "DM10_HMI_Data" 的第一个元素至第十一个元素Dim Tag_01
For Tag_01=0 to 10
SmartTags("DB10_HMI_Data")(Tag_01) = 5
Next
局部脚本的数组(该数组仅在此脚本中可用)可以使用同样的方式查询,对于多维数组,各个维度通过一个逗号分隔开。
例如
访问二维数组变量 "HMI_Data" 没有连接控制器。Dim HMI_Data(10,10)
Dim Tag_01
Tag_01 = HMI_Data(0, 5)
注意
当使用控制器连接的数组元素时,推荐在脚本开始前将他们赋值给脚本内部变