第16讲PID指令与模拟量控制一、PID算法二、PID控制回路选项三、回路输入量的转换和标准化四、PID回路输出转换为成比例的整数五、PID指令六、PID指令应用举例在工业生产过程控制中,模拟量PID(由比例、积分、微分构成的闭合回路)调节是常用的一种控制方法。运行PID控制指令,S7-200将根据参数表中的输入测量值、控制设定值及PID参数,进行PID运算,求得输出控制值。一、PID算法典型的PID算法包括三项:比例项、积分项和微分项。即:输出=比例项+积分项+微分项计算机在周期性地采样并离散化后进行PID运算,算法如下:Mn=Kc×(SPn-PVn)+Kc×(Ts/Ti)×(SPn-PVn)+Mx+Kc×(Td/Ts)×(PVn-1-PVn)比例项Kc×(SPn-PVn)积分项Kc×(Ts/Ti)×(SPn-PVn)+Mx微分项Kc×(Td/Ts)×(PVn-1-PVn)二、PID控制回路选项常用的控制回路有PI、PID。(1)如果不需要积分回路(即在PID计算中无“I”),则应将积分时间Ti设为无限大。由于积分项Mx的初始值,虽然没有积分运算,积分项的数值也可能不为零。(2)如果不需要微分运算(即在PID计算中无“D”),则应将微分时间Td设定为0.0。三、回路输入量的转换和标准化在PLC进行PID控制之前,必须将其转换成标准化浮点表示法。(1)将回路输入量数值从16位整数转换成32位浮点数或实数。下列指令说明如何将整数数值转换成实数。ITDAIW0,AC0//将输入数值转换成双字DTRAC0,AC0//将32位整数转换成实数(2)将实数转换成0.0~1.0之间的标准化数值。/R32000.0,AC0//使累加器中的数值标准化+R0,AC0//加偏移量0MOVRAC0,VD100//将标准化数值写入PID回路参数表中四、PID回路输出转换为成比例的整数程序执行后,PID回路输出0.0~1.0之间的标准化实数数值,必须被转换成16位成比例整数数值,才能驱动模拟输出。PID回路输出成比例实数数值=(PID回路输出标准化实数值-偏移量)×取值范围MOVRVD108,AC0//将PID回路输出送入AC0*R32000.0,AC0//AC0的值乘以取值范围,变为成比例实数数值ROUNDAC0,AC0//将实数四舍五入取整,变为32位整数DTIAC0,AC0//32位整数转换成16位整数MOVWAC0,AQW0//16位整数写入AQW0五、PID指令六、PID指令应用举例在恒温箱内装有一个电加热元件和一致冷风扇,电加热元件和风扇的工作状态只有OFF和ON,即不能自行调节。现要控制恒温箱的温度恒定,且能在25~100℃范围内可调,如图所示。PLC软元件分配如下:Q1.0:控制接通加热器;Q1.1:控制接通制冷风扇;AIW0:接收温度传感器的温度检测值。控制方法:对恒温箱进行恒温控制,要对温度值进行PID调节。PID运算的结果去控制接通电加热器或制冷风扇,但由于电加热器或制冷风扇只能为ON或OFF,不能接受模拟量调节,故采用“占空比”的调节方法。温度传感器检测到的温度值送入PLC后,若经PID指令运算得到一个0~1的实数,把该实数按比例换算成一个0~100的整数,把该整数作为一个范围为0~10s的时间t。设计一个周期为10s的脉冲,脉冲宽度为t,把该脉冲加给电加热器或风扇,即可控制温度。1.PIC指令编程PID指令来编程2.指令向导编程先指令向导生成,再编写程序。