vbs脚本执行 TIA Portal WinCC 使用VBS脚本调试的21个实用技巧

11/28 09:23:44 来源网站:辅助卡盟平台

vbs脚本执行 TIA Portal WinCC 使用VBS脚本调试的21个实用技巧

写在面前

大家好,我是小智vbs脚本执行,智能制造之家号主~

前面的文章中,我们已经从TIA Portal WinCC,到 WinCCClassic,再到WinCC OA的架构,选型到与MES通讯,工业数据桥,虚拟化等通通聊了一遍(具体见文末)

但是不论是使用TIA Portal WinCC 、WinCC Classic还是WinCC OA,脚本调试、各种通讯总是必不可少,还记得在前面的文章:

我就提醒大家多学习编程和网络相关知识,其实随着IT与OT的不断融合,即使你还是做的自动化,但是却与IT的界限越来越模糊,自动化的你们正在走进IT的同时,IT也正在向我们走来,今天的自动化,早已经不是单纯自动化~

今天我们就来聊一聊TIA Portal WinCC VBS脚本调试的一些使用技巧,如果对前面推出的其它文章感兴趣的请参看文末往期推荐~

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)

注意

当使用控制器连接的数组元素时,推荐在脚本开始前将他们赋值给脚本内部变量,然后再使用内部变量进行其他工作。结束脚本前,将内部变量赋值给数组元素。

3、如何在控制器和脚本之间有效的赋值过程变量数组?

从控制器到一个脚本赋值辅助卡盟,过程变量数组需要在一个循环中将数组元素一个一个赋值,参考示例。然而,也可以通过一个简单的指令把局部脚本的数组的值赋给过程变量数组。

例如

把控制器的数组 "CPU_Array" 的值赋给内部数组 "local_array" 和把内部数组 "local_array" 的值赋给控制器的数组 "CPU_Array"

Dim local_array(10)

    暂无相关资讯
vbs脚本执行 TIA Portal WinCC 使用VBS脚本调试的21个实用技巧