温度PID控制功能块FB58使用入门.docx

上传人:b****0 文档编号:9315918 上传时间:2023-05-18 格式:DOCX 页数:27 大小:670.76KB
下载 相关 举报
温度PID控制功能块FB58使用入门.docx_第1页
第1页 / 共27页
温度PID控制功能块FB58使用入门.docx_第2页
第2页 / 共27页
温度PID控制功能块FB58使用入门.docx_第3页
第3页 / 共27页
温度PID控制功能块FB58使用入门.docx_第4页
第4页 / 共27页
温度PID控制功能块FB58使用入门.docx_第5页
第5页 / 共27页
温度PID控制功能块FB58使用入门.docx_第6页
第6页 / 共27页
温度PID控制功能块FB58使用入门.docx_第7页
第7页 / 共27页
温度PID控制功能块FB58使用入门.docx_第8页
第8页 / 共27页
温度PID控制功能块FB58使用入门.docx_第9页
第9页 / 共27页
温度PID控制功能块FB58使用入门.docx_第10页
第10页 / 共27页
温度PID控制功能块FB58使用入门.docx_第11页
第11页 / 共27页
温度PID控制功能块FB58使用入门.docx_第12页
第12页 / 共27页
温度PID控制功能块FB58使用入门.docx_第13页
第13页 / 共27页
温度PID控制功能块FB58使用入门.docx_第14页
第14页 / 共27页
温度PID控制功能块FB58使用入门.docx_第15页
第15页 / 共27页
温度PID控制功能块FB58使用入门.docx_第16页
第16页 / 共27页
温度PID控制功能块FB58使用入门.docx_第17页
第17页 / 共27页
温度PID控制功能块FB58使用入门.docx_第18页
第18页 / 共27页
温度PID控制功能块FB58使用入门.docx_第19页
第19页 / 共27页
温度PID控制功能块FB58使用入门.docx_第20页
第20页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

温度PID控制功能块FB58使用入门.docx

《温度PID控制功能块FB58使用入门.docx》由会员分享,可在线阅读,更多相关《温度PID控制功能块FB58使用入门.docx(27页珍藏版)》请在冰点文库上搜索。

温度PID控制功能块FB58使用入门.docx

温度PID控制功能块FB58使用入门

15-1-22SiemensIndustryOnlineSupport-AutomationService,AutomationSupport,SimaticService,SimaticSupport,TechnicalSupport,TechnicalConsulting自动化技术>自动化技术>工业自动化系统SIMATIC>工业软件>运行软件>Loadablefunction

blocks>标准PID控制

温度PID控制功能块FB58使用入门

1FB58基本特性介绍

在标准库(Libraries/StandardLibrary/PIDControlBlocks)中的PID控制块中提供了两个用于温度控制的

功能块FB58和FB59。

其中,FB58用于具有连续或脉冲输入信号的执行器的温度控制器,而FB59用于类

似于定位电机的执行器的步进温度控制器。

除了基本的功能之外,FB58还提供PID的参数自整定功能。

PID功能块是纯软件控制器,相关运算数据存放在相应的背景数据块中,对于不同的回路,应该使用不同

的背景数据块,否则会导致PID运算混乱的错误。

FB58可以用在仅加热的温度控制回路(例如控制蒸汽的供给量来控制温度),也可以用在仅冷却的温度

控制回路(例如控制冷却风扇的频率、或者冷媒的供给量来控制温度)。

如果用于冷却,则回路工作在反

作用状态,则需要给比例增益参数GAIN分配一个负数,其他保持不变。

和常规PID功能块(例如FB/SFB41)对比,FB58具有如下特性:

提供控制带(ControlZone)功能;

控制输出提供脉冲方式;

过程值转换增加对温度信号转换(PV_PER*0.1/0.01)方式的支持;

参数保存和重新装载;

控制器参数自整定功能;

设定值变化时的比例作用弱化功能。

2FB58基本使用

2.1功能块调用

在STEP

7中,提供了关于FB58和FB59的一个示例项目,其路径如下图所示:

图1FB58/59示例项目

该示例项目包含有如下几个示例程序:

(1)连续控制器Continuouscontroller

输出类型是连续数值的一类控制器,其中的FB100和DB100是一个模拟的控制对象;

