抖音粉丝群1
『7x24小时有问必答』

WINCC Vbscript脚本是大家在组态项目时经常用到的功能,但在使用过程中有这样那样的疑惑或问题,此文总结一些内容,以供学习交流。

主要内容:
1、关于Vbscript脚本语言
2、VBS脚本全局变量
3、VBS中库的定义与使用
4、WINCC启动时执行外部VBS脚本

WINCC版本:V7.4 SP1 ASIA

1关于Vbscript脚本语言
1.脚本语言概念

脚本语言(Scripting language)是为了缩短传统的“编写、编译、链接、运行”(edit-compile-link-run)过程而创建的计算机编程语言。


这些脚本通过解释执行,速度可能很慢,且运行时更耗内存。但脚本语言有自己的特性:语法和结构通常比较简单学习和使用通常比较简单通常以容易修改程序的“解释”作为运行方式,而不需要“编译”程序的开发产能优于运行性能。脚本通常以文本(如ASCII)保存,只在被调用时进行解释执行。


许多大型的应用程序(如WINCC)都包括惯用脚本语言。此类脚本用于实现自动化工作控制,即启动和控制应用程序的行为。


2.Vbscript脚本语言

VBScript是Visual Basic Script的简称,有时也被缩写为VBS。VBScript是微软开发的一种脚本语言,可以看作是VB语言的简化版,与Visual Basic for Applications的关系也非常密切。它具有原语言容易学习的特性。可以直接作为一个可执行程序。用于调试简单的VB语句非常方便。

640.jpg
由于VBScript可以通过Windows脚本宿主方便的调用COMWINCC中也是其优于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”出现以下消息:


640.jpg


如果没有出现,就表示你的系统并没有WSH的环境。


VBScript中的变量都是弱类型(即Variant变体),因此它不需要指定其类型。定义只能使用Dim 变量名(而不能使用Dim 变量名 As 类型),解释器会自动根据赋值的类型定义变量类型。



3.WINCC Vbscript脚本


除了 C 脚本外,WinCC 还提供了 VBScript 编程语言作为编程界面, 但和ANSI-C不同的是,VBScript作为解释性语言,在编辑阶段只是对输入的代码进行简单的“语法检查”而不是“编译”。如对于一个未定义的变量,C脚本编译时会给出错误提示,VBScript编辑界面并不会。

640.jpg

如下面的脚本:在过程procedure1中变量a未定义,语法检查时并不会报错

640.jpg

但在过程被调用运行后会报错,这一点要了解。

640.jpg

2VBS脚本全局变量
1.全局变量的定义


VBS全局变量可在全局脚本编辑器中定义,然后可在所有动作和过程中使用。 一般定义在所有函数的前面(如在模块m1定义a、b为全局变量)


640.jpg



2.在画面和VBS全局动作使用全局变量


为了在画面的脚本中使用全局变量,需调入定义全局变量模块中至少任意一个过程,以便将关联模块加载到运行系统中。


如在下图画面按钮事件中调用模块m1中的任意一个过程如procedure3,然后就可以在该画面的任何脚本中使用在m1模块中定义的全局变量。

说明:全局变量的值不能在不同的画面间传递。
640.jpg

为了在VBS全局脚本的动作中使用全局变量,必须在至少一个全局动作中,调入定义全局变量模块中至少任意一个过程,以便将模块加载到VBS全局脚本运行系统中。

640.jpg
说明:
全局变量的值可以在所有全局动作中传递,但不能和画面。这也是VBS全局变量和C脚本全局变量的区别(C的全局变量可以在所有全局C动作和画面脚本中使用并传递)。
如果需要同步来自VBS全局脚本和画面之间的动作,可以使用
DataSet 对象或内部 WinCC 变量。


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

上一主题上一主题         下一主题下一主题
QQ手机版小黑屋粤ICP备17165530号

关于我们·投诉举报· 用户帮助· 联系我们 · 本站服务 · 版权声明· 隐私政策 · 投搞指南

法律保护:PLC技术网,plcjs.com,plcjs.net等字样
Copyright 2010-2030. All rights reserved. 


微信公众号二维码 抖音二维码 百家号二维码 今日头条二维码哔哩哔哩二维码