1. 引言
在本章中将重点介绍如何使用GForce-200 PLC CPU222进行PID回路控制。
2. PID控制概述
GForce-200系列PLC能够进行PID控制,其CPU最多可支持8个PID控制回路。PID是闭环控制系统中比例-积分-微分控制算法,它可以看作是这三项之和,根据设定值与被控对象实际值的差值,按PID方式计算出控制输出量,使反馈跟随设定值变化,因此PID控制是负反馈闭环控制。其中比例项是增益(Kc)与偏差的乘积,积分项与偏差的和成正比,而微分项与偏差的变化成正比。
PID控制功能是通过PID指令功能块实现的。在S7-200中,PID回路指令运用回路表中的输入信息和组态信息,进行PID运算,交换数据,编程极其简便,该指令影响特殊存储器标志位SM1.1 (溢出)。只有在逻辑堆栈栈顶值为1时,才能进行PID运算。本指令有两个操作数:TBL和LOOP(如下图所示)。其中TBL 是回路表的起始地址,操作数限用VB区,数据类型是BYTE型;LOOP 是回路号可以是 0 到 7 的整数,因此在程序中最多可以用 8 条PID 指令。如果有两个或两个以上的 PID 指令用了同一个回路号,即使这些指令的回路表不同,那么这些 PID 运算之间也会产生不可预料的结果。在直接使用PID 指令功能块之前,必须把增益(Kc)、采样时间(Ts)、积分时间(Ti)、微分时间(Td)等等这些实数全部转换成0.0-1.0之间的实数,以便PID 指令功能块接受,也就是说把外界实际物理量转换成PID 指令可以接收的数据,即输入/输出的转换与标准化处理。
3. PID控制编程调试
在本套系统中,为了生产需求,锅炉内蒸汽压力应维持在0.85-1.0MPa之间,压力的大小由压力变送器检测,变送器压力量程0-2.5MPa,输出DC4-20mA。因此在0.85MPa时,相应的电流输出是9.44Ma,同样1.0MPa时输出为10.4mA,其标准化刻度值如下图所示。
过程变量值是压力变送器检测的单极性模拟量,回路输出值也是一个单极性模拟量用来控制鼓风机的速度。这两个模拟量的范围是 0.0 -1.0 ,分辨率为1/32000 (标准化)。可以初步确定Kc=0.06,Ts=0.2,Ti=10.0,在这里不用微分作用,程序编辑如下图。
程序上采用了主程序,子程序,中断程序的结构模式,程序清晰,明了,大大缩短了周期扫描时间。
4. 调试程序
选择PID的参数,以及相互间的配合,可以影响PID控制的稳定性。如采样时间过短对外部信号的变化有可能检测不到,而过长的采样时间显然不能满足控制精度的要求。又如过大的增益又会造成控制的震荡。在调试程序时要注意这些参数的设置,慢慢调试以至达到稳定的PID控制。
5. 结束语
PID控制在闭环控制中有着重要的作用,这里仅以控制鼓风机的速度来保持锅炉内蒸汽压力的恒定,介绍PID控制。同样锅炉内负压的维持,也是类似与此,这里不在详细介绍。
转载请注明出处。