登录站点

用户名

密码

艾默生 Emerson - 艾默生 Emerson

  • 分享

    艾默生PLC控制系统对温度控制的实现

    沈慧卿 2010-05-06 13:28

      为便于对整个老化房内温度的控制,同时充分利用EC20 PLC自身PID功能和PWM脉冲输出(Y0,Y1)的优势,室内温度区域分为2个部分(上层和下层各8个测温度点),对温度取平均值作为温度的测量值,并把此平均值送入PID功能块进行运算,同时对加热执行元件(参考EC20 PLC的I/O接线图,固态继电器SSR1,SSR2,SSR3所控制的发热管的功率逐渐加大)也进行了分组处理:温度偏差较小的情况下,进行PID运算,通过Y0输出脉冲给SSR1,同时关闭SSR2,SSR3(即Y1,Y2停止输出);如果温度偏差较大,则Y1,Y2也参加输出,具体处理思路如下:
      偏差值(ER=SV-PV) 处理办法
      ER≥3 关闭PID运算,直接输出Y0,Y1,Y2;
      3>ER≥1 启动PID运算控制Y0输出,同时启动Y1输出;关闭Y2输出;
      1>ER≥-1 启动PID运算控制Y0输出,关闭Y1,Y2输出;
      -3>ER>-1 启动PID运算控制Y0输出,同时启动Y1输出;关闭Y2输出;
      -3≥ER 关闭PID运算,关闭Y0,Y1,Y2;
      通过此法处理可以把温度控制精度保持在±0.3度以内,而且无论提升温度还是下降温度都很快速;同时把PID输出转化为PWM的占空比输出,又大大节省了PLC的资源(充分利用Y0,Y1的高达100KHZ的脉冲输出功能)。
      EC20 PLC的编程软件CONTROLSTAR的操作简单方便,指令丰富,功能强大,是一个很优秀的全中文编辑工具。
      实现步骤具体如下:首先,在数据块设定PID各参数,其中的重点是设置P,I,D三个参数和输出量的上下限范围,由于PID的输出结果直接和PWM结合在一起,所以设置时要特别注意,在本例子中,按照PWM的周期为4秒(=4000MS)计算,把PID的输出上下限分别设定为4000和0;另外按照逆动作(BIT0=1),输出限定(BIT5=1)的要求对D7911各位进行赋值;
      D7910 500 //采样时间S3 采样时间(Ts)范围为1~32767(ms),比运算周期短的时间数值无法执行;
      D7911 16#23 //动作方向 > 逆动作,设输出限定
      ………………………………………………..//BIT0 0:正动作 1:逆动作;
      ………………………………………………..//BIT1 0:输入变化量报警无效 1:输入变化量报警有效;
      ………………………………………………..//BIT2 0:输出变化量报警无效 1:输出变化量报警有效;
      ………………………………………………..//BIT3-4 没使用;
      ………………………………………………..//BIT5 0:输出值上下限设定无效1:输出值上下限设定有效;
      ………………………………………………..//BIT6~BIT15 没使用
      D7912 70 //S3+2 输入滤波常数(α)范围0~99[﹪],为0时没有输入滤波;
      D7913 100 //S3+3 比例增益(Kp)范围1~32767[﹪];
      D7914 25 //S3+4 积分时间(TI)范围0~32767(×100ms),为0时作为∞处理(无积分);
      D7915 0 //S3+5 微分增益(KD)范围0~100[﹪],为0时无微分增益;
      D7916 63 //S3+6 微分时间(TD)范围0~32767(×10ms),为0时无微分处理;
      D7925 2000 //S3+15 输入变化量(增侧)报警设定值0~32767(S3+1的BIT1=1时);
      D7926 0 //S3+16 输入变化量(减侧)报警设定值0~32767(S3+1的BIT1=1时);
      D7927 4000 //S3+17 输出变化量(增侧)报警设定值0~32767(S3+1的BIT2=1和BIT5=0时);输出上限设定值-32768~32767(S3+1的BIT2=0和BIT5=1时);
      D7928 0 //S3+18 输出变化量(减侧)报警设定值0~32767(S3+1的BIT2=1和BIT5=0时);输出下限设定值-32768~32767(S3+1的BIT2=0和BIT5=1时);
      其次,在程序里调用PID指令和PWM指令用于控制Y0的输出(对SV和PV的比较而进行的逻辑控制输出较简单,故此处省略)。
你还不是该群组正式成员,不能参与讨论。 现在就加入