(2)脉冲控制PulsecontrolOB35,OB1

输出类型是单个脉冲信号的一类控制,在OB35和OB1中同时调用,其中的FB102和DB102是一个模拟的

接收脉冲信号的控制对象;

(3)脉冲控制PulsecontrolOB35,OB32

输出类型是单个脉冲信号的一类控制,在OB35和OB32中同时调用,其中的FB102和DB102是一个模拟的

接收脉冲信号的控制对象。

和上一个项目不同,这个项目要求运行的CPU能够支持OB32定时中断,例如

S7-400CPU;

(4)脉冲控制器Pulsecontroller

输出类型是单个脉冲信号的一类控制,只在OB35中调用,其中的FB102和DB102是一个模拟的接收脉冲

信号的控制对象。

和前面两个项目不同,这个项目只在OB35中调用一次FB58即可;

(5)步进控制器Stepcontroller

输出类型是两个脉冲信号的一类控制,只在OB35中调用,其中的FB101和DB101是一个模拟的控制对

象,例如步进电动阀门。

这是一个FB59的应用示例。

通过示例项目可以测试FB58的各项功能。

在具体的编程过程中,可以从示例项目中将相关功能块、组织

块、背景数据块拷贝过来,也可以直接编程调用。

在STEP

7中创建一个OB35,打开并在其中添加FB58:

图2调用FB58

如上图所示,在左侧的总览列表中,依次进入“Libraries”󰀀“StandardLibrary”󰀀“PIDControlBlocks”,在

其中拖拽FB58到右侧编程窗口中。

填写一个背景数据块(例如DB58),由于是新建的一个DB块,软件会

弹出如下窗口:

图3生成背景数据块

点击“Yes”即可生成一个用于FB58的背景数据块。

在块(“Blocks”)中找到刚生成的DB块,双击打开:

图4背景数据块

在背景数据块中可以直接修改相关的控制参数,然后点击工具栏上的按钮来下载参数。

如果需要查看

更加具体的参数信息,可以切换到数据视图:

图5切换到数据视图

在数据视图中,可以点击工具栏上的来进行在线监控。

2.2过程值的处理

在FB58中,对模拟量的处理遵照如下流程图:

图6过程值处理流程

如图中所示,FB58提供有两个过程值的输入通道:

PV_IN和PV_PER,这两个通道用PVPER_ON来选择:

表1PVPER_ON参数

过程值输入

True模拟量输入通道的数值直接从PV_PER输入

False过程量以浮点型数据从PV_IN输入

注:

PVPER_ON的默认值为False。

对于PV_PER的输入,根据温度测量方式的不同,从模拟量输入通道过来的数据格式也有所不同,因此,

FB58提供过程值格式转换的环节CRP_IN,其中涉及到参数PER_MODE:

表2PER_MODE参数

转换方式单位

0PV_PER*0.1℃/℉

1PV_PER*0.01℃/℉

2PV_PER*100/27648/电流百分数%

注:

PER_MODE的默认值为0。

从图1中的处理流程中可以看到经过CRP_IN之后,还有一个规格化(Normalize)的环节PV_NORM。

环节可以对过程值进行修正,对于温度值,可以规格化为百分比值,同样地,百分比的值也可以规格化为

温度值。

其转换公式是:

PV_NORM的输出=CPR_IN的输出*PV_FAC+PV_OFFS

例如,通过温度变送器将一个-200℃~1000℃范围里的温度值以4~20mA的信号送至模拟量输入通道

PIW256中。

在FB58中设置

PV_PER=PIW256

PVPER_ON=TRUE

PER_MODE=2

PV_FAC=1.2

PV_OFFS=-200.0

通过如上的参数设置,则在“PV”参数中得到一个温度值。

同样地,此时的设定值SP_INT可以直接设置为

温度值。

设定值SP_INT的取值由过程值的处理过程所决定,如果过程值经过处理得到一个百分比的值,那么

SP_INT就是一个量程的百分比;如果处理得到一个实际温度值,那么设定值SP_INT也必须是一个温度

值。

SP_INT必须要有和过程值一样的基本单位。

2.3PID运算

