WINCC Vbscript脚本是大家在组态项目时经常用到的功能,但在使用过程中有这样那样的疑惑或问题,此文总结一些内容,以供学习交流。
1关于Vbscript脚本语言
脚本语言(Scripting language)是为了缩短传统的“编写、编译、链接、运行”(edit-compile-link-run)过程而创建的计算机编程语言。
这些脚本通过解释执行,速度可能很慢,且运行时更耗内存。但脚本语言有自己的特性:语法和结构通常比较简单、学习和使用通常比较简单、通常以容易修改程序的“解释”作为运行方式,而不需要“编译”、 程序的开发产能优于运行性能。脚本通常以文本(如ASCII)保存,只在被调用时进行解释执行。
许多大型的应用程序(如WINCC)都包括惯用脚本语言。此类脚本用于实现自动化工作控制,即启动和控制应用程序的行为。
VBScript是Visual Basic Script的简称,有时也被缩写为VBS。VBScript是微软开发的一种脚本语言,可以看作是VB语言的简化版,与Visual Basic for Applications的关系也非常密切。它具有原语言容易学习的特性。可以直接作为一个可执行程序。用于调试简单的VB语句非常方便。
由于VBScript可以通过Windows脚本宿主方便的调用COM(WINCC中也是其优于C脚本的一点),因而可以使用Windows操作系统中可以被使用的程序库,比如它可以使用Microsoft Office的库,尤其是使用Microsoft Access和Microsoft SQL Server的程序库,当然它也可以使用其它程序和操作系统本身的库。如WINCC的CCHMIRuntime库。
VBScript可以被用来自动地完成重复性的Windows操作系统任务。在Windows操作系统中,VBScript可以在Windows Script Host的范围内运行。Windows操作系统可以自动辨认和执行*.vbs文件格式。
什么是Windows Script Host:
Windows Script Host(简称WSH),是Windows操作系统脚本语言程 序(script)的运行环境。
Windows Script Host最早出现在Windows 98,经过不断发展与强化, 而后的Windows操作系统(包括客户端与服务端版本)都内置了WSH。
查看WSH的版本方法:
进入cmd “命令提示符”,输入cscript,按“Enter”出现以下消息:
如果没有出现,就表示你的系统并没有WSH的环境。
VBScript中的变量都是弱类型(即Variant变体),因此它不需要指定其类型。定义只能使用Dim 变量名(而不能使用Dim 变量名 As 类型),解释器会自动根据赋值的类型定义变量类型。
3.WINCC Vbscript脚本
除了 C 脚本外,WinCC 还提供了 VBScript 编程语言作为编程界面, 但和ANSI-C不同的是,VBScript作为解释性语言,在编辑阶段只是对输入的代码进行简单的“语法检查”而不是“编译”。如对于一个未定义的变量,C脚本编译时会给出错误提示,VBScript编辑界面并不会。
如下面的脚本:在过程procedure1中变量a未定义,语法检查时并不会报错
但在过程被调用运行后会报错,这一点要了解。
2VBS脚本全局变量
1.全局变量的定义
VBS全局变量可在全局脚本编辑器中定义,然后可在所有动作和过程中使用。 一般定义在所有函数的前面(如在模块m1定义a、b为全局变量)
2.在画面和VBS全局动作使用全局变量
为了在画面的脚本中使用全局变量,需调入定义全局变量模块中至少任意一个过程,以便将关联模块加载到运行系统中。
如在下图画面按钮事件中调用模块m1中的任意一个过程如procedure3,然后就可以在该画面的任何脚本中使用在m1模块中定义的全局变量。
为了在VBS全局脚本的动作中使用全局变量,必须在至少一个全局动作中,调入定义全局变量模块中至少任意一个过程,以便将模块加载到VBS全局脚本运行系统中。
全局变量的值可以在所有全局动作中传递,但不能和画面。这也是VBS全局变量和C脚本全局变量的区别(C的全局变量可以在所有全局C动作和画面脚本中使用并传递)。
如果需要同步来自VBS全局脚本和画面之间的动作,可以使用 DataSet 对象或内部 WinCC 变量。
|