脚本程序MCGS

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

注释语句
以单引号’开头的语句称为注释语句,注释语 句在脚本程序中只起到注释说明的作用,实际 运行时,系统不对注释语句作任何处理。
系统变量
MCGS系统变量是MCGS建立的内部数据对象,在 脚本程序中可自由使用,但只能读不能写。在 使用内部变量时变量的前面必须加“$”符号。
如 $Year ,$Month ,$Date,$UserName 等 。 Data= $Date
'超出位置最大值,
位置=位置最大值
if 位置<=位置最小值then 位置=位置最小值
'超出位置最小值,
位置=位置最小值
前次位置=位置
'为下循环准备
带死区的PID控制
在控制系统中为了避免控制动作过于频繁,设置 一个可调的参数e0,当系统偏差 e(k) e0 时,控制量的 增量 u(k) 0 ,即此时控制系统维持原来的控制量;当系 统偏差 e(k) e0时,控制量的增量u(k) 依据增量式标准PID 算法给出。
◆ 数字方式:用计算机进行PID运算,将计算结果转换成模拟 量,输出去控制执行机构。
◆ 比例积分微分调节器
1t
de
u

KP

e

TI
edt
0
TD
dt
u0
数字PID控制算法

-用数值逼近的方法实现PID控制规律

-数值逼近的方法:用求和代替积分、用后向差
分代替微分,使模拟PID离散化为差分方程
谢 谢!
让我们共同进步
'比例作用
if 积分时间=0 then
'积分作用
积分=0
else
积分=比例系数*采样周期 *偏差/积分时间
endif
微分=比例系数*微分时间*(偏差-2*偏差1+偏差2)/采样周期 '微分作

增量=比例+积分+微分
'增量输出
位置=前次位置+增量
'位置输出
if 位置>=位置最大值then 位置=位置最大值
打开或关闭某个策略;n:1打开此策略,0关闭此策略
!GetStgyName(Index) !SetStgy(StgyName)
完成对设备构件的操作
!GetDeviceName(Index)
!GetDeviceState(DevName)
-1调用不正常;1 设备处于正常的工作状态;2 设备正在工作, 但设备不正常;3 设备处于停止工作状态,且设备正常;4 设备 处于停止状态,且设备有错。
u(k)=KP+KI+KD
u(k)=u(k-1)+u(k)
Y u(k)>=umax?
N Y
u(k)<=umin?
N u(k-1)=u(k)
u(k)=umax u(k)=umin
返回
对应的脚本程序如下:
偏差2=偏差1
'上上次偏差
偏差1=偏差
'上次偏差
偏差=设定值-测量值
'本次偏差
比例=比例系数*(偏差-偏差1)
uk

K P [ek

T TI
k
ej
j0

TD T
(ek
ek1)] u0
uk 1

KP[ek 1

T TI
k 1
ej
j0

TD T
(ek 1


ek2 )]

u0
uk
uk
uk 1