PID运算是FB58的运算核心,主要通过对偏差信号(设定值S

P_INT-过程值PV)进行比例、积分、微分运算来得到对阀门、变频器等执行机构的控制信号。

具体流图如下图所示:

图7PID运算流程

从上述流程图中有如下几点信息:

-比例、积分和微分都是对比例和增益参数的乘积之积的运算,其在时间域上的表达式为:

-特殊地,在积分时间TI和微分时间TD为0的时候,积分作用和微分作用被取消激活,此时为纯比例控制;

-对于反作用方式,需要将增益GAIN设置为负数;

-PFAC_SP为比例弱化功能。

在设定值SP_INT发生阶跃变化时,设置比例因子PFAC_SP,从而达到减弱

因为设定值修改而导致的不稳定,该比例因子PFAC_SP的取值范围是0.0~1.0;

-对于积分作用,在I_ITL_ON为1的时候,积分结果就是I_ITLVAL;

-积分功能中的INT_HPOS和INT_HNEG参数为正向积分功能保持和反向积分功能保持,如果此时偏差ER

和增益GAIN的乘积为正,且INT_HPOS为True,那么此次运算周期中积分的增加量为0,即积分项LMN_I

的输出不会改变。

INT_HNEG的作用与此类似。

-微分功能中的D_F参数是微分因子,在微分运算中和周期时间CYCLE作用类似。

2.4手动/自动切换

FB58的手动/自动切换是通过参数MAN_ON来完成的,在MAN_ON为True的时候,PID处在手动工作状

态,此时,手动值通过参数MAN给出。

图8控制输出

默认情况下,LMN_HLM和LMN_LLM分别是100.0和0.0,从上图中可以看出,手动值的有效数值范围也应

该是0.0~100.0。

在参数MAN_ON为False的情况下,PID投入运行,控制回路处于自动工作状态。

为了降低手动/自动切换过程中扰动,算法通过如下措施来实现无扰切换:

-在自动的状态下,比例和积分的运算结果之和会写入到单元MAN中,这样在由自动切换到手动的过程中

不会引起控制输出波动;

-在手动的状态下,积分项的输出等于MAN的值减去比例项的值(偏差ER*增益Gain),而在自动状态

中,积分项是一个累计的结果,这样在切换到自动状态时积分项不会有太大的突变。

从上面的分析可以知道,FB58

已经集成了相应的无扰切换的功能,不需要编写额外的程序来实现。

2.5保存和重新装载参数

保存和重新装载控制器参数是FB58中的新功能,主要用来实现在多套参数之间的切换。

图9控制参数保存和重新装载

从上图中可以看出,控制参数的处理有三种方式:

(1)从PID_CON/PI_CON中装载

要实现此装载,必须满足如下几种条件:

手动控制状态(MAN_ON=True);

PID_CON.GAIN或者PI_CON.GAIN不为0;

LOAD_PID为1

如果参数PID_ON为1,则从PID_CON中装载如下参数:

GAIN、TI、TD,并计算CONZONE=250.0/GAIN

如果参数PID_ON为0,则从PI_CON中装载如下参数:

GAIN、TI、TD,并计算CONZONE=250.0/GAIN。

特殊地,此时会关闭控制带功能,即设置CON_ZONE

参数为0,并让微分参数TD设置为0.0。

装载完成之后,参数LOAD_PID会自动复位。

值得注意的是,如果PID_CON中保存的增益参数PID_CON.GAIN为0,则自动会修改PID_ON为0,并转而

从PI_CON中获取参数。

注:

PID_CON/PI_CON中的参数来自于自整定过程。

(2)保存参数

保存参数可以在任何工作状态下进行,只需设置参数SAVE_PAR为1即可。

可以将如下参数保存找

PAR_SAVE结构体中:

PFAC_SP、GAIN、TI、TD、D_F、CONZ_ON、CON_ZONE

在保存结束之后,参数位SAVE_PAR会自动复位。

(3)重新装载参数

重新装载是“保存参数”的逆过程,但其执行是需要条件的:

手动控制状态(MAN_ON=True);

PAR_SAVE.GAIN不为0;

参数UNDO_PAR为1。

在重新装载完成之后,参数UNDO_PAR会自动复位。

3高级功能

