温度PID控制功能块FB58使用入门Word格式.docx
《温度PID控制功能块FB58使用入门Word格式.docx》由会员分享,可在线阅读,更多相关《温度PID控制功能块FB58使用入门Word格式.docx(25页珍藏版)》请在冰豆网上搜索。
![温度PID控制功能块FB58使用入门Word格式.docx](https://file1.bdocx.com/fileroot1/2022-10/9/07056532-d5fc-41cb-93aa-d35dc0e31c56/07056532-d5fc-41cb-93aa-d35dc0e31c561.gif)
控制回路〔例如控制冷却风扇的频率、或者冷媒的供应量来控制温度〕。
如果用于冷却,那么回路工作在反
作用状态,那么需要给比例增益参数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的各项功能。
在具体的编程过程中,可以从例如工程中将相关功能块、组织
块、背景数据块拷贝过来,也可以直接编程调用。
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〕重新装载参数
重新装载是“保存参数〞的逆过程,但其执行是需要条件的:
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,且偏差的绝对值