您好,欢迎访问三七文档
脚本程序什么是脚本程序脚本程序是一种需要在特定的宿主程序中运行的程序。脚本程序的编程语法类似于Basic语言。用户脚本程序是由用户编制的、用来完成特定操作和处理的程序。脚本程序应用场合在“脚本程序”策略构件中使用。在“标准按钮”的“脚本程序”中使用。在事件响应中使用脚本函数。在“菜单”的“脚本程序”中使用。在“用户窗口”的“启动脚本”、“循环脚本”、“退出脚本”中使用。脚本程序基本语句脚本程序是为了实现流程的控制及对象操作处理,包括了几种最简单的语句:赋值语句、条件语句、循环语句、退出语句和注释语句。赋值语句赋值语句的形式为:数据对象=表达式。赋值号左边必须是能够读写的数据对象。赋值号的右边为表达式,表达式的类型必须与左边数据对象值的类型相符合。液位1=7液位1=液位2液位1=液位1/2条件语句条件语句有如下三种形式:If〖表达式〗Then〖语句〗If〖表达式〗Then〖语句〗EndIfIf〖表达式〗ThenIf〖表达式〗Then〖语句〗EndIfElse〖语句〗EndIf条件语句允许多级嵌套,即条件语句中可以包含新的条件语句,MCGS脚本程序的条件语句最多可以有8级嵌套。“IF”语句的表达式的值为真,条件成立,执行“Then”后的语句,否则,条件不成立,将不执行该条件块中包含的语句,开始执行该条件块后面的语句。值为字符型的表达式不能作为“IF”语句中的表达式。循环语句循环语句为While和EndWhile,其结构为:While〖条件表达式〗….EndWhile当条件表达式成立时(非零),循环执行While和EndWhile之间的语句。直到条件表达式不成立(为零),退出。退出语句退出语句为“Exit”,用于中断脚本程序的运行,停止执行其后面的语句。一般在条件语句中使用退出语句,以便在某种条件下,停止并退出脚本程序的执行。注释语句以单引号’开头的语句称为注释语句,注释语句在脚本程序中只起到注释说明的作用,实际运行时,系统不对注释语句作任何处理。系统变量MCGS系统变量是MCGS建立的内部数据对象,在脚本程序中可自由使用,但只能读不能写。在使用内部变量时变量的前面必须加“$”符号。如$Year,$Month,$Date,$UserName等。Data=$Date系统函数MCGS定义的系统函数是一系列用于完成MCGS内部对象操作和常用数学运算的函数,根据功能可分为运行环境操作函数;数据对象操作函数;系统操作函数;文件操作函数;数学函数等。系统函数在脚本程序中可自由使用,在使用系统函数时,函数的前面必须加“!”符号,如!abs()。运行环境操作函数运行环境操作函数完成对窗口的操作。!CloseAllWindow(WndName)关闭指定窗口外的所有窗口!GetWindowName(Index)!GetWindowState(WndName)返回0:用户窗口处于关闭状态;返回1:用户窗口处于打开状态;返回2:用户窗口处于隐藏状态。!SetWindow(WndName,Op)1打开窗口并使其可见;2打开窗口并使其不可见;3关闭窗口;4打印窗口;5:刷新窗口。!SysWindow()用户窗口操作完成对运行策略的操作!ChangeLoopStgy(StgyName,n)!EnableStgy(StgyName,n)打开或关闭某个策略;n:1打开此策略,0关闭此策略!GetStgyName(Index)!SetStgy(StgyName)完成对设备构件的操作!GetDeviceName(Index)!GetDeviceState(DevName)-1调用不正常;1设备处于正常的工作状态;2设备正在工作,但设备不正常;3设备处于停止工作状态,且设备正常;4设备处于停止状态,且设备有错。!SetDevice(DevName,DevOp,CmdStr)1启动设备开始工作;2停止设备的工作使其处于停止状态;3测试设备的工作状态;4启动设备工作一次;5改变设备的工作周期CmdStr中包含新的工作周期,单位为ms;6执行指定的设备命令,CmdStr中包含指定命令的格式。!SetDevice(SimensPLC,6,“Write(Q0.1=1)”)设备操作MCGS对象MCGS数据对象。MCGS操作对象包括工程中用户窗口、动画构件和设备构件等。属性事件方法属性可以视为对象的特性,方法可以视为对象的操作,事件可以视为对象的响应。数据对象方法SaveData保存数据对象。SaveDataInitValue保存数据对象的当前值为初始值SaveDataOnTime(参数1,参数2)按照指定时间保存数据对象的值AnswerAlm应答当前报警。在MCGS组态软件系统中,每个对象都是由系统的属性和方法构成。使用操作符“.”,可以在脚本程序或使用表达式的地方,调用对象相应的属性和方法。例如:液位.Value可以取得的当前值;液位.SaveData()可以实现数据对象的存盘。PID算法按偏差的比例、积分和微分进行控制的调节器简称为PID(Proportional-Integral-Differential)调节器。PID调节是连续系统中技术最成熟、应用最广泛的一种调节方式,其调节的实质是根据输入的偏差值,按比例、积分、微分的函数关系进行运算,其运算结果用于输出控制。PID控制实现的控制方式◆模拟方式:用电子电路调节器,在调节器中,将被测信号与给定值比较,然后把比较出的差值经PID电路运算后送到执行机构,改变给进量,达到调节之目的。◆数字方式:用计算机进行PID运算,将计算结果转换成模拟量,输出去控制执行机构。◆比例积分微分调节器001dddtPDIeuKeetTuTt数字PID控制算法-用数值逼近的方法实现PID控制规律-数值逼近的方法:用求和代替积分、用后向差分代替微分,使模拟PID离散化为差分方程-两种形式:位置式、增量式◆位置式PID控制算法0()dktjojettTe1d()dkkeeettT位置式控制算法提供执行机构的位置uk,需要累计ek100[()]kDkPkjkkjITTuKeeeeuTT增量式PID控制算法1111200[()]kDkPkjkkjITTuKeeeeuTT1112[(2)]DkkkPkkkkkkITTuuuKeeeeeeTT100[()]kDkPkjkkjITTuKeeeeuTT增量式控制算法提供执行机构的增量△uk,只需要保持现时以前3个时刻的偏差值即可开始数据初始化采集系统输出计算系统偏差e(k)KP=kp×[e(k)-e(k-1)]KI=ki×e(k)KD=kd×[e(k)-2e(k-1)+e(k-2)]u(k)=KP+KI+KDu(k)=u(k-1)+u(k)u(k-1)=u(k)u(k)=umax?u(k)=umin?u(k)=umaxu(k)=uminYYNN返回对应的脚本程序如下:偏差2=偏差1'上上次偏差偏差1=偏差'上次偏差偏差=设定值-测量值'本次偏差比例=比例系数*(偏差-偏差1)'比例作用if积分时间=0then'积分作用积分=0else积分=比例系数*采样周期*偏差/积分时间endif微分=比例系数*微分时间*(偏差-2*偏差1+偏差2)/采样周期'微分作用增量=比例+积分+微分'增量输出位置=前次位置+增量'位置输出if位置=位置最大值then位置=位置最大值'超出位置最大值,位置=位置最大值if位置=位置最小值then位置=位置最小值'超出位置最小值,位置=位置最小值前次位置=位置'为下循环准备偏差,偏差1,偏差2比例系数,微分时间,积分时间比例,微分,积分增量,位置,前次位置带死区的PID控制0)(eke0)(ku0)(eke在控制系统中为了避免控制动作过于频繁,设置一个可调的参数e0,当系统偏差时,控制量的增量,即此时控制系统维持原来的控制量;当系统偏差时,控制量的增量依据增量式标准PID算法给出。)(ku积分分离PID算法)(ke积分分离PID算法是人为地设定一个阈值,当系统偏差时,即系统的偏差较大时,只采用PD控制,这样可以避免较大的超调,又使系统有较好的快速性;当时,即系统的偏差较小时,加入积分作用,采用PID控制,可保证系统有较高的精度。)(ke
本文标题:脚本程序 MCGS
链接地址:https://www.777doc.com/doc-7025818 .html