3.1控制带

温度控制回路是一个有明显滞后特性的对象,这给实际的调节过程带来了很多的问题,最显著的困难就是

在过程值偏离设定值较大时,调节过程过于缓慢,而在接近设定值时容易出现较大的超调。

从上述的两个问题出发,PID应该满足这样的功能:

-在偏差超过一定的范围时,PID输出最大或者最小的调节量,让温度值快速回到一个小的范围中,以缩短

回路的调节时间;

-在设定值附近时,越靠近调节量变化越小,以防止超调。

为此,FB58提供了一个“控制带(ControlZone)”功能,其工作原理是这样的:

-当过程值PV大于设定值SP_INT,且偏差的绝对值超过CON_ZONE,则以输出下限LMN_LLM作为输出

值;

-当过程值PV小于设定值SP_INT,且偏差的绝对值超过CON_ZONE,则以输出上限LMN_HLM作为输出

值;

-如果偏差的绝对值小于CO

N_ZONE,则以实际PID的计算结果作为输出值。

图10控制带(正作用情况下,即GAIN>0.0)

默认参数中LMN_LLM是0.0,LMN_HLM是100.0,控制带使能位CONZ_ON是False,控制带范围是

100.0。

如上图所示的控制带解决了在偏差较大时PID调节过于缓慢的问题,但在控制带范围中要避免因大滞后导

致的超调,需要弱化PID的输出,要实现这个功能,可以通过降低比例参数和增加微分作用。

在同样的偏

差情况下,比例增益越小,PID输出变化越缓慢。

微分作用简单来看就是通过偏差的变化量来调节,在接

近设定值的过程中,温度变化速度在逐步变慢,此时的微分作用可以起到弱化控制输出的功能,进而达到

减少超调的目的。

因此,推荐控制带在有微分作用的前提下使用。

参数装载的过程也体现了这一点:

-如果是装载PI_CON下的参数,因为没有微分功能,所以会设置CONZ_ON为False。

在使用过程中,控制带参数CON_ZONE应该始终设置为一个大于等于0.0的值,否则会导致PID运算结果

永远不会被执行的故障现象。

3.2脉冲输出方式

和FB41不同,FB58中集成有脉宽调制输出的功能,通过将PID的运算结果换算成对应的脉冲占空比来达

到加热/冷却的控制。

在FB58的脉冲输出环节中涉及到的关键参数有:

PULSE_ON:

脉冲输出使能;

PER_TM:

输出脉冲的周期时间;

CYCLE_P:

脉冲输出的刷新时间,推荐PER_TM/CYCLE_P>50,即将周期时间分为时间长度为

CYCLE_P的“片”,在每个CYCLE_P时间间隔里,脉冲输出单元运算一次以判断下一个CYCLE_P中应该输

出高电平还是低电平,PER_TM和CYCLE_P的比值越大,说明输出脉冲的精度就也高;

例如当PID的计算输出接近于100.0时,那么输出的脉冲中低电平时间

接近于0,针对执行机构而言,其需要在极短的时间里关断,然后再打开,这会严重缩短设备的工作寿

命,为此,通过设置最小脉冲断开/脉冲时间就可以避免此问题。

当需要输出的高电平时间小于P_B_TM

时,则不会输出这个高电平;当需要输出的高电平时间大于周期时间PER_TM-P_B_TM时,则整个周期都

输出高电平。

P_B_TM设置的过长,可以降低对执行机构的冲击,但会影响输出脉冲和整个回路的控制精

度;设置的过短,则对执行机构不利。

图11脉冲输出

如上图所示,LmnN为PID的运算结果,通过和脉冲周期时间PER_TM相乘得到高电平的输出时间:

脉宽=LmnN*PER_TM/100

脉冲输出单元每次执行都累加一个CYCLE_P,通过判断累加值和脉宽,或者和周期与脉宽差值的比较来

改变输出点的状态。

3.2.1脉冲输出和PID运算

在FB58中,脉冲输出和PID计算是两个相对独立的过程,各自有自己的计算周期。

对于PID计算来说,

CYCLE参数可以看成是PID计算的循环周期时间,例如PID在OB35每次执行过程中都会被调用,而硬件组

