版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5章全局脚本5.1ANSI-C脚本5.2全局脚本VBS编辑器5.3VBforApplication青岛大学自动化工程学院第5章全局脚本5.1ANSI-C脚本青岛大学自动化工程学5.1ANSI-C脚本标识符数据类型运算符逻辑运算符程序结构语句函数青岛大学自动化工程学院5.1ANSI-C脚本标识符一.标识符3条规则:
(1)标识符必须只能由字母、数字或下划线3种符号构成,即标识符中只能出现:字母、阿拉伯数字、下划线。(2)标识符必须只能以字母或下划线作为开头。
(3)c语言不允许用户作为自定义对象的标识符:如if、do、for、int等。合法:N,Sum、_total非法:I@m、12h、wang(x)青岛大学自动化工程学院一.标识符3条规则:青岛大学自动化工程学院二.数据类型1.常量常量是在程序执行过程中值不能发生改变的数据,如1、2、-1、3.52.变量变量是在程序执行过程中值可以发生改变的数据。想要定义一个变量,用户需要做如下2件事情:(1)
给出变量名称(符合标识符规则)sumaverage(2)
给出变量的数据类型
青岛大学自动化工程学院二.数据类型1.常量青岛大学自动化工程学院变量数据类型:(1)整型变量a.基本整型以int表示16位-32768~32767b.短整型short(int)16位-32768~32767c.长整型long(int)32位-2147483648~2147483647又分为有符号、无符号(signed)intunsignedint0~65535例:inta,b;inta;longe,f;unsignedshortc,d;青岛大学自动化工程学院变量数据类型:青岛大学自动化工程学院(2)实型变量实型变量分为单精度(float型)、双精度(double型)和长双精度(longdouble型)三类。例:floatx,y;doublez;longdoublet;(3)BOOL变量
青岛大学自动化工程学院(2)实型变量青岛大学自动化工程学院三.运算符1.算术运算符(+-*/%)2.关系运算符(==><>=<=!=)3.逻辑运算符(&&||!)(与或非)4.赋值运算符(=)5.自增,自减运算符作用是使变量的值加1或减1。++I,--I,I++,I--,6.关系运算符及其优先级>>=<<=高==!==低青岛大学自动化工程学院三.运算符1.算术运算符(+-*/%)四.逻辑运算符1.&&逻辑与(相当于AND)2.||逻辑或(相当于OR)3.!逻辑非(相当于NOT)a&&b若a,b都为真,则结果为真a||b若a,b之一为真,则结果为真!a若a为真,则结果为假青岛大学自动化工程学院四.逻辑运算符1.&&逻辑与(相当于AND)青岛大学优先级:!&&||!(非)算术运算符(高)例:c>a+b等效c>(a+b)关系运算符a==b<c等效a==(b<c)&&和||赋值运算符(=)(低)青岛大学自动化工程学院优先级:!&&||五.程序结构为了提高程序设计的质量和效率,现在普遍采用结构化的程序设计方法,结构化程序由若干个基本结构组成,每一个基本结构可以包含一个或多个语句。1.顺序结构AB青岛大学自动化工程学院五.程序结构为了提高程序设计的质量和效率,现在普遍采用2.选择结构真(非0)(0)假ABP青岛大学自动化工程学院2.选择结构ABP青岛大学自动化工程学院派生出多分支结构
ABCDKK=k1K=k2K=k3K=k4青岛大学自动化工程学院派生出多分支结构ABCDKK=k1K=k2K=k3K=k4青循环结构“当”型循环AP假真青岛大学自动化工程学院循环结构AP假真青岛大学自动化工程学院“直到”型循环AP假真青岛大学自动化工程学院“直到”型循环AP假真青岛大学自动化工程学院六.语句1.if语句(实现选择结构)C语言提供了三种形式的if语句(1)if(表达式)例如:if(x>y)语句z=x;(2)if(表达式)例如:if(x>y)语句1z=x;elseelse语句2z=y;(3)if(表达式1)例如:if(number>500)语句1cost=0.15;elseif(表达式2)elseif(number>300)语句2cost=0.10;elseelse语句3cost=0.75;
青岛大学自动化工程学院六.语句1.if语句(实现选择结构)C语言提供了求三个数中的最大数。floata,b,c,max;a=5.6;b=9.9;c=4.7;if(a<b)if(b<c){max=c;}elsemax=b;elseif(a<c)max=c;elsemax=a;青岛大学自动化工程学院求三个数中的最大数。青岛大学自动化工程学院2.switch语句(多分支结构)形式:switch(表达式){case常量表达式1:语句1;break;case常量表达式2:语句2;break;default:语句3}青岛大学自动化工程学院2.switch语句(多分支结构)青岛大学自动化工例:要求按照考试等级打印出百分制分数段switch(grade){case1:printf(“85~100”);break;case2:printf(“70~84”);break;case3:printf(“60~69”);break;case4:printf(“<60”);break;default:printf(“error”);}青岛大学自动化工程学院例:要求按照考试等级打印出百分制分数段青岛大学自动化工程学院3.循环控制语句1.while语句实现"当"型循环结构例:求从1加到100的和。inti,sum=0;i=1;while(i<=100){sum=sum+i;i++;}青岛大学自动化工程学院3.循环控制语句青岛大学自动化工程学院2.do–while语句inti,sum=0;i=1;do{sum=sum+i;i++;}while(i<=100);两者区别:while后的表达式一开始就为假,结果不一样。青岛大学自动化工程学院2.do–while语句青岛大学自动化工程学院3.for语句(完全代替while,do-while)形式:for(表达式1;表达式2;表达式3)语句例:for(i=1;i<=100;i++){sum=sum+i;}求解表达式1语句for语句的下一语句表达式2求解表达式3假真青岛大学自动化工程学院3.for语句(完全代替while,do-while)求解七.函数一个较大的程序一般应分为若干个程序模块,每一个模块用来实现一个特定的功能。C语言中这样的功能是由函数完成的。从用户使用的角度来看,函数有两种:1.标准函数,既库函数。2.用户自己定义的函数,即项目函数。青岛大学自动化工程学院七.函数一个较大的程序一般应分为若干个程序模块,每一个模块用从函数的形式看,分为两类:1.无参函数2.有参函数intmax(x,y)intx,y;{intz;if(x>y)z=x;elsez=y;return(z);}青岛大学自动化工程学院从函数的形式看,分为两类:青岛大学自动化工程学院变量的输入和输出SetTag和GetTag
青岛大学自动化工程学院变量的输入和输出青岛大学自动化工程学院5.1.2WinCC中的C概述1、函数和动作的关系动作由触发器启动,函数是动作的组成部分,没有触发器,即函数在运行时不能自己执行触发器动作C代码调用一个函数C代码函数C代码青岛大学自动化工程学院5.1.2WinCC中的C概述1、函数和动作的关系触发器2、触发器的类型WinCC中的触发器分为时间触发和变量触发等触发器类型定时器变量循环执行(在固定时间间隔内重复执行)起始点时间确定日:月:时间周期的循环监视变量值根据变化非循环(只执行一次,起始点由日期/时间确定)青岛大学自动化工程学院2、触发器的类型触发器类型定时器变量循环执行(在固定时间间隔5.1.3全局脚本C编辑器浏览窗口编辑窗口输出窗口可以看出,该编辑器中有4种类型的函数:项目函数,标准函数,内部函数和动作青岛大学自动化工程学院5.1.3全局脚本C编辑器浏览窗口编辑窗口输出窗口可以看5.1.4创建函数[例]编写一个名为CelsiusConv用以实现华氏温度到摄氏温度转换的函数。在全局脚本C编辑器浏览窗口的项目函数项单击鼠标右键选择“新建”添加一个新的项目函数,如图5-8所示。青岛大学自动化工程学院5.1.4创建函数[例]编写一个名为CelsiusCo青岛大学自动化工程学院青岛大学自动化工程学院5.1.5创建动作1.局部动作局部动作的例子是图形编辑器中的对象调用C动作。2.全局动作编写全局动作的代码本体与任何其它函数相同,但不能改变代码中的函数名或修改返回值。全局动作位于与直接连接相同的执行线程上,如果它的执行时间太长,会影响项目的性能。一般来说,动作应短小简明。青岛大学自动化工程学院5.1.5创建动作1.局部动作2.全局动作青岛大学自[例]创建一个全局动作,用来实现每隔1秒名为Tag10的变量值自动加1。启动全局脚本C编辑器,右键单击“动作全局动作”选择“新建”,创建一个新的全局动作,通过菜单“文件另存为INC”保存为INC.PAS文件。青岛大学自动化工程学院[例]创建一个全局动作,用来实现每隔1秒名为Tag10的变青岛大学自动化工程学院青岛大学自动化工程学院5.1.6使用诊断输出窗口WinCC有三个工具用来分析动作的运行行为,即应用程序窗口GSC运行系统、GSC诊断和应用程序apdiag.exe。青岛大学自动化工程学院5.1.6使用诊断输出窗口WinCC有三个工具用来分析动[例]用时间和变量触发器生成一个动作。右键单击全局脚本编辑器“全局动作”选择“新建”,出现一个空白的工作区,加入图5-16所示代码,注意返回数据类型和名称不能改变。动作不接受参数,且必须含有返回语句。此处代码用来检查变量Tag10是否为1,如果为1,将打印输出当前的时间,即变量系统变量NewTag_1中的时间。青岛大学自动化工程学院[例]用时间和变量触发器生成一个动作。青岛大学自动化工程学青岛大学自动化工程学院青岛大学自动化工程学院青岛大学自动化工程学院青岛大学自动化工程学院5.2全局脚本VBS编辑器VBScript是一种VB脚本语言,它是VB的一个子集,可以实现部分VB的功能。变量声明变量的一种方式是使用dim语句、public语句和private语句在script中显式声明变量。如:dimdegreesfahrenheit声明多个变量时,使用逗号分隔变量。如:dimtop,bottom,left,right青岛大学自动化工程学院5.2全局脚本VBS编辑器VBScript另一种方式是通过直接在script中使用变量名这一简单方式隐式声明变量。但通常这不是一个好习惯,因为这样有时会由于变量名被拼错而导致在运行script时出现意外的结果。因此,最好使用optionexplicit语句显式声明所有变量,并将其作为script的第一条语句。青岛大学自动化工程学院另一种方式是通过直接在script中使用变量名这一简单方可以使用const语句在VBScript中创建自定义常数。如:constmystring="这是一个字符串。"constmyage=49注意字符串文字包含在两个引号(“”)之间。这是区分字符串型常数和数值型常数的最明显的方法。日期文字和时间文字包含在两个井号(#)之间。如:constcutoffdate=#6-1-97#青岛大学自动化工程学院可以使用const语句在VBScript中创建自定义VBScript有一套完整的运算符,包括算术运算符、比较运算符、连接运算符和逻辑运算符。算术运算符比较运算符逻辑运算符描述符号描述符号描述符号求幂负号乘除整除求余加减^-*/\mod+-等于不等于小于大于小于等于大于等于对象引用比较=<><><=>=is逻辑非逻辑与逻辑或逻辑异或逻辑等逻辑隐notandorxoreqvimp字符串连接&青岛大学自动化工程学院VBScript有一套完整的运算符,包括算术运算符、比较运当乘号与除号同时出现在一个表达式中时,按从左到右的顺序计算乘、除运算符。同样当加与减同时出现在一个表达式中时,按从左到右的顺序计算加、减运算符。
字符串连接(&)运算符不是算术运算符,但是在优先级顺序中,它排在所有算术运算符之后和所有比较运算符之前。is运算符是对象引用比较运算符。它并不比较对象或对象的值,而只是进行检查,判断两个对象引用是否引用同一个对象。青岛大学自动化工程学院当乘号与除号同时出现在一个表达式中时,按从左到使用条件语句和循环语句可以控制script的流程。使用条件语句可以编写进行判断和重复操作的VBScript代码。在VBScript中可使用以下条件语句:if...then...else语句selectcase语句
青岛大学自动化工程学院使用条件语句和循环语句可以控制script的流程。使用条在VBScript中可使用下列循环语句:do...loop:当(或直到)条件为true时循环。while...wend:当条件为true时循环。for...next:指定循环次数,使用计数器重复运行语句。foreach...next:对于集合中的每项或数组中的每个元素,重复执行一组语句。青岛大学自动化工程学院在VBScript中可使用下列循环语句:青岛大学自动化在VBScript中,过程被分为两类:sub过程和function过程。sub过程sub过程是包含在sub和endsub语句之间的一组VBScript语句,执行操作但不返回值。sub过程可以使用参数(由调用过程传递的常数、变量或表达式)。如果sub过程无任何参数,则sub语句必须包含空括号()。青岛大学自动化工程学院在VBScript中,过程被分为两类:sub过程和ffunction过程function过程是包含在function和endfunction语句之间的一组VBScript语句。function过程与sub过程类似,但是function过程可以返回值。function过程可以使用参数(由调用过程传递的常数、变量或表达式)。如果function过程无任何参数,则function语句必须包含空括号()。function过程通过函数名返回一个值,这个值是在过程的语句中赋给函数名的。青岛大学自动化工程学院function过程青岛大学自动化工程学院WinCC中的VBS也有对象、属性、方法的概念,而WinCC的对象也就是跟VB一样,分为属性和事件两种。青岛大学自动化工程学院WinCC中的VBS也有对象、属性、方法的概念,而WinCWinCC对于控件引用一般都采取定义变量使用Set
变量
=对象.(方法或属性)引用变量来做的。
在变量读取或写入的过程中,我们要接触到一些属性和方法,例如,Read和Write方法,变量的Value属性,熟练掌握这些属性和方法相当重要。
下面解释一下Write和Read方法的语法:
Read
data:其中data是读取变量的方法,如果data=1,直接从AS系统读取,相当于C脚本中的Get*****wait()函数,如果省略,则从WinCC变量管理器中建立的变量中读取。
Write
data,1:其中data是需要写入变量的数值,1代表直接写入AS系统,相当于C脚本中的Set*****wait()函数,1省略,则写入到由Wincc变量管理器建立的变量中去。青岛大学自动化工程学院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("变量名").Read,1实例青岛大学自动化工程学院读取变量的方法:实例青岛大学自动化工程学院写变量的方法:
1
Dim
objTag
Set
objTag=HMIRunTime.Tags("变量名")
objTag.Write
1
'向变量写入数值1
'也可以写为
objTag.Write
10
向变量写入数值10
2
HMIRunTime.Tags("变量名").Write
1
'也可以写为
objTag.Write
10
青岛大学自动化工程学院写变量的方法:
1
Dim
objTag
Set
o除了以上方法外,也可以将一个中间变量的值写入:
Dim
objTag,val
Set
objTag=HMIRunTime.Tags("变量名")
objTag.Read
val=objTag.Value
'中间变量val存放了变量的值
objtag.Write
val
'写入变量中去
当然,其余的方法还有很多,这些都需要自己在编程过程中总结和灵活运用。青岛大学自动化工程学院除了以上方法外,也可以将一个中间变量的值写入:
Dim
5.2.2过程、模块和动作过程是一段代码,类似C语言中的函数,只须创建一次,在工程中可以多次调用,省去了很多重复性的代码。模块是一个文件,存放着一个或多个过程。WinCC的模块可以进行密码保护,扩展名为“.bmo”。模块根据存储在其中的过程的有效性不同而不同。标准模块包含所有项目可全局调用的过程,存放路径是<WinCCinstallationdirectory>\ApLib\ScriptLibStd\<Modulename.bmo。项目模块保护某个项目可用的过程,存放路径是<Projectdirectory>\ScriptLib\<Modulename>.bmo。青岛大学自动化工程学院5.2.2过程、模块和动作过程是一段代码,类似C语言中的动作总是由触发器启动。在运行状态下,当单击画面上的某个对象,定时时间到,或者某个变量被修改后,都可以触发动作。动作在全局脚本中定义一次,独立于画面而存在。全局脚本动作只在定义它的工程中有效,在运行状态下独立于画面系统而运行。与画面对象相连接的动作,只在定义它的画面中有效。青岛大学自动化工程学院动作总是由触发器启动。在运行状态下,当单击画面上的某个对象,5.2.3全局脚本VBS编辑器青岛大学自动化工程学院5.2.3全局脚本VBS编辑器青岛大学自动化工程学院5.2.4创建过程创建一个新过程时,WinCC自动为过程分配一个标准的名字“procedure#”,其中#代表序号。可以在编辑窗口中修改过程名,以便动作能够调用此过程。当保存过程后,修改后的过程名就会显示在浏览窗口中。过程名必须是唯一的,如果重名,将被认为是语法错误。青岛大学自动化工程学院5.2.4创建过程创建一个新过程时,WinCC自动为过程[例]求两个变量的平均值。按照前述步骤建立一个项目模块,输入图5-21所示代码,编译保存即可。图5-21代码例子青岛大学自动化工程学院[例]求两个变量的平均值。青岛大学自动化工程学院5.2.5创建动作VBS动作分类动作(action)图形编辑器中的图形对象全局动作(globalaction)对象属性动态化对象事件触发时间触发变量触发周期触发非周期触发青岛大学自动化工程学院5.2.5创建动作VBS动作分类动作图形编辑器中的图形对5.2.6调试诊断VBS脚本从WinCCV6.0开始就提供了一个VBS调试诊断工具来分析运行状态下动作的执行情况,包括:GSC运行和GSC诊断应用窗口以及VBS调试器。GSC运行和诊断应用窗口被用来添加到过程画面中,用法同ANSI-C脚本。不同的是,如果想要打印输出中间运算值到GSC诊断窗口中,VBS的语法是:HMIRuntime.trace(<output>):结果显示在GSC诊断窗口中青岛大学自动化工程学院5.2.6调试诊断VBS脚本从WinCCV6.0开始就1、调试器在运行状态下调试脚本可以使用的调试器有以下几种:(1)MicrosoftScriptDebugger,包含在WinCC中,能够在Windows2000和WindowsXP环境下应用;(2)InterDev,包含在MicrosoftVisualStudio的安装资源中;(3)MicrosoftScriptEditor(MSE)Debugger,包含在MicrosoftOffice中。青岛大学自动化工程学院1、调试器青岛大学自动化工程学院2.VBS调试器青岛大学自动化工程学院2.VBS调试器青岛大学自动化工程学院3.调试脚本(1)启动脚本调试器,从运行文档窗口中选择要调试的脚本,双击运行文档窗口中需要调试的脚本文件,脚步文件就会在调试窗口中打开(只读)。(2)设置断点,断点经常设置在代码中容易出错的地方。光标放到需要设置断点的地方,选择菜单“DebugToggleBreakpoint”命令或单击工具栏图标,即可在当前位置设置断点,此时要执行的代码钱标记了一个红点;切换WinCC到运行状态,触发动作使脚本运行,调试器停留在第一个断点处,并用黄色高度显示。(3)单步运行。按F8键单步运行脚本文件,进行调试。(4)确定或修改变量或属性值。青岛大学自动化工程学院3.调试脚本青岛大学自动化工程学院5.2.7WinCCVBS参考模型HMIRuntimeActiveProjectActiveScreenDataSetDataItemLoggingAlarmlogsDatalogsScreensScreenActiveScreenItemDataSetDataItemLayersLayerScreenItemsScreenItemTagsTagTagSetTag青岛大学自动化工程学院5.2.7WinCCVBS参考模型HMIRuntime5.3VBforApplication从WinCCV6.0开始,在图形编辑器中集成了一个VBA编辑器,可以用来使组态自动化。VBA与MicrosoftOffice提供的VBA编辑器相似,可以直接利用VBA编程经验。VBS和VBA的区别与联系项目VBAVBS语言VisualBasicVisualBasic可调试可以可以可访问其它应用程序可以可以WinCC已集成功能是是适用范围WinCC组态环境(CS)图形编辑器WinCC运行环境(RT)图形编辑器、全局脚本可访问对象WinCC组态环境(CS)图形编辑器、变量(Tags)、报警、归档、文本WinCC组态环境(RT)图形编辑器、变量(Tags)功能近似于动态向导和ODKC脚本和ODK青岛大学自动化工程学院5.3VBforApplication从WinCC5.3.1VBA对象模型ApplicationSymbolLibrariesSymbolLibraryFolderItemsFolderItemToolbarsToolbarToolbarItemsToolbarItemMenusMenuMenuItemsMenuItemDocumentsDocumentDataLanguagesDataLanguageHMIDefaultObjectsHMIObjectsSelectionHMIObject对象对象和选择对象模型可以扩展详细视图:对象可以多语言组态PropertiesPropertyEventsEventActionsActionDynamicViewsViewLayersLayer青岛大学自动化工程学院5.3.1VBA对象模型ApplicationSymbo5.3.2VBA编辑器青岛大学自动化工程学院5.3.2VBA编辑器青岛大学自动化工程学院5.3.3在图形编辑器中使用VBAVBA在图形编辑器中可以进行如下工作:(1)增强图像编辑器的功能,如访问组件库,用户自定义菜单和工具栏,多语言组态等;(2)编辑画面,如访问画面属性,编辑层/缩放设置,创建菜单和工具等;(3)编辑对象,如创建删除对象,访问对象属性;(4)给画面和对象添加动态属性,如添加直接变量连接,添加动态对话,添加脚本,添加动作等;(5)事件处理:对某些事件如在图形编辑器中插入一个对象等做出反应;(6)访问外部程序:可访问外部支持VBA的应用程序,如从Excel表中读取值,然后再分配给对象属性等。青岛大学自动化工程学院5.3.3在图形编辑器中使用VBAVBA在图形编辑器中可第5章全局脚本5.1ANSI-C脚本5.2全局脚本VBS编辑器5.3VBforApplication青岛大学自动化工程学院第5章全局脚本5.1ANSI-C脚本青岛大学自动化工程学5.1ANSI-C脚本标识符数据类型运算符逻辑运算符程序结构语句函数青岛大学自动化工程学院5.1ANSI-C脚本标识符一.标识符3条规则:
(1)标识符必须只能由字母、数字或下划线3种符号构成,即标识符中只能出现:字母、阿拉伯数字、下划线。(2)标识符必须只能以字母或下划线作为开头。
(3)c语言不允许用户作为自定义对象的标识符:如if、do、for、int等。合法:N,Sum、_total非法:I@m、12h、wang(x)青岛大学自动化工程学院一.标识符3条规则:青岛大学自动化工程学院二.数据类型1.常量常量是在程序执行过程中值不能发生改变的数据,如1、2、-1、3.52.变量变量是在程序执行过程中值可以发生改变的数据。想要定义一个变量,用户需要做如下2件事情:(1)
给出变量名称(符合标识符规则)sumaverage(2)
给出变量的数据类型
青岛大学自动化工程学院二.数据类型1.常量青岛大学自动化工程学院变量数据类型:(1)整型变量a.基本整型以int表示16位-32768~32767b.短整型short(int)16位-32768~32767c.长整型long(int)32位-2147483648~2147483647又分为有符号、无符号(signed)intunsignedint0~65535例:inta,b;inta;longe,f;unsignedshortc,d;青岛大学自动化工程学院变量数据类型:青岛大学自动化工程学院(2)实型变量实型变量分为单精度(float型)、双精度(double型)和长双精度(longdouble型)三类。例:floatx,y;doublez;longdoublet;(3)BOOL变量
青岛大学自动化工程学院(2)实型变量青岛大学自动化工程学院三.运算符1.算术运算符(+-*/%)2.关系运算符(==><>=<=!=)3.逻辑运算符(&&||!)(与或非)4.赋值运算符(=)5.自增,自减运算符作用是使变量的值加1或减1。++I,--I,I++,I--,6.关系运算符及其优先级>>=<<=高==!==低青岛大学自动化工程学院三.运算符1.算术运算符(+-*/%)四.逻辑运算符1.&&逻辑与(相当于AND)2.||逻辑或(相当于OR)3.!逻辑非(相当于NOT)a&&b若a,b都为真,则结果为真a||b若a,b之一为真,则结果为真!a若a为真,则结果为假青岛大学自动化工程学院四.逻辑运算符1.&&逻辑与(相当于AND)青岛大学优先级:!&&||!(非)算术运算符(高)例:c>a+b等效c>(a+b)关系运算符a==b<c等效a==(b<c)&&和||赋值运算符(=)(低)青岛大学自动化工程学院优先级:!&&||五.程序结构为了提高程序设计的质量和效率,现在普遍采用结构化的程序设计方法,结构化程序由若干个基本结构组成,每一个基本结构可以包含一个或多个语句。1.顺序结构AB青岛大学自动化工程学院五.程序结构为了提高程序设计的质量和效率,现在普遍采用2.选择结构真(非0)(0)假ABP青岛大学自动化工程学院2.选择结构ABP青岛大学自动化工程学院派生出多分支结构
ABCDKK=k1K=k2K=k3K=k4青岛大学自动化工程学院派生出多分支结构ABCDKK=k1K=k2K=k3K=k4青循环结构“当”型循环AP假真青岛大学自动化工程学院循环结构AP假真青岛大学自动化工程学院“直到”型循环AP假真青岛大学自动化工程学院“直到”型循环AP假真青岛大学自动化工程学院六.语句1.if语句(实现选择结构)C语言提供了三种形式的if语句(1)if(表达式)例如:if(x>y)语句z=x;(2)if(表达式)例如:if(x>y)语句1z=x;elseelse语句2z=y;(3)if(表达式1)例如:if(number>500)语句1cost=0.15;elseif(表达式2)elseif(number>300)语句2cost=0.10;elseelse语句3cost=0.75;
青岛大学自动化工程学院六.语句1.if语句(实现选择结构)C语言提供了求三个数中的最大数。floata,b,c,max;a=5.6;b=9.9;c=4.7;if(a<b)if(b<c){max=c;}elsemax=b;elseif(a<c)max=c;elsemax=a;青岛大学自动化工程学院求三个数中的最大数。青岛大学自动化工程学院2.switch语句(多分支结构)形式:switch(表达式){case常量表达式1:语句1;break;case常量表达式2:语句2;break;default:语句3}青岛大学自动化工程学院2.switch语句(多分支结构)青岛大学自动化工例:要求按照考试等级打印出百分制分数段switch(grade){case1:printf(“85~100”);break;case2:printf(“70~84”);break;case3:printf(“60~69”);break;case4:printf(“<60”);break;default:printf(“error”);}青岛大学自动化工程学院例:要求按照考试等级打印出百分制分数段青岛大学自动化工程学院3.循环控制语句1.while语句实现"当"型循环结构例:求从1加到100的和。inti,sum=0;i=1;while(i<=100){sum=sum+i;i++;}青岛大学自动化工程学院3.循环控制语句青岛大学自动化工程学院2.do–while语句inti,sum=0;i=1;do{sum=sum+i;i++;}while(i<=100);两者区别:while后的表达式一开始就为假,结果不一样。青岛大学自动化工程学院2.do–while语句青岛大学自动化工程学院3.for语句(完全代替while,do-while)形式:for(表达式1;表达式2;表达式3)语句例:for(i=1;i<=100;i++){sum=sum+i;}求解表达式1语句for语句的下一语句表达式2求解表达式3假真青岛大学自动化工程学院3.for语句(完全代替while,do-while)求解七.函数一个较大的程序一般应分为若干个程序模块,每一个模块用来实现一个特定的功能。C语言中这样的功能是由函数完成的。从用户使用的角度来看,函数有两种:1.标准函数,既库函数。2.用户自己定义的函数,即项目函数。青岛大学自动化工程学院七.函数一个较大的程序一般应分为若干个程序模块,每一个模块用从函数的形式看,分为两类:1.无参函数2.有参函数intmax(x,y)intx,y;{intz;if(x>y)z=x;elsez=y;return(z);}青岛大学自动化工程学院从函数的形式看,分为两类:青岛大学自动化工程学院变量的输入和输出SetTag和GetTag
青岛大学自动化工程学院变量的输入和输出青岛大学自动化工程学院5.1.2WinCC中的C概述1、函数和动作的关系动作由触发器启动,函数是动作的组成部分,没有触发器,即函数在运行时不能自己执行触发器动作C代码调用一个函数C代码函数C代码青岛大学自动化工程学院5.1.2WinCC中的C概述1、函数和动作的关系触发器2、触发器的类型WinCC中的触发器分为时间触发和变量触发等触发器类型定时器变量循环执行(在固定时间间隔内重复执行)起始点时间确定日:月:时间周期的循环监视变量值根据变化非循环(只执行一次,起始点由日期/时间确定)青岛大学自动化工程学院2、触发器的类型触发器类型定时器变量循环执行(在固定时间间隔5.1.3全局脚本C编辑器浏览窗口编辑窗口输出窗口可以看出,该编辑器中有4种类型的函数:项目函数,标准函数,内部函数和动作青岛大学自动化工程学院5.1.3全局脚本C编辑器浏览窗口编辑窗口输出窗口可以看5.1.4创建函数[例]编写一个名为CelsiusConv用以实现华氏温度到摄氏温度转换的函数。在全局脚本C编辑器浏览窗口的项目函数项单击鼠标右键选择“新建”添加一个新的项目函数,如图5-8所示。青岛大学自动化工程学院5.1.4创建函数[例]编写一个名为CelsiusCo青岛大学自动化工程学院青岛大学自动化工程学院5.1.5创建动作1.局部动作局部动作的例子是图形编辑器中的对象调用C动作。2.全局动作编写全局动作的代码本体与任何其它函数相同,但不能改变代码中的函数名或修改返回值。全局动作位于与直接连接相同的执行线程上,如果它的执行时间太长,会影响项目的性能。一般来说,动作应短小简明。青岛大学自动化工程学院5.1.5创建动作1.局部动作2.全局动作青岛大学自[例]创建一个全局动作,用来实现每隔1秒名为Tag10的变量值自动加1。启动全局脚本C编辑器,右键单击“动作全局动作”选择“新建”,创建一个新的全局动作,通过菜单“文件另存为INC”保存为INC.PAS文件。青岛大学自动化工程学院[例]创建一个全局动作,用来实现每隔1秒名为Tag10的变青岛大学自动化工程学院青岛大学自动化工程学院5.1.6使用诊断输出窗口WinCC有三个工具用来分析动作的运行行为,即应用程序窗口GSC运行系统、GSC诊断和应用程序apdiag.exe。青岛大学自动化工程学院5.1.6使用诊断输出窗口WinCC有三个工具用来分析动[例]用时间和变量触发器生成一个动作。右键单击全局脚本编辑器“全局动作”选择“新建”,出现一个空白的工作区,加入图5-16所示代码,注意返回数据类型和名称不能改变。动作不接受参数,且必须含有返回语句。此处代码用来检查变量Tag10是否为1,如果为1,将打印输出当前的时间,即变量系统变量NewTag_1中的时间。青岛大学自动化工程学院[例]用时间和变量触发器生成一个动作。青岛大学自动化工程学青岛大学自动化工程学院青岛大学自动化工程学院青岛大学自动化工程学院青岛大学自动化工程学院5.2全局脚本VBS编辑器VBScript是一种VB脚本语言,它是VB的一个子集,可以实现部分VB的功能。变量声明变量的一种方式是使用dim语句、public语句和private语句在script中显式声明变量。如:dimdegreesfahrenheit声明多个变量时,使用逗号分隔变量。如:dimtop,bottom,left,right青岛大学自动化工程学院5.2全局脚本VBS编辑器VBScript另一种方式是通过直接在script中使用变量名这一简单方式隐式声明变量。但通常这不是一个好习惯,因为这样有时会由于变量名被拼错而导致在运行script时出现意外的结果。因此,最好使用optionexplicit语句显式声明所有变量,并将其作为script的第一条语句。青岛大学自动化工程学院另一种方式是通过直接在script中使用变量名这一简单方可以使用const语句在VBScript中创建自定义常数。如:constmystring="这是一个字符串。"constmyage=49注意字符串文字包含在两个引号(“”)之间。这是区分字符串型常数和数值型常数的最明显的方法。日期文字和时间文字包含在两个井号(#)之间。如:constcutoffdate=#6-1-97#青岛大学自动化工程学院可以使用const语句在VBScript中创建自定义VBScript有一套完整的运算符,包括算术运算符、比较运算符、连接运算符和逻辑运算符。算术运算符比较运算符逻辑运算符描述符号描述符号描述符号求幂负号乘除整除求余加减^-*/\mod+-等于不等于小于大于小于等于大于等于对象引用比较=<><><=>=is逻辑非逻辑与逻辑或逻辑异或逻辑等逻辑隐notandorxoreqvimp字符串连接&青岛大学自动化工程学院VBScript有一套完整的运算符,包括算术运算符、比较运当乘号与除号同时出现在一个表达式中时,按从左到右的顺序计算乘、除运算符。同样当加与减同时出现在一个表达式中时,按从左到右的顺序计算加、减运算符。
字符串连接(&)运算符不是算术运算符,但是在优先级顺序中,它排在所有算术运算符之后和所有比较运算符之前。is运算符是对象引用比较运算符。它并不比较对象或对象的值,而只是进行检查,判断两个对象引用是否引用同一个对象。青岛大学自动化工程学院当乘号与除号同时出现在一个表达式中时,按从左到使用条件语句和循环语句可以控制script的流程。使用条件语句可以编写进行判断和重复操作的VBScript代码。在VBScript中可使用以下条件语句:if...then...else语句selectcase语句
青岛大学自动化工程学院使用条件语句和循环语句可以控制script的流程。使用条在VBScript中可使用下列循环语句:do...loop:当(或直到)条件为true时循环。while...wend:当条件为true时循环。for...next:指定循环次数,使用计数器重复运行语句。foreach...next:对于集合中的每项或数组中的每个元素,重复执行一组语句。青岛大学自动化工程学院在VBScript中可使用下列循环语句:青岛大学自动化在VBScript中,过程被分为两类:sub过程和function过程。sub过程sub过程是包含在sub和endsub语句之间的一组VBScript语句,执行操作但不返回值。sub过程可以使用参数(由调用过程传递的常数、变量或表达式)。如果sub过程无任何参数,则sub语句必须包含空括号()。青岛大学自动化工程学院在VBScript中,过程被分为两类:sub过程和ffunction过程function过程是包含在function和endfunction语句之间的一组VBScript语句。function过程与sub过程类似,但是function过程可以返回值。function过程可以使用参数(由调用过程传递的常数、变量或表达式)。如果function过程无任何参数,则function语句必须包含空括号()。function过程通过函数名返回一个值,这个值是在过程的语句中赋给函数名的。青岛大学自动化工程学院function过程青岛大学自动化工程学院WinCC中的VBS也有对象、属性、方法的概念,而WinCC的对象也就是跟VB一样,分为属性和事件两种。青岛大学自动化工程学院WinCC中的VBS也有对象、属性、方法的概念,而WinCWinCC对于控件引用一般都采取定义变量使用Set
变量
=对象.(方法或属性)引用变量来做的。
在变量读取或写入的过程中,我们要接触到一些属性和方法,例如,Read和Write方法,变量的Value属性,熟练掌握这些属性和方法相当重要。
下面解释一下Write和Read方法的语法:
Read
data:其中data是读取变量的方法,如果data=1,直接从AS系统读取,相当于C脚本中的Get*****wait()函数,如果省略,则从WinCC变量管理器中建立的变量中读取。
Write
data,1:其中data是需要写入变量的数值,1代表直接写入AS系统,相当于C脚本中的Set*****wait()函数,1省略,则写入到由Wincc变量管理器建立的变量中去。青岛大学自动化工程学院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("变量名").Read,1实例青岛大学自动化工程学院读取变量的方法:实例青岛大学自动化工程学院写变量的方法:
1
Dim
objTag
Set
objTag=HMIRunTime.Tags("变量名")
objTag.Write
1
'向变量写入数值1
'也可以写为
objTag.Write
10
向变量写入数值10
2
HMIRunTime.Tags("变量名").Write
1
'也可以写为
objTag.Write
10
青岛大学自动化工程学院写变量的方法:
1
Dim
objTag
Set
o除了以上方法外,也可以将一个中间变量的值写入:
Dim
objTag,val
Set
objTag=HMIRunTime.Tags("变量名")
objTag.Read
val=objTag.Value
'中间变量val存放了变量的值
objtag.Write
val
'写入变量中去
当然,其余的方法还有很多,这些都需要自己在编程过程中总结和灵活运用。青岛大学自动化工程学院除了以上方法外,也可以将一个中间变量的值写入:
Dim
5.2.2过程、模块和动作过程是一段代码,类似C语言中的函数,只须创建一次,在工程中可以多次调用,省去了很多重复性的代码。模块是一个文件,存放着一个或多个过程。WinCC的模块可以进行密码保护,扩展名为“.bmo”。模块根据存储在其中的过程的有效性不同而不同。标准模块包含所有项目可全局调用的过程,存放路径是<WinCCinstallationdirectory>\ApLib\ScriptLibStd\<Modulename.bmo。项目模块保护某个项目可用的过程,存放路径是<Projectdirectory>\ScriptLib\<Modulename>.bmo。青岛大学自动化工程学院5.2.2过程、模块和动作过程是一段代码,类似C语言中的动作总是由触发器启动。在运行状态下,当单击画面上的某个对象,定时时间到,或者某个变量被修改后,都可以触发动作。动作在全局脚本中定义一次,独立于画面而存在。全局脚本动作只在定义它的工程中有效,在运行状态下独立于画面系统而运行。与画面对象相连接的动作,只在定义它的画面中有效。青岛大学自动化工程学院动作总是由触发器启动。在运行状态下,当单击画面上的某个对象,5.2.3全局脚本VBS编辑器青岛大学自动化工程学院5
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024至2030年中国银叶玲珑椰子棕榈数据监测研究报告
- 钢结构课程设计屋架图纸
- 面粉厂通风课程设计
- 2024至2030年中国高级油烟墨汁数据监测研究报告
- 人工湿地工程学课程设计
- 2024至2030年中国精纺纱面料行业投资前景及策略咨询研究报告
- 2024至2030年中国热熔注塑异径管行业投资前景及策略咨询研究报告
- 2024年硝苯地平控释片项目可行性研究报告
- 锻炼决断力的课程设计
- 江雪的意境课程设计
- 坐井观天 (5)
- 小学三年级上册综合实践-6.1昆虫的美食-(14张)ppt
- 起重机设计手册
- 女性生殖系统解剖完整版
- 定量装车控制系统方案书
- 到货验收单(共1页)
- 吉林市基准地价(2009年)
- 人教版八年级物理上册全知识点大全
- 破产管理人报酬计算器
- 国家生态环境建设项目管理办法
- 秦腔传统剧《草坡面理》
评论
0/150
提交评论