技术论坛

 西门子CPU222的PID回路控制

返回主题列表
作者 主题
木子李Π
侠客

经验值:897
发帖数:83
精华帖:2
楼主    2020-12-14 15:15:56
主题:西门子CPU222的PID回路控制 精华帖 
  1. 项目分析

    西门子S7-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 指令可以接收的数据,即输入/输出的转换与标准化处理。


2.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,在这里不用微分作用,程序编辑如下图。



 3.调试程序
  选择PID的参数,以及相互间的配合,可以影响PID控制的稳定性。如采样时间过短对外部信号的变化有可能检测不到,而过长的采样时间显然不能满足控制精度的要求。又如过大的增益又会造成控制的震荡。在调试程序时要注意这些参数的设置,慢慢调试以至达到稳定的PID控制。

不足之处请多多指教!

如果巅峰留不住, 那就进厂包吃住。
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。