态过程中OB35的周期时间被设置成了500ms,则CYCLE应该填写为0.5。

对于脉冲输出来说,其循环周期

时间是CYCLE_P。

这两个时间参数可以一样,也可以不一样。

PID的计算周期主要由被测量的变化规律决

定的,而脉冲输出的CYCLE_P参数由要求的脉冲输出精度决定。

为了协调PID和脉冲输出之间的矛盾,FB58提供了“SELECT”参数,其具体使用如下所示:

表3SELECT的参数配置

块调用功能

S7-300和S7-在周期性中断OB中通过在同一个周期性中断OB中

中,脉冲发生器采样时间SELECT=0进行调用执行控制程序段和脉冲输出

CYCLE_P=100毫秒)

S7-300中,脉冲发生器采在OB1中通过SELECT=1执行在OB1中执行控制程序段

条件调用

CYCLE_P=10毫秒)(QC_ACT=TRUE)

在周期性中断OB中通过在周期性中断OB中执行脉

SELECT=2进行调用冲输出

S7-400中,脉冲发生器采在低速周期性中断OB中通过在低速周期性中断OB中执

(例SELECT=3进行调用行控制程序段

CYCLE_P=10毫秒)在高速周期性中断OB中通过在高速周期性中断OB中执

SELECT=2进行调用行控制程序段

根据上表描述,FB58的调用可以有如下三种情况:

(1)SELECT=0,FB58只在周期中断OB(例如OB35)中调用

此时的参数配置应该将CYCLE_P和周期中断OB的中断时间保持一致。

因为PID计算的执行条件是

CYCLE_P的累计值和CYCLE参数一致,而脉冲输出周期PER_TM则应该CYCLE_P的整数倍,和CYCLE

无关。

例如,在OB35中调用FB58,OB35的周期时间为50ms,FB58中的CYCLE_P是0.05s,CYCLE是1.0s,

PER_TM是3.0s。

观察参数之间的关系,CYCLE是CYCLE_P的20倍,即OB35每20个周期执行一次FB58里的PID计算,而

输出的脉冲周期是3秒钟。

(2)FB58分别在OB1和周期中断OB(例如OB35)中调用

在两个OB块中调用的FB58使用同样的背景数据块和参数,只是SELECT参数有所不同,在OB1中调用,

SELECT设置为1;在周期中断OB中调用,SELECT设置为2。

为了缩短OB1执行时间,可以通过FB58背

景数据块中的“QC_ACT”来选择是否执行FB58,当QC_ACT为TRUE时,执行,否则跳过。

在这种方式下,处理原理同

(1)一致,不同的是PID运算总是在OB1中执行罢了。

OB1的执行周期对PID

运算、脉冲输出均没有影响。

(3)FB58在两个不同周期时间的周期中断OB(例如OB32和OB35)中调用

FB58分别在两个周期中断OB中调用,其中周期时间长的OB中调用的FB58的SELECT参数设置为3,时间

短的设置为2。

同前面两种情况不一样,SELECT选择为3时,PID的运算只和调用周期有关。

例如OB32定义的周期时间

是1000ms,OB35的周期时间是100ms,CYCLE_P是0.02s,PER_TM是1.0s。

这样在OB32中定义

SELECT参数为3,则每1秒钟就执行一次PID运算,并不是由CYCLE和CYCLE_P的关系来决定。

3.2.2参数设置的经验法则

前面的描述说明了CYCLE/CYCLE_P/PER_TM之间的关系,对于具体的参数设置,可以有如下几条法

则:

(1)CYCLE时间不能超过积分时间TI的10%;

(2)为了保证控制精度,脉冲周期时间PER_TM应该至少是CYCLE_P的50倍;

(3)脉冲周期时间CYCLE不能超过积分时间TI的5%。

4自整定功能

FB58的背景数据块中集成了控制器参数整定的功能,打开DB块,点击工具栏的按钮,使DB块在线:

图12背景数据块的参数分配视图的在线

背景数据块在线之后,可以看到,相关的参数均能读取。

点击菜单项“Options”下的“ControllerT

uning...”,

即可开始整定:

图13选择控制器整定菜单

控制器整定的向导一共有5步,第一步是简单的功能介绍:

图14功能介绍

