1、组态软件组态软件WinCC及其应用及其应用第第5章章 全局脚本全局脚本5.1 ANSI-C脚本脚本5.2 全局脚本全局脚本VBS编辑器编辑器5.3 VB for Application青岛大学自动化工程学院青岛大学自动化工程学院第1页,共65页。组态软件组态软件WinCC及其应用及其应用5.1 ANSI-C脚本脚本标识符标识符 数据类型数据类型 运算符运算符 逻辑运算符逻辑运算符程序结构程序结构语句语句函数函数青岛大学自动化工程学院青岛大学自动化工程学院第2页,共65页。组态软件组态软件WinCC及其应用及其应用一一.标识符标识符3条规则:条规则:(1)标识符必须只能由字母、数字或下划线标识符
2、必须只能由字母、数字或下划线3种符号构种符号构成,即标识符中只能成,即标识符中只能 出现:字母、阿拉伯数字、出现:字母、阿拉伯数字、下划线。下划线。(2)标识符必须只能以字母或下划线作为开头。标识符必须只能以字母或下划线作为开头。(3)c语言不允许用户作为自定义对象的标识符:如语言不允许用户作为自定义对象的标识符:如 if、do、for、int等。等。合法:合法:N,Sum、_total非法:非法:Im、12h、wang(x)青岛大学自动化工程学院青岛大学自动化工程学院第3页,共65页。组态软件组态软件WinCC及其应用及其应用二二.数据类型数据类型1.常量常量 常量是在程序执行过程中值不能发
3、生改变的数据,常量是在程序执行过程中值不能发生改变的数据,如如1、2、-1、3.52.变量变量 变量是在程序执行过程中值可以发生改变的数据。变量是在程序执行过程中值可以发生改变的数据。想要定义一个变量,用户需要做如下想要定义一个变量,用户需要做如下2件事情:件事情:(1)给出变量名称(符合标识符规则)给出变量名称(符合标识符规则)sum average (2)给出变量的数据类型给出变量的数据类型 青岛大学自动化工程学院青岛大学自动化工程学院第4页,共65页。组态软件组态软件WinCC及其应用及其应用变量数据类型:变量数据类型:(1)整型变量)整型变量 a基本整型基本整型 以以int表示表示 1
4、6位位 -3276832767 b短整型短整型 short(int)16位位 -3276832767 c长整型长整型long(int)32位位 -21474836482147483647 又分为有符号、无符号又分为有符号、无符号(signed)int unsigned int 065535例:例:int a,b;int a;long e,f;unsigned short c,d;青岛大学自动化工程学院青岛大学自动化工程学院第5页,共65页。组态软件组态软件WinCC及其应用及其应用(2)实型变量实型变量 实型变量分为单精度(实型变量分为单精度(float型)、双精度(型)、双精度(double
5、型)型)和长双精度(和长双精度(long double型)三类。型)三类。例:例:float x,y;double z;long double t;(3)BOOL变量变量 青岛大学自动化工程学院青岛大学自动化工程学院第6页,共65页。组态软件组态软件WinCC及其应用及其应用三三.运算符运算符1算术运算符算术运算符 (+-*/%)2关系运算符关系运算符 (=a+b 等效等效 c(a+b)关系运算符关系运算符 a=bc 等效等效 a=(by)语句语句 z=x;(2)if(表达式)(表达式)例如例如:if(xy)语句语句1 z=x;else else 语句语句2 z=y;(3)if(表达式(表达式
6、1)例如:例如:if(number500)语句语句1 cost=0.15;else if(表达式表达式2)else if(number300)语句语句2 cost=0.10;else else 语句语句3 cost=0.75;青岛大学自动化工程学院青岛大学自动化工程学院第15页,共65页。组态软件组态软件WinCC及其应用及其应用求三个数中的最大数。求三个数中的最大数。float a,b,c,max;a=5.6;b=9.9;c=4.7;if(ab)if(bc)max=c;else max=b;else if(ac)max=c;else max=a;青岛大学自动化工程学院青岛大学自动化工程学院第
7、16页,共65页。组态软件组态软件WinCC及其应用及其应用2.switch 语句(多分支结构)语句(多分支结构)形式:形式:switch(表达式)(表达式)case 常量表达式常量表达式1:语句语句1;break;case 常量表达式常量表达式2:语句语句2;break;default:语句语句3 青岛大学自动化工程学院青岛大学自动化工程学院第17页,共65页。组态软件组态软件WinCC及其应用及其应用例:要求按照考试等级打印出百分制分数段例:要求按照考试等级打印出百分制分数段switch(grade)case 1:printf(“85100”);break;case 2:printf(“7
8、084”);break;case 3:printf(“6069”);break;case 4:printf(“60”);break;default:printf(“error”);青岛大学自动化工程学院青岛大学自动化工程学院第18页,共65页。组态软件组态软件WinCC及其应用及其应用3.循环控制语句循环控制语句1.while语句实现当型循环结构语句实现当型循环结构 例:求从例:求从1加到加到100的和。的和。int i,sum=0;i=1;while(i=100)sum=sum+i;i+;青岛大学自动化工程学院青岛大学自动化工程学院第19页,共65页。组态软件组态软件WinCC及其应用及其应
9、用2.do while语句语句 int i,sum=0;i=1;do sum=sum+i;i+;while(i=100);两者区别:两者区别:while后的表达式一开始就为假,结果不一样。后的表达式一开始就为假,结果不一样。青岛大学自动化工程学院青岛大学自动化工程学院第20页,共65页。组态软件组态软件WinCC及其应用及其应用3.for语句(完全代替语句(完全代替while,do-while)形式:形式:for(表达式;表达式;表达式表达式;表达式;表达式)语句语句 例:例:for(i=1;iy)z=x;else z=y;return(z);青岛大学自动化工程学院青岛大学自动化工程学院第23
10、页,共65页。组态软件组态软件WinCC及其应用及其应用变量的输入和输出变量的输入和输出 SetTag和和GetTag 青岛大学自动化工程学院青岛大学自动化工程学院第24页,共65页。组态软件组态软件WinCC及其应用及其应用5.1.2 WinCC中的中的C概述概述 1、函数和动作的关系、函数和动作的关系动作由触发器启动,函数是动作的组成部分,没有触发器,动作由触发器启动,函数是动作的组成部分,没有触发器,即函数在运行时不能自己执行即函数在运行时不能自己执行 触发器动作C代码调用一个函数C代码函数C代码青岛大学自动化工程学院青岛大学自动化工程学院第25页,共65页。组态软件组态软件WinCC及
11、其应用及其应用2、触发器的类型、触发器的类型WinCC中的触发器分为时间触发和变量触发等中的触发器分为时间触发和变量触发等 触发器类型定时器变量循环执行(在固定时间间隔内重复执行)起始点时间确定日:月:时间周期的循环监视变量值根据变化非循环(只执行一次,起始点由日期/时间确定)青岛大学自动化工程学院青岛大学自动化工程学院第26页,共65页。组态软件组态软件WinCC及其应用及其应用5.1.3 全局脚本全局脚本C编辑器编辑器 浏览窗口编辑窗口输出窗口可以看出,该编辑器中有可以看出,该编辑器中有4种类型的函数:项目函数,标种类型的函数:项目函数,标准函数,内部函数和动作准函数,内部函数和动作 青岛
12、大学自动化工程学院青岛大学自动化工程学院第27页,共65页。组态软件组态软件WinCC及其应用及其应用5.1.4 创建函数创建函数 例例 编写一个名为编写一个名为CelsiusConv用以实现华氏温度到摄用以实现华氏温度到摄氏温度转换的函数。氏温度转换的函数。在全局脚本在全局脚本C编辑器浏览窗口的项目函数项单击鼠编辑器浏览窗口的项目函数项单击鼠标右键选择标右键选择“新建新建”添加一个新的项目函数,如图添加一个新的项目函数,如图5-8所示。所示。青岛大学自动化工程学院青岛大学自动化工程学院第28页,共65页。组态软件组态软件WinCC及其应用及其应用青岛大学自动化工程学院青岛大学自动化工程学院第
13、29页,共65页。组态软件组态软件WinCC及其应用及其应用5.1.5 创建动作创建动作 1.局部动作局部动作局部动作的例子是图形编辑器中的对象调用局部动作的例子是图形编辑器中的对象调用C动作。动作。2.全局动作全局动作编写全局动作的代码本体与任何其它函数相同,但不编写全局动作的代码本体与任何其它函数相同,但不能改变代码中的函数名或修改返回值。能改变代码中的函数名或修改返回值。全局动作位于与直接连接相同的执行线程上,如果全局动作位于与直接连接相同的执行线程上,如果它的执行时间太长,会影响项目的性能。一般来说,它的执行时间太长,会影响项目的性能。一般来说,动作应短小简明。动作应短小简明。青岛大学
14、自动化工程学院青岛大学自动化工程学院第30页,共65页。组态软件组态软件WinCC及其应用及其应用例例 创建一个全局动作,用来实现每隔创建一个全局动作,用来实现每隔1秒名为秒名为Tag10的变量值自动加的变量值自动加1。启动全局脚本启动全局脚本C编辑器,右键单编辑器,右键单击击“动作动作全局全局动作动作”选择选择“新新建建”,创建一个,创建一个新的全局动作,新的全局动作,通过菜单通过菜单“文件文件另存为另存为INC”保存为保存为INC.PAS文件。文件。青岛大学自动化工程学院青岛大学自动化工程学院第31页,共65页。组态软件组态软件WinCC及其应用及其应用青岛大学自动化工程学院青岛大学自动化
15、工程学院第32页,共65页。组态软件组态软件WinCC及其应用及其应用5.1.6 使用诊断输出窗口使用诊断输出窗口 WinCC有三个工具用来分析动作的运行行为,即应有三个工具用来分析动作的运行行为,即应用程序窗口用程序窗口GSC运行系统、运行系统、GSC诊断和应用程序诊断和应用程序apdiag.exe。青岛大学自动化工程学院青岛大学自动化工程学院第33页,共65页。组态软件组态软件WinCC及其应用及其应用例例 用时间和变量触发器生成一个动作。用时间和变量触发器生成一个动作。右键单击全局脚本编辑器右键单击全局脚本编辑器“全局动作全局动作”选择选择“新新建建”,出现一个空白的工作区,加入图,出现
16、一个空白的工作区,加入图5-16所示代所示代码,注意返回数据类型和名称不能改变。动作不接码,注意返回数据类型和名称不能改变。动作不接受参数,且必须含有返回语句。此处代码用来检查受参数,且必须含有返回语句。此处代码用来检查变量变量Tag10是否为是否为1,如果为,如果为1,将打印输出当前的,将打印输出当前的时间,即变量系统变量时间,即变量系统变量NewTag_1中的时间。中的时间。青岛大学自动化工程学院青岛大学自动化工程学院第34页,共65页。组态软件组态软件WinCC及其应用及其应用青岛大学自动化工程学院青岛大学自动化工程学院第35页,共65页。组态软件组态软件WinCC及其应用及其应用青岛大
17、学自动化工程学院青岛大学自动化工程学院第36页,共65页。组态软件组态软件WinCC及其应用及其应用5.2 全局脚本全局脚本VBS编辑器编辑器 VBScript是一种是一种VB脚本语言,它是脚本语言,它是VB的一个的一个子集,可以实现部分子集,可以实现部分VB的功能。的功能。变量变量声明变量的一种方式是声明变量的一种方式是使用使用 dim 语句语句、public 语句语句和和 private 语句在语句在 script 中显式声明变量。中显式声明变量。如:如:dim degreesfahrenheit声明多个变量时,使用逗号分隔变量。声明多个变量时,使用逗号分隔变量。如:如:dim top,b
18、ottom,left,right青岛大学自动化工程学院青岛大学自动化工程学院第37页,共65页。组态软件组态软件WinCC及其应用及其应用另一种方式是通过直接在另一种方式是通过直接在 script 中使用变量名这一简单中使用变量名这一简单方式隐式声明变量。但通常这不是一个好习惯,因为这方式隐式声明变量。但通常这不是一个好习惯,因为这样有时会由于变量名被拼错而导致在运行样有时会由于变量名被拼错而导致在运行 script 时出现时出现意外的结果。因此,最好使用意外的结果。因此,最好使用 option explicit 语句显式语句显式声明所有变量,并将其作为声明所有变量,并将其作为 script
19、的第一条语句。的第一条语句。青岛大学自动化工程学院青岛大学自动化工程学院第38页,共65页。组态软件组态软件WinCC及其应用及其应用可以使用可以使用 const 语句在语句在 VBScript 中创建自定义常数。中创建自定义常数。如:如:const mystring=这是一个字符串。这是一个字符串。const myage=49 注意字符串文字包含在两个引号注意字符串文字包含在两个引号(“”)之间。这是区分字之间。这是区分字符串型常数和数值型常数的最明显的方法。符串型常数和数值型常数的最明显的方法。日期文字和时间文字包含在两个井号日期文字和时间文字包含在两个井号(#)之间。之间。如:如:con
20、st cutoffdate=#6-1-97#青岛大学自动化工程学院青岛大学自动化工程学院第39页,共65页。组态软件组态软件WinCC及其应用及其应用VBScript 有一套完整的运算符,包括算术运算符、比较有一套完整的运算符,包括算术运算符、比较运算符、连接运算符和逻辑运算符。运算符、连接运算符和逻辑运算符。算术运算符算术运算符比较运算符比较运算符逻辑运算符逻辑运算符描述描述符号符号描述描述符号符号描述描述符号符号求幂求幂负号负号乘乘除除整除整除求余求余加加减减-*/mod+-等于等于不等于不等于小于小于大于大于小于等于小于等于大于等于大于等于对象引用比较对象引用比较=is逻辑非逻辑非逻辑与
21、逻辑与逻辑或逻辑或逻辑异或逻辑异或逻辑等逻辑等逻辑隐逻辑隐notandorxoreqvimp字符串连接字符串连接&青岛大学自动化工程学院青岛大学自动化工程学院第40页,共65页。组态软件组态软件WinCC及其应用及其应用 当乘号与除号同时出现在一个表达式中时,按当乘号与除号同时出现在一个表达式中时,按从左到右的顺序计算乘、除运算符。同样当加与减从左到右的顺序计算乘、除运算符。同样当加与减同时出现在一个表达式中时,按从左到右的顺序计同时出现在一个表达式中时,按从左到右的顺序计算加、减运算符。算加、减运算符。字符串连接字符串连接(&)运算符不是算术运算符,但是在优先运算符不是算术运算符,但是在优先
22、级顺序中,它排在所有算术运算符之后和所有比较运算符级顺序中,它排在所有算术运算符之后和所有比较运算符之前。之前。is 运算符是对象引用比较运算符。它并不比较对象运算符是对象引用比较运算符。它并不比较对象或对象的值,而只是进行检查,判断两个对象引用是否引或对象的值,而只是进行检查,判断两个对象引用是否引用同一个对象。用同一个对象。青岛大学自动化工程学院青岛大学自动化工程学院第41页,共65页。组态软件组态软件WinCC及其应用及其应用使用条件语句和循环语句可以控制使用条件语句和循环语句可以控制 script 的流程。的流程。使用条件语句可以编写进行判断和重复操作的使用条件语句可以编写进行判断和重
23、复操作的 VBScript 代码。在代码。在 VBScript 中可使用以下条件语中可使用以下条件语句:句:if.then.else 语句语句 select case 语句语句 青岛大学自动化工程学院青岛大学自动化工程学院第42页,共65页。组态软件组态软件WinCC及其应用及其应用在在 VBScript 中可使用下列循环语句:中可使用下列循环语句:do.loop:当(或直到)条件为当(或直到)条件为 true 时循环。时循环。while.wend:当条件为当条件为 true 时循环。时循环。for.next:指定循环次数,使用计数器重复运行语句。指定循环次数,使用计数器重复运行语句。for
24、each.next:对于集合中的每项或数组中的每个对于集合中的每项或数组中的每个元素,重复执行一组语句。元素,重复执行一组语句。青岛大学自动化工程学院青岛大学自动化工程学院第43页,共65页。组态软件组态软件WinCC及其应用及其应用在在 VBScript 中,过程被分为两类:中,过程被分为两类:sub 过程和过程和 function 过程。过程。sub 过程过程sub 过程是包含在过程是包含在 sub 和和 end sub 语句之间的一组语句之间的一组VBScript 语句,执行操作但不返回值。语句,执行操作但不返回值。sub 过程可以过程可以使用参数(由调用过程传递的常数、变量或表达式)。
25、使用参数(由调用过程传递的常数、变量或表达式)。如果如果 sub 过程无任何参数,则过程无任何参数,则 sub 语句必须包含空括语句必须包含空括号号()。青岛大学自动化工程学院青岛大学自动化工程学院第44页,共65页。组态软件组态软件WinCC及其应用及其应用function 过程过程function 过程是包含在过程是包含在 function 和和 end function 语句之语句之间的一组间的一组 VBScript 语句。语句。function 过程与过程与 sub 过程类似,过程类似,但是但是 function 过程可以返回值。过程可以返回值。function 过程可以使用参过程可以
26、使用参数(由调用过程传递的常数、变量或表达式)。如果数(由调用过程传递的常数、变量或表达式)。如果 function 过程无任何参数,则过程无任何参数,则 function 语句必须包含空括语句必须包含空括号号()。function 过程通过函数名返回一个值,这个值是在过程通过函数名返回一个值,这个值是在过程的语句中赋给函数名的。过程的语句中赋给函数名的。青岛大学自动化工程学院青岛大学自动化工程学院第45页,共65页。组态软件组态软件WinCC及其应用及其应用WinCC中的中的VBS也有对象、属性、方法的概念也有对象、属性、方法的概念,而,而WinCC的对象也就是跟的对象也就是跟VB一样,分为
27、属性和事件两种。一样,分为属性和事件两种。青岛大学自动化工程学院青岛大学自动化工程学院第46页,共65页。组态软件组态软件WinCC及其应用及其应用 WinCC对于控件引用一般都采取对于控件引用一般都采取定义变量定义变量使用使用Set 变变量量 对象对象.(方法或属性)(方法或属性)引用变量引用变量来做的。来做的。在变量读取或写入的过程中,我们要接触到一些属性和方法,例在变量读取或写入的过程中,我们要接触到一些属性和方法,例如,如,Read和和Write方法,变量的方法,变量的Value属性,熟练掌握这些属性和方法属性,熟练掌握这些属性和方法相当重要。相当重要。下面解释一下下面解释一下Writ
28、e和和Read方法的语法:方法的语法:Read data:其中:其中data是读取变量的方法,如果是读取变量的方法,如果data=1,直接从,直接从AS系统读取,相当于系统读取,相当于C脚本中的脚本中的Get*wait()函数,如果省略,函数,如果省略,则从则从WinCC变量管理器中建立的变量中读取。变量管理器中建立的变量中读取。Write data,1:其中:其中data是需要写入变量的数值,是需要写入变量的数值,1代表直代表直接写入接写入AS系统,相当于系统,相当于C脚本中的脚本中的Set*wait()函数,函数,1省略,省略,则写入到由则写入到由Wincc变量管理器建立的变量中去。变量管
29、理器建立的变量中去。青岛大学自动化工程学院青岛大学自动化工程学院第47页,共65页。组态软件组态软件WinCC及其应用及其应用读取变量的方法:读取变量的方法:(1)Dim objTag Set objTag=HMIRunTime.Tags(变量名变量名)objTag.Read(2)HMIRunTime.Tags(变量名变量名).Read如果以上例程改成直接读取如果以上例程改成直接读取AS系统变量的话,程序系统变量的话,程序为:为:(1)Dim objTag Set objTag=HMIRunTime.Tags(变量名变量名)objTag.Read,1(2)HMIRunTime.Tags(变量名
30、变量名).Read,1实例实例青岛大学自动化工程学院青岛大学自动化工程学院第48页,共65页。组态软件组态软件WinCC及其应用及其应用写变量的方法:写变量的方法:1 Dim objTag Set objTag=HMIRunTime.Tags(变量名变量名)objTag.Write 1 向变量写入数值向变量写入数值1 也可以写为也可以写为 objTag.Write 10 向变量写入数值向变量写入数值102 HMIRunTime.Tags(变量名变量名).Write 1 也可以写为也可以写为 objTag.Write 10青岛大学自动化工程学院青岛大学自动化工程学院第49页,共65页。组态软件组
31、态软件WinCC及其应用及其应用除了以上方法外,也可以将一个中间变量的值写入:除了以上方法外,也可以将一个中间变量的值写入:Dim objTag,val Set objTag=HMIRunTime.Tags(变量名变量名)objTag.Read val=objTag.Value 中间变量中间变量val存放了变量的值存放了变量的值 objtag.Write val 写入变量中去写入变量中去当然,其余的方法还有很多,这些都需要自己在编程当然,其余的方法还有很多,这些都需要自己在编程过程中总结和灵活运用。过程中总结和灵活运用。青岛大学自动化工程学院青岛大学自动化工程学院第50页,共65页。组态软件组
32、态软件WinCC及其应用及其应用5.2.2 过程、模块和动作过程、模块和动作 过程是一段代码,类似过程是一段代码,类似C语言中的函数,只须创建语言中的函数,只须创建一次,在工程中可以多次调用,省去了很多重复性一次,在工程中可以多次调用,省去了很多重复性的代码。的代码。模块是一个文件,存放着一个或多个过程。模块是一个文件,存放着一个或多个过程。WinCC的模块的模块可以进行密码保护,扩展名为可以进行密码保护,扩展名为“.bmo”。模块根据存储在其。模块根据存储在其中的过程的有效性不同而不同。标准模块包含所有项目可全中的过程的有效性不同而不同。标准模块包含所有项目可全局调用的过程,存放路径是局调用
33、的过程,存放路径是ApLibScriptLibStdModule name.bmo。项。项目模块保护某个项目可用的过程,存放路径是目模块保护某个项目可用的过程,存放路径是 ScriptLib.bmo。青岛大学自动化工程学院青岛大学自动化工程学院第51页,共65页。组态软件组态软件WinCC及其应用及其应用动作总是由触发器启动。在运行状态下,当单击画面上动作总是由触发器启动。在运行状态下,当单击画面上的某个对象,定时时间到,或者某个变量被修改后,都的某个对象,定时时间到,或者某个变量被修改后,都可以触发动作。可以触发动作。动作在全局脚本中定义一次,独立于画面而存在。全动作在全局脚本中定义一次,独
34、立于画面而存在。全局脚本动作只在定义它的工程中有效,在运行状态下局脚本动作只在定义它的工程中有效,在运行状态下独立于画面系统而运行。与画面对象相连接的动作,独立于画面系统而运行。与画面对象相连接的动作,只在定义它的画面中有效。只在定义它的画面中有效。青岛大学自动化工程学院青岛大学自动化工程学院第52页,共65页。组态软件组态软件WinCC及其应用及其应用5.2.3 全局脚本全局脚本VBS编辑器编辑器 青岛大学自动化工程学院青岛大学自动化工程学院第53页,共65页。组态软件组态软件WinCC及其应用及其应用5.2.4 创建过程创建过程 创建一个新过程时,创建一个新过程时,WinCC自动为过程分配
35、一个标准自动为过程分配一个标准的名字的名字“procedure#”,其中,其中#代表序号。可以在编辑代表序号。可以在编辑窗口中修改过程名,以便动作能够调用此过程。当保窗口中修改过程名,以便动作能够调用此过程。当保存过程后,修改后的过程名就会显示在浏览窗口中。存过程后,修改后的过程名就会显示在浏览窗口中。过程名必须是唯一的,如果重名,将被认为是语法错过程名必须是唯一的,如果重名,将被认为是语法错误。误。青岛大学自动化工程学院青岛大学自动化工程学院第54页,共65页。组态软件组态软件WinCC及其应用及其应用例例 求两个变量的平均值。求两个变量的平均值。按照前述步骤建立一个项目模块,输入图按照前述
36、步骤建立一个项目模块,输入图5-21所示代所示代码,编译保存即可。码,编译保存即可。图图5-21 代码例子代码例子青岛大学自动化工程学院青岛大学自动化工程学院第55页,共65页。组态软件组态软件WinCC及其应用及其应用5.2.5 创建动作创建动作 VBS动作分类动作分类动作(action)图形编辑器中的图形对象全局动作(global action)对象属性动态化对象事件触发时间触发变量触发周期触发非周期触发青岛大学自动化工程学院青岛大学自动化工程学院第56页,共65页。组态软件组态软件WinCC及其应用及其应用5.2.6 调试诊断调试诊断VBS脚本脚本 从从WinCC V6.0开始就提供了一
37、个开始就提供了一个VBS调试诊断工具调试诊断工具来分析运行状态下动作的执行情况,包括:来分析运行状态下动作的执行情况,包括:GSC运运行和行和GSC诊断应用窗口以及诊断应用窗口以及VBS调试器。调试器。GSC运行和诊断应用窗口被用来添加到过程画面中,用运行和诊断应用窗口被用来添加到过程画面中,用法同法同ANSI-C脚本。不同的是,如果想要打印输出中间运脚本。不同的是,如果想要打印输出中间运算值到算值到GSC诊断窗口中,诊断窗口中,VBS的语法是:的语法是:HMIRuntime.trace():结果显示在):结果显示在GSC诊断诊断窗口中窗口中青岛大学自动化工程学院青岛大学自动化工程学院第57页
38、,共65页。组态软件组态软件WinCC及其应用及其应用1、调试器、调试器在运行状态下调试脚本可以使用的调试器有以下几在运行状态下调试脚本可以使用的调试器有以下几种:种:(1)Microsoft Script Debugger,包含在,包含在WinCC中,能中,能够在够在Windows2000和和Windows XP环境下应用;环境下应用;(2)InterDev,包含在,包含在Microsoft Visual Studio的安装的安装资源中;资源中;(3)Microsoft Script Editor(MSE)Debugger,包含在包含在Microsoft Office中。中。青岛大学自动化工
39、程学院青岛大学自动化工程学院第58页,共65页。组态软件组态软件WinCC及其应用及其应用2.VBS调试器调试器 青岛大学自动化工程学院青岛大学自动化工程学院第59页,共65页。组态软件组态软件WinCC及其应用及其应用3.调试脚本调试脚本(1)启动脚本调试器,从运行文档窗口中选择要调)启动脚本调试器,从运行文档窗口中选择要调试的脚本,双击运行文档窗口中需要调试的脚本文试的脚本,双击运行文档窗口中需要调试的脚本文件,脚步文件就会在调试窗口中打开(只读)。件,脚步文件就会在调试窗口中打开(只读)。(2)设置断点,断点经常设置在代码中容易出错的地方。)设置断点,断点经常设置在代码中容易出错的地方。
40、光标放到需要设置断点的地方,选择菜单光标放到需要设置断点的地方,选择菜单“DebugToggle Breakpoint”命令或单击工具栏图命令或单击工具栏图标,即可在当前位置设置断点,此时要执行的代码钱标,即可在当前位置设置断点,此时要执行的代码钱标记了一个红点;切换标记了一个红点;切换WinCC到运行状态,触发动作使到运行状态,触发动作使脚本运行,调试器停留在第一个断点处,并用黄色高度脚本运行,调试器停留在第一个断点处,并用黄色高度显示。显示。(3)单步运行。按)单步运行。按F8键单步运行脚本文件,进行调试。键单步运行脚本文件,进行调试。(4)确定或修改变量或属性值。)确定或修改变量或属性值
41、。青岛大学自动化工程学院青岛大学自动化工程学院第60页,共65页。组态软件组态软件WinCC及其应用及其应用5.2.7 WinCC VBS参考模型参考模型 HMIRuntimeActiveProjectActiveScreenDataSetDataItemLoggingAlarmlogsDatalogsScreensScreenActiveScreenItemDataSetDataItemLayersLayerScreenItemsScreenItemTagsTagTagSetTag青岛大学自动化工程学院青岛大学自动化工程学院第61页,共65页。组态软件组态软件WinCC及其应用及其应用5.3
42、 VB for Application 从从WinCC V6.0开始,在图形编辑器中集成了一个开始,在图形编辑器中集成了一个VBA编辑器,可以用来使组态自动化。编辑器,可以用来使组态自动化。VBA与与Microsoft Office提供的提供的VBA编辑器相似,可以直接利用编辑器相似,可以直接利用VBA编程编程经验。经验。VBS和和VBA的区别与联系的区别与联系项目VBAVBS语言Visual BasicVisual Basic可调试可以可以可访问其它应用程序可以可以WinCC已集成功能是是适用范围WinCC组态环境(CS)图形编辑器WinCC运行环境(RT)图形编辑器、全局脚本可访问对象Wi
43、nCC组态环境(CS)图形编辑器、变量(Tags)、报警、归档、文本WinCC组态环境(RT)图形编辑器、变量(Tags)功能近似于动态向导和ODKC脚本和ODK青岛大学自动化工程学院青岛大学自动化工程学院第62页,共65页。5.3.1 VBA对对象模型象模型 ApplicationSymbolLibrariesSymbolLibraryFolderItemsFolderItemToolbarsToolbarToolbarItemsToolbarItemMenusMenuMenuItemsMenuItemDocumentsDocumentDataLanguagesDataLanguageHMI
44、DefaultObjectsHMIObjectsSelectionHMIObject对象对象和选择对象模型可以扩展详细视图:对象可以多语言组态PropertiesPropertyEventsEventActionsActionDynamicViewsViewLayersLayer青岛大学自动化工程学院青岛大学自动化工程学院第63页,共65页。组态软件组态软件WinCC及其应用及其应用5.3.2 VBA编辑器编辑器 青岛大学自动化工程学院青岛大学自动化工程学院第64页,共65页。组态软件组态软件WinCC及其应用及其应用5.3.3 在图形编辑器中使用在图形编辑器中使用VBA VBA在图形编辑器中
45、可以进行如下工作:在图形编辑器中可以进行如下工作:(1)增强图像编辑器的功能,如访问组件库,用户自定义菜单和)增强图像编辑器的功能,如访问组件库,用户自定义菜单和工具栏,多语言组态等;工具栏,多语言组态等;(2)编辑画面,如访问画面属性,编辑层)编辑画面,如访问画面属性,编辑层/缩放设置,创建菜单和缩放设置,创建菜单和工具等;工具等;(3)编辑对象,如创建删除对象,访问对象属性;)编辑对象,如创建删除对象,访问对象属性;(4)给画面和对象添加动态属性,如添加直接变量连接,添加动)给画面和对象添加动态属性,如添加直接变量连接,添加动态对话,添加脚本,添加动作等;态对话,添加脚本,添加动作等;(5)事件处理:对某些事件如在图形编辑器中插入一个对象等做出反)事件处理:对某些事件如在图形编辑器中插入一个对象等做出反应;应;(6)访问外部程序:可访问外部支持)访问外部程序:可访问外部支持VBA的应用程序,如从的应用程序,如从Excel表中读取值,然后再分配给对象属性等。表中读取值,然后再分配给对象属性等。青岛大学自动化工程学院青岛大学自动化工程学院第65页,共65页。