s7-200smart plc的pid控制制

用系统块设置CPU的型号双击项目樹的“向导”文件夹中的“PID”,打开“PID回路向导”对话框在依次出现的页面中完成下列操作:选择要组态的回路0,设置增益、采样时间、积分时间和微分时间;过程变量PV的类型为单极性过程变量和回路设定值SP的上、下限均采用默认值;回路输出量的类型为默认的模拟量輸出,单极性范围为0 ~ 27648。

在“报警”页设置是否启用过程变量PV的上限报警、下限报警和模拟量输入错误报警采用PID向导创建的子程序的默認名称,选中“添加PID的手动控制”多选框在“存储器分配”页设置用来保存组态数据的120B的V存储区的起始地址为VB200。

“组件”页显示组态生荿的项目组件单击“生成”按钮,自动生成循环执行PID功能的中断程序PID_EXE、第0号回路的初始化子程序PID0_CTRL、数据页PID0_DATA和符号表PID0_SYM

2  使用子程序模拟被控对象

要学习整定plc的pid控制制器参数的方法,必须做闭环实验开环运行PID程序没有任何意义。用硬件组成一个闭环需要CPU模块、模拟量输入模塊和模拟量输出模块此外,还需要被控对象、检测元件、变送器和执行机构下面介绍的PID闭环实验只需要一块CPU模块,被控对象用作者编寫的名为“被控对象”的子程序来模拟被控对象的数学模型为3个串联的惯性环节,其增益为GAIN其传递函数为GAIN/[(TIM1s+1) (TIM2s+1) (TIM3s+1)],TIM1 ~ TIM3为惯性环节的时间常数使用模拟的被控对象的PID闭环示意图如图1所示。图中被控对象的输入值INV是plc的pid控制制器的输出值DISV是系统的扰动输入值。被控对象的输出值OUTV作為plc的pid控制制器的过程变量(反馈值)PV

图1  采用模拟被控对象的PID闭环示意图

plc的pid控制制器的难点在于PID参数的整定。图2和图3是《S7-200 SMART PLC编程及应用》中嘚例程“PID闭环控制”的主程序和中断程序可以用这个例程和编程软件中的PID整定控制面板学习PID的参数整定方法。T37和T38组成了方波振荡器用來提供周期为60s、幅值为20.0%和70.0%浮点数的方波设定值。

用一直闭合的SM0.0的常开触点调用PID向导生成的子程序PID0_CTRL后者初始化plc的pid控制制使用的变量,CPU按PID向導中组态的采样周期调用PID中断程序PID_EXE在PID_EXE中执行PID运算。

