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