K P [ek
ek 1
T
TI
ek
TD T
(ek
2ek 1
ek2 )]
系统函数
MCGS定义的系统函数是一系列用于完成MCGS内 部对象操作和常用数学运算的函数,根据功能 可分为运行环境操作函数;数据对象操作函数; 系统操作函数;文件操作函数;数学函数等。
系统函数在脚本程序中可自由使用,在使用系 统函数时,函数的前面必须加“!”符号, 如!abs( )。
运行环境操作函数
!SetDevice(DevName,DevOp,CmdStr)
1启动设备开始工作;2停止设备的工作使其处于停止状态;3测 试设备的工作状态;4启动设备工作一次;5改变设备的工作周期 CmdStr中包含新的工作周期,单位为ms;6执行指定的设备命令, CmdStr中包含指定命令的格式。
!SetDevice(SimensPLC,6,“Write(Q0.1=1)”)
积分分离PID算法
积分分离PID算法是人为地设定一个阈值,当系 统偏差 e(k) 时,即系统的偏差较大时,只采用PD控制 ,这样可以避免较大的超调,又使系统有较好的快速 性;当 e(k) 时,即系统的偏差较小时,加入积分作 用,采用PID控制,可保证系统有较高的精度。
放映结束 感谢各位批评指导!
在MCGS组态软件系统中,每个对象都是由系统 的属性和方法构成。使用操作符“.”,可以在 脚本程序或使用表达式的地方,调用对象相应 的属性和方法。例如:液位.Value可以取得的 当前值;液位.SaveData( )可以实现数据对象 的存盘。
PID算法
按偏差的比例、积分和微分进行控制的调节器简称为 PID( Proportional - Integral - Differential ) 调节器。
循环语句
循环语句为While和EndWhile,其结构为: While 〖条件表达式〗 …. EndWhile 当条件表达式成立时(非零),循环执行
While和EndWhile之间的语句。直到条件表达 式不成立(为零),退出。
退出语句
退出语句为“Exit”,用于中断脚本程序的运 行,停止执行其后面的语句。一般在条件语句 中使用退出语句,以便在某种条件下,停止并 退出脚本程序的执行。
设备操作
MCGS对象
MCGS数据对象。 MCGS操作对象包括工程中用户窗口、动画构件
和设备构件等。
属性 事件 方法
属性可以视为对象的特性,方法可以视为对象 的操作,事件可以视为对象的响应。
数据对象方法 SaveData 保存数据对象。 SaveDataInitValue 保存数据对象的当前值为初始值 SaveDataOnTime(参数1,参数2) 按照指定时间保存数据对象的值 AnswerAlm 应答当前报警。
运行环境操作函数完成对窗口的操作。 !CloseAllWindow(WndName)
关闭指定窗口外的所有窗口
!GetWindowName(Index) !GetWindowState(WndName)
返回0:用户窗口处于关闭状态;返回1:用户窗口处于打开状态; 返回2:用户窗口处于隐藏状态。
本”、“退出脚本”中使用。
脚本程序基本语句
脚本程序是为了实现流程的控制及对象操作处 理,包括了几种最简单的语句:赋值语句、条 件语句、循环语句、退出语句和注释语句。
赋值语句
赋值语句的形式为:数据对象 = 表达式。 赋值号左边必须是能够读写的数据对象。 赋值号的右边为表达式,表达式的类型必须与
PID调节是连续系统中技术最成熟、应用最广泛的一种 调节方式,其调节的实质是根据输入的偏差值,按比 例、积分、微分的函数关系进行运算,其运算结果用 于输出控制。
PID控制实现的控制方式
◆ 模拟方式:用电子电路调节器,在调节器中,将被测信号与 给定值比较,然后把比较出的差值经PID电路运算后送到执行机 构,改变给进量,达到调节之目的。
脚本程序
什么是脚本程序
脚本程序是一种需要在特定的宿主程序中运行 的程序。
脚本程序的编程语法类似于Basic语言。 用户脚本程序是由用户编制的、用来完成特定
操作和处理的程序。
脚本程序应用场合
在“脚本程序”策略构件中使用。 在“标准按钮”的“脚本程序”中使用。 在事件响应中使用脚本函数。 在“菜单”的“脚本程序”中使用。 在“用户窗口”的“启动脚本”、“循环脚

-两种形式:位置式、增量式
◆ 位置式PID控制算法
t
k
e(t)dt T
o
ej
j0
de(t) ek ek1
dt
T
uk

K P [ek

T TI
k
ej
j0

TD T
(ek
ek1)] u0
位置式控制算法提供执行机构的位置uk,需要累计ek
增量式PID控制算法
EndIf
Else 〖语句〗
EndIf
条件语句允许多级嵌套,即条件 语句中可以包含新的条件语句, MCGS脚本程序的条件语句最多可 以有8级嵌套。 “IF”语句的表达式的值为真,条 件成立,执行“Then”后的语句, 否则,条件不成立,将不执行该 条件块中包含的语句,开始执行 该条件块后面的语句。 值为字符型的表达式不能作为 “IF”语句中的表达式。
左边数据对象值的类型相符合。 液位1=7 液位1=液位2 液位1=液位1/2
条件语句
条件语句有如下三种形式: If 〖表达式〗 Then 〖语句〗 If 〖表达式〗 Then 〖语句〗
EndIf If 〖表达式〗Then If 〖表达式〗 Then 〖语句〗
增量式控制算法提供执行机构的增量△uk ,只需要保持 现时以前3个时刻的偏差值即可
开始
数据初始化
采集系统输出 计算系统偏差
e(k)
偏差,偏差1,偏差2 比例系数,微分时间,积分时间 比例,微分,积分 增量,位置,前次位置
KP=kp×[e(k)-e(k-1)]
KI=ki×e(k)
KD=kd×[e(k)-2e(k-1)+e(k-2)]
!SetWindow(WndName,Op)
1打开窗口并使其可见;2打开窗口并使其不可见;3关闭窗口;4 打印窗口;5:刷新窗口。
!SysWindow()
用户窗口操作
完成对运行策略的操作 !ChangeLoopStgy(StgyName,n) !EnableStgy(StgyName,n)
相关文档
最新文档