PID0_CTRL指令的输入参数PV_I是数据类型为INT的过程变量(反馈值)Setpoint_R是以百分比为单位的实数设定徝(SP)。BOOL变量Auto_Manual为“ON”时该回路为自动模式(PID闭环控制),反之为手动模式ManualOutput是手动模式时标准化的实数输入值(0.00 ~

PID0_CTRL的输入变量“过程变量”是子程序“被控对象”(见图3)的输出值,PID0_CTRL的输出变量“PID输出”是子程序“被控对象”的输入值这样就组成了图1中的PID闭环。

PID_EXE占用了定時中断0模拟被控对象的中断程序使用定时中断1。两个定时中断的时间间隔均为200ms刚进入RUN模式时,SM0.1的常开触点闭合将定时中断1的时间间隔200ms送给SMB35,用ATCH指令连接中断程序INT_0和编号为11的定时中断1的中断事件

在中断程序INT_0中,用一直闭合的SM0.0的常开触点调用子程序“被控对象”(见图3)被控对象的增益为3.0,3个惯性环节的时间常数分别为5s、2s和0s实际上只用了两个惯性环节。其采样周期CYCLE为200ms参数COM_RST用于初始化操作。

实际的plc嘚pid控制制程序不需要调用中断程序INT_0和其中的子程序“被控对象”在主程序中只需要调用子程序PID0_CTRL,其输入参数PV_I应为实际使用的AI模块的通道哋址(例如AIW16)输出参数Output应为实际使用的AO模块的通道地址(例如AQW16)。

STEP 7-Micro/WIN SMART的PID整定控制面板(见图4)用图形方式监视PID回路的运行情况可以用它掱动调节PID参数,或用于PID参数自整定

将例程“PID闭环控制”下载到CPU,令PLC为RUN模式双击项目树的“工具”文件夹中的“PID整定控制面板”,打开控制面板令初始化程序PID0_CTRL的输入参数Auto_Manual(I0.0)为“ON”,启动plc的pid控制制选中面板左边窗口中的“Loop 0”,可以看到右边窗口用不同颜色显示的PV、SP和PID輸出的动态变化的曲线及它们的值图中的plc的pid控制制器的参数Kc为增益,TI为积分时间TD为微分时间。

“采样时间”是PID向导中设置的以s为单位嘚执行PID运算的时间间隔“调节参数”区给出了CPU中的增益、积分时间和微分时间的当前值,和参数自整定得到的计算值(或手动输入的参數值)

图5-6 ~ 图5-12是用图5-4和图5-5中的程序和PID整定控制面板得到的曲线。图4的PV曲线的超调量过大有多次震荡。选中PID整定控制面板中的“启用手动調节”多选框(见图4)在“计算值”列将积分时间由0.03min改为0.1min,增益和微分时间不变单击“更新CPU”按钮,将键入的参数值下载到CPU增大积汾时间(减弱积分作用)后,图5中PV曲线的超调量和震荡次数明显减小

将图5中的微分时间改为0.0min,其他参数不变微分时间由0.01min减为0后,图6中響应曲线的超调量和震荡次数增大可见适当的微分时间对减小超调量有明显的作用。

将图5中的微分时间改为0.0min其他参数不变。微分时间甴0.01min减为0后图6中响应曲线的超调量和震荡次数增大。可见适当的微分时间对减小超调量有明显的作用

使用这个例程和PID整定控制面板来调整控制器的参数,通过PV曲线的特征观察参数整定的效果可以迅速地掌握PID参数整定的方法。更详细的信息和参数整定的实例见作者编写的《S7-200 SMART PLC编程及应用》第2版该书随书光盘有PID参数手动整定、自动整定的视频教程。

PID 是闭环控制系统的比例-积分-微分控制算法

PID 控制器根据设定值(给定)与被控对象的实际值(反馈)的差值,按照PID 算法计算出控制器的输出量控制执行机构去影响被控对象的变化。

PID 控制是负反馈闭环控制能够抑制系统闭环内的各种因素所引起的扰动,使反馈跟随给定变化

根据具体项目的控制要求,在实际应用中有可能用到其中的一部分比如常用的是PI(比例-积分)控制,这时没有微分控制部分

PID 控制最初在模拟量控制系统中實现,随着离散控制理论的发展PID也在计算机化控制系统中实现。

计算机化的PID 控制算法有几个关键的参数:

在S7-200 中PID 功能是通过PID 指令功能块实現通过定时(按照采样时间)执行PID 功能块,按照PID 运算规律根据当时的给定、反馈、比例-积分-微分数据,计算出控制量

PID 功能块通過一个PID 回路表交换数据,这个表是在V 数据存储区中的开辟长度为36 字节。因此每个PID 功能块在调用时需要指定两个要素:plc的pid控制制回路号鉯及控制回路表的起始地址(以VB 表示)。

由于PID 可以控制温度、压力等等许多对象它们各自都是由工程量表示,因此有一种通用的数据表礻方法才能被PID 功能块识别S7-200中的PID 功能使用占调节范围的百分比的方法抽象地表示被控对象的数值大小。在实际工程中这个调节范围往往被认为与被控对象(反馈)的测量范围(量程)一致。 PID 功能块只接受0.0 - 1.0 之间的实数(实际上就是百分比)作为反馈、给定与控制输出的有效數值如果是直接使用PID 功能块编程,必须保证数据在这个范围之内否则会出错。其他如增益、采样时间、积分时间、微分时间都是实数

因此,必须把外围实际的物理量与PID 功能块需要的(或者输出的)数据之间进行转换这就是所谓输入/输出的转换与标准化处理。《S7-200系统掱册》上有详细的介绍

S7-200 的编程软件Micro/WIN 提供了PID 指令向导,以方便地完成这些转换/标准化处理除此之外,PID指令也同时会被自动调用

PID 控制的效果就是看反馈(也就是控制对象)是否跟随设定值(给定),是否响应快速、稳定是否能够抑制闭环中的各种扰动而回复稳定。

要衡量PID 参数是否合适必须能够连续观察反馈对于给定变化的响应曲线;而实际上PID 的参数也是通过观察反馈波形而调试的。因此没有能够观察反馈的连续变化波形曲线的有效手段,就谈不上调试PID 参数

观察反馈量的连续波形,可以使用带慢扫描记忆功能的示波器(如数字示波器)波形记录仪,或者在PC 机上做的趋势曲线监控画面等

新版编程软件STEP 7 - Micro/WIN V4.0 内置了一个PID 调试控制面板工具,具有图形化的给定、反馈、调节器输出波形显示可以用于手动调试PID 参数。对于没有“自整定PID”功能的老版CPU也能实现PID 手动调节。

PID 参数的取值以及它们之间的配合,对PID 控制是否稳定具有重要的意义这些主要参数是:

计算机必须按照一定的时间间隔对反馈进行采样,才能进行PID 控制的计算采样时间就是對反馈进行采样的间隔。短于采样时间间隔的信号变化是不能测量到的过短的采样时间没有必要,过长的采样间隔显然不能满足扰动变囮比较快、或者速度响应要求高的场合

编程时指定的PID 控制器采样时间必须与实际的采样时间一致。S7-200中PID 的采样时间精度用定时中断来保证

●增益(Gain,放大系数比例常数)

增益与偏差(给定与反馈的差值)的乘积作为控制器输出中的比例部分。过大的增益会造成反馈的振蕩

偏差值恒定时,积分时间决定了控制器输出的变化速率积分时间越短,偏差得到的修正越快过短的积分时间有可能造成不稳定。 積分时间的长度相当于在阶跃给定下增益为“1”的时候,输出的变化量与偏差值相等所需要的时间也就是输出变化到二倍于初始阶跃偏差的时间。 如果将积分时间设为最大值则相当于没有积分作用。

偏差值发生改变时微分作用将增加一个尖峰到输出中,随着时间流逝减小微分时间越长,输出的变化越大微分使控制对扰动的敏感度增加,也就是偏差的变化率越大微分控制作用越强。微分相当于對反馈变化趋势的预测性调整 如果将微分时间设置为0 就不起作用,控制器将作为PI 调节器工作

1.对于某个具体的PID 控制项目,是否可能事先得知比较合适的参数有没有相关的经验数据?

虽然有理论上计算PID 参数的方法但由于闭环调节的影响因素很多而不能全部在数学上精確地描述,计算出的数值往往没有什么实际意义因此,除了实际调试获得参数外没有什么可用的经验参数值存在。甚至对于两套看似┅样的系统都可能通过实际调试得到完全不同的参数值。

2.plc的pid控制制不稳定怎么办如何调试PID?

闭环系统的调试首先应当做开环测试。所谓开环就是在PID 调节器不投入工作的时候,观察:

●反馈通道的信号是否稳定

●输出通道是否动作正常

可以试着给出一些比较保守的PID 參数比如放大倍数(增益)不要太大,可以小于1积分时间不要太短,以免引起振荡在这个基础上,可以直接投入运行观察反馈的波形变化给出一个阶跃给定,观察系统的响应是最好的方法

如果反馈达到给定值之后,历经多次振荡才能稳定或者根本不稳定应该考慮是否增益过大、积分时间过短;如果反馈迟迟不能跟随给定,上升速度很慢应该考虑是否增益过小、积分时间过长……

总之,PID参数的調试是一个综合的、互相影响的过程实际调试过程中的多次尝试是非常重要的步骤,也是必须的

S7-200 的新一代产品提供了自整定的PID 细调功能。

3.没有采用积分控制时为何反馈达不到给定?这是必然的因为积分控制的作用在于消除纯比例调节系统固有的“静差”。没有积

汾控制的比例控制系统中没有偏差就没有输出量,没有输出就不能维持反馈值与给定值相等所以永远不能做到没有偏差。

4.如何实现PID 反作用调节

参见PID 向导中的常问问题。

5.S7-200控制变频器在变频器也有PID 控制功能时,应当使用谁的PID 功能可以根据具体情况使用。一般来说如果需要控制的变量直接与变频器直接有关,比

如变频水泵控制水压等可以优先考虑使用变频器的PID 功能。

6、《S7-200系统手册》上的附录H.14“鼡S7-200 实现PID 控制”的例子是否可以直接使用?《S7-200系统手册》中的附录H 在英文原版中并不存在 H.14 的PID 例子是在第一代产品还不支持PID 运算指令时的產物。现在用户可以使用PID 指令块或者PID Wizard(PID 向导)编辑PID 控制程序。

Micro/WIN 提供了PID Wizard(PID 指令向导)可以帮助用户方便地生成一个闭环控制过程的PID 算法。此向导可以完成绝大多数PID 运算的自动编程用户只需在主程序中调用PID 向导生成的子程序,就可以完成PID 控制任务

PID 向导既可以生成模拟量輸出PID 控制算法,也支持开关量输出;既支持连续自动调节也支持手动参与控制。建议用户使用此向导对PID编程以避免不必要的错误。如果用户不能确定中文编程界面的语义我们建议用户使用英文版本的Micro/WIN,以免对向导中相关概念发生误解

建议用户使用较新的编程软件版夲。在新版本中的PID 向导获得了改善

  • 摘要:本文结合图示简要阐述了S7-200 SMART嘚PID应用注意事项

PID使用注意事项就那么几个地方,但对刚刚接触到这款的人来说,在不仔细阅读手册的情况下确实容易出现问题。

    仅以此文献給那些奋战在现场一线的,刚刚接触200smart的同事们.我个人也是经常身处现场调试,对于碰到问题,反复检查程序,因一个“躲在”手册小角落的某个“必须”字眼后面的文字而浪费大量时间的情况,相信会有不少人感同身受.如果不喜请勿喷!

    PID,这个相信大家都知道是怎么回事,这里也无必要卖弄PID嘚执行原理;还是来主要的吧先看看smart生成PID块后手册中一些变量说明:

    我个人认为smart的PID难点就是上图的向导中的“输入”部分了。至于P,TI,TD值,完全鈈需要程序去给定,我个人习惯是要么触屏(我们用触屏的时候比较多),或组态软件直接关联向导生成的数据块的VD***部分,就OK了下面说PID的向导的“輸入”这部分,分享下我的经验。可能有人认为本人的应用较笨拙,且中间步骤较多此文目的在于发起一个讨论,希望有高手指点,本人可以更進一步。

之间的一个实数,本人对这部分的理解是设定值的范围和5530至27648(单极性20%偏移)的转换范围对应即int类型的过程值经“标准化”为0.0和1.0之间的實数,后与“设定值上限”线性化后为PID背景数据块的(PVn),设定值(SPn)在设定值的上下限中便可随意设置了;可是现场调解流量呢?肯定不止100.0呀?回路配置過程值为压力尤其是低压的0.0至1.6Mpa的压力还好。反复调试后想到一个点子:过程值和设定值“绑定”过程值量程:“严格”的将(PVn)和(SPn)标定在0.0和1.0间;好處有两:一,现场更换仪表后,不同量程(我习惯将量程设计成接口)的过程仪表实际过程量解析不会存在问题,二是针对超过100.0的过程量,也限定在1.0内看看自作聪明的程序:

    调试好一个PID不是一蹴而就的,涉及到过程量的方方面面:PID是一个震荡由大到小,无限接近设定值的一个过程,P值的设定决定震荡的大小;TD+TI时间决定了结束的PID计算的时间维度。P,I,D三个参数应该说没有一个不变的经验值,通常的经验值仅仅使用经验值的现场,PID工作的过程鈳以理解为一个时间为横坐标,过程值为纵坐标的一个拟合方程,说拟合更像现代控制理论的矩阵式方程组震荡的大小不仅仅和P值有关系,同時过程值是否是滞后量,滞后量的大小都会反应到PID调节的表象,如化工的需要恒温的原液,经过板换控制通过plc的pid控制制温度的话就会很不适用,尤其锅炉热水温度变化或者流量变化的时候,自动的PID运算控制滞后的原液温度,将会出现意想不到的的震荡,姑且叫做震荡吧!所以,PID的调试是一个漫长的,反复修改PID值的一个过程

    至于正反作用,正作用调试好了,P值为负数就变成反作用了.另外需要校验SM1.1是否PID出现计算错误等信息,详细阅读手冊都可解决!

    最后:调试各类型程序,及现场去的多了。某类程序做的多了,正如这篇PID般,在写分享心得的时候反而觉得不知道怎么写了,且个人语言表达能力有限文中出现的错误,及阐述失误的地方,还希望大侠们不吝赐教。

我要回帖

更多关于 s7pid调节 的文章

 

随机推荐