点击“Next”,进入下一步:

图15控制器类型选择

在该窗口中选择是PID控制还是PI控制,该选项对应“PID_ON”参数,如果选择“PIDparameters”,则在点

击“Next”之后,PID_ON会置位。

图16整定激励方法选择

FB58提供两种整定激励,一种是修改设定值,接近工作点(Tunebyapproachingtheoperatingpointwith

asetpointstepchange),另一种是没有设定值阶跃变化,只在工作点整定(Tuneattheopertingpoint

bysettingastart

bit)。

选择第一种,然后点击“Next”:

图17修改设定值下的激励参数

选择修改设定值的激励方式,则需要在上图所示的窗口中填写新的设定值和手动值偏差,其中的手动值偏

差对应的就是参数TUN_DLMN。

默认情况下,设定值是当前DB块中的实际设定值,所以要触发整定,必

须修改这个设定值!

这种修改设定值的激励方式的工作原理如下图所示:

图18修改设定值的激励方式

寻找拐点是整定过程中的关键,如果设定值的阶跃变化过小,则可能在过程值(图中虚线)变化过程中不

会出现拐点;相反地,如果设定值的阶跃变化过大,则可能会造成大的超调,对系统不利。

如果选择没有设定值阶跃变化的整定方式,则激励参数是这样的:

图19无设定值阶跃变化下的激励参数

对比两种窗口,可以发现在无设定值阶跃变化的方式下,设定值是不可设的,而且手动值偏差也是默认为20%。

这种方式下的整定按照如下图所示的流程:

图20无设定值阶跃变化的激励方式

从上图中可以清楚地看到,整个整定过程中,设定值并没有发生改变,只是输出值LMN有一个变化量

TUN_DL

MN,在这个变化量的促使下,过程中出现波动,等检测到拐点之后,变化量消失,系统重新恢复

到设定值上来。

不论哪一种激励方式,在完成配置后点击“Next”,都是开始控制器整定:

图21控制器整定过程

整定过程分为7个阶段,从参数PHASE的值中可以读出,不同阶段的工作内容有所不同:

描述

无整定

检查参数、等待激励、测量采样时间

检测过程值上的拐点

过程参数的计算,保存整定前的参数

控制器设计

处理新的调节量

检测过程类型

注意,整定过程没有阶段6。

整定过程中的状态在变量STATUS_H中显示,具体错误代码对应的含义如下表所示:

表5整定状态代码

STATUS_H诊断消

具体的错误信息可以查看相关手册。

除了STATUS_H之外,从参数STATUS_D中可以显示出整定到的系统类型,具体的参数数值和系统类型

的对应关系,请参看具体手册描述。

如果整定顺利完成,即STATUS_H为10000,优化得到的PID参数会自动写入到相应单元中,原有的参数

会自动保存到PAR_SAVE的结构体中。

在图10中如果选择为“PIDparameters”,那整定得到的参数同时还

会保存到PID_CON结构体中,同样地,选择为“PIparameters”,则会保存在PI_CON中。

5背景数据块

如下是FB58常用参数表:

名称类型初始值注释

PV_IN输入0.0实数类型过程值输入

PV_PER输入0整数类型过程值输入

DISV输入0.0干扰补偿

INT_HPOS输入FALSE正向积分保持开启

INT_HNEG输入FALSE反向积分保持开启

SELECT输入0PID功能和脉冲功能的选择

PV输入0.0过程值

LMN输出0.0实数类型的PID输出控制量

LMN_PER输出0整数类型的PID输出控制量

QPULSE输出FALSE输出脉冲信号

QLMN_HLM输出FALSE控制量到达上限

QLMN_LLM输出FALSE控制量到达下限

QC_ACT输出TRUE下一周期PID是否执行

CYCLE输入_输出0.1PID计算的周期时间

CYCLE_P输入_输出0.02脉冲输出的刷新时间

SP_INT输入_输出0设定值

COM_RST输入_输出FALSE复位

MAN_ON输入_输出TRUE手/自动,默认为手动

DEADB_W静态变量0.0偏差死区

I_ITLVAL静态变量0.0初始积分值

LMN_HLM静态变量100.0控制量上限

LMN_LLM静态变

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2