《《脚本程序MCGS》PPT课件》由会员分享,可在线阅读,更多相关《《脚本程序MCGS》PPT课件(32页珍藏版)》请在金锄头文库上搜索。
1、脚本程序脚本程序什么是脚本程序什么是脚本程序l脚本程序是一种需要在特定的宿主程序中运行的程序。l脚本程序的编程语法类似于Basic语言。 l用户脚本程序是由用户编制的、用来完成特定操作和处理的程序。脚本程序应用场合脚本程序应用场合l在“脚本程序”策略构件中使用。l在“标准按钮”的“脚本程序”中使用。l在事件响应中使用脚本函数。l在“菜单”的“脚本程序”中使用。 l在“用户窗口”的“启动脚本”、“循环脚本”、“退出脚本”中使用。 脚本程序基本语句l脚本程序是为了实现流程的控制及对象操作处理,包括了几种最简单的语句:赋值语句、条件语句、循环语句、退出语句和注释语句。赋值语句l赋值语句的形式为:数据
2、对象数据对象 = = 表达式。表达式。l赋值号左边必须是能够读写的数据对象。l赋值号的右边为表达式,表达式的类型必须与左边数据对象值的类型相符合。l液位1=7l液位1=液位2 l液位1=液位1/2条件语句l条件语句有如下三种形式:lIf 表达式 Then 语句lIf 表达式 Then l 语句lEndIflIf 表达式Thenl If 表达式 Then l 语句l EndIflElsel 语句lEndIf条件语句允许多级嵌套,即条件语句中可以包含新的条件语句,MCGS脚本程序的条件语句最多可以有8级嵌套。 “IF”语句的表达式的值为真,条件成立,执行“Then”后的语句,否则,条件不成立,将不
3、执行该条件块中包含的语句,开始执行该条件块后面的语句。值为字符型的表达式不能作为“IF”语句中的表达式。循环语句循环语句l循环语句为While和EndWhile,其结构为:lWhileWhile 条件表达式l.lEndWhileEndWhilel当条件表达式成立时(非零),循环执行While和EndWhile之间的语句。直到条件表达式不成立(为零),退出。 退出语句l退出语句为“ExitExit”,用于中断脚本程序的运行,停止执行其后面的语句。一般在条件语句中使用退出语句,以便在某种条件下,停止并退出脚本程序的执行。 注释语句l以单引号开头的语句称为注释语句,注释语句在脚本程序中只起到注释说明
4、的作用,实际运行时,系统不对注释语句作任何处理。 系统变量系统变量lMCGS系统变量是MCGS建立的内部数据对象,在脚本程序中可自由使用,但只能读不能写。在使用内部变量时变量的前面必须加“$”符号。l如 $Year ,$Month ,$Date,$UserName 等 。lData= $Date系统函数系统函数lMCGS定义的系统函数是一系列用于完成MCGS内部对象操作和常用数学运算的函数,根据功能可分为运行环境操作函数;数据对象操作函数;系统操作函数;文件操作函数;数学函数等。l系统函数在脚本程序中可自由使用,在使用系统函数时,函数的前面必须加“!”符号,如!abs( )。运行环境操作函数运
5、行环境操作函数l运行环境操作函数完成对窗口的操作。l!CloseAllWindow(WndName)l关闭指定窗口外的所有窗口 l!GetWindowName(Index) l!GetWindowState(WndName)l返回0:用户窗口处于关闭状态;返回1:用户窗口处于打开状态;返回2:用户窗口处于隐藏状态。 l!SetWindow(WndName,Op)l1打开窗口并使其可见;2打开窗口并使其不可见;3关闭窗口;4打印窗口;5:刷新窗口。 l!SysWindow() 用户窗口操作用户窗口操作l完成对运行策略的操作l!ChangeLoopStgy(StgyName!ChangeLoopS
6、tgy(StgyName,n)n)l!EnableStgy(StgyName,n) l打开或关闭某个策略;n:1打开此策略,0关闭此策略 l!GetStgyName(Index) l!SetStgy(StgyName) l完成对设备构件的操作l!GetDeviceName(Index) l!GetDeviceState(DevName) l-1调用不正常;1 设备处于正常的工作状态;2 设备正在工作,但设备不正常;3 设备处于停止工作状态,且设备正常;4 设备处于停止状态,且设备有错。l!SetDevice(DevName,DevOp,CmdStr) l1启动设备开始工作;2停止设备的工作使其
7、处于停止状态;3测试设备的工作状态;4启动设备工作一次;5改变设备的工作周期CmdStr中包含新的工作周期,单位为ms;6执行指定的设备命令,CmdStr中包含指定命令的格式。l!SetDevice(SimensPLC,6,“Write(Q0.1=1)”)设备操作设备操作 MCGS MCGS对象对象 lMCGS数据对象。lMCGS操作对象包括工程中用户窗口、动画构件和设备构件等。属性属性 事件事件 方法方法l属性可以视为对象的特性,方法可以视为对象的操作,事件可以视为对象的响应。 l数据对象方法lSaveDatal保存数据对象。lSaveDataInitValuel保存数据对象的当前值为初始值
8、 lSaveDataOnTime(参数1,参数2)l按照指定时间保存数据对象的值 lAnswerAlml应答当前报警。l在MCGS组态软件系统中,每个对象都是由系统的属性和方法构成。使用操作符“. .”,可以在脚本程序或使用表达式的地方,调用对象相应的属性和方法。例如:液位. .Value可以取得的当前值;液位.SaveData( )可以实现数据对象的存盘。PIDPID算法算法l按偏差的比例、积分和微分进行控制的调节器简称为PID( Proportional - Integral - Differential )调节器。lPID调节是连续系统中技术最成熟、应用最广泛的一种调节方式,其调节的实质
9、是根据输入的偏差值,按比例、积分、微分的函数关系进行运算,其运算结果用于输出控制。lPID控制实现的控制方式 模拟方式:用电子电路调节器,在调节器中,将被测信号与给定值比较,然后把比较出的差值经PID电路运算后送到执行机构,改变给进量,达到调节之目的。 数字方式:用计算机进行PID运算,将计算结果转换成模拟量,输出去控制执行机构。 比例积分微分调节器l数字PID控制算法l 用数值逼近的方法实现PID控制规律l 数值逼近的方法:用求和代替积分、用后向差分代替微分,使模拟PID离散化为差分方程l 两种形式:位置式、增量式 位置式PID控制算法位置式控制算法提供执行机构的位置uk,需要累计ekl增量
10、式PID控制算法增量式控制算法提供执行机构的增量uk ,只需要保持现时以前3个时刻的偏差值即可对应的脚本程序如下:偏差2=偏差1 上上次偏差偏差1=偏差 上次偏差偏差=设定值测量值 本次偏差比例=比例系数*(偏差偏差1) 比例作用if 积分时间=0 then 积分作用 积分=0else 积分=比例系数*采样周期 *偏差/积分时间endif微分=比例系数*微分时间*(偏差2*偏差1+偏差2)/采样周期 微分作用增量=比例+积分+微分 增量输出位置=前次位置+增量 位置输出if 位置=位置最大值then 位置=位置最大值 超出位置最大值,位置位置最大值if 位置=位置最小值then 位置=位置最小
11、值 超出位置最小值,位置位置最小值前次位置=位置 为下循环准备偏差,偏差1,偏差2比例系数,微分时间,积分时间比例,微分,积分增量,位置,前次位置带死区的带死区的PIDPID控制控制 在控制系统中为了避免控制动作过于频繁,设置一个可调的参数e0,当系统偏差 时,控制量的增量 ,即此时控制系统维持原来的控制量;当系统偏差 时,控制量的增量 依据增量式标准PID算法给出。 积分分离PID算法 积分分离PID算法是人为地设定一个阈值,当系统偏差 时,即系统的偏差较大时,只采用PD控制,这样可以避免较大的超调,又使系统有较好的快速性;当 时,即系统的偏差较小时,加入积分作用,采用PID控制,可保证系统有较高的精度。