PID控制,P、I、D各有自己的长处和缺点,它们一起使用的时候又和互相制约,但只有合理地选取PID值,就可以获得较高的控制质量。
5.3.1PID在PLC中的回路指令
西门子S7-200系列PLC中使用的PID回路指令,见表5.1
表5.1 PID回路指令
名称 PID运算
指令格式 PID
指令表格式 PID TBL,LOOP
梯形图
使用方法:当EN端口执行条件存在时候,就可进行PID运算。指令的两个操作数TBL和LOOP,TBL是回路表的起始地址,本文采用的是VB100,因为一个PID回路占用了32个字节,所以VD100到VD132都被占用了。LOOP是回路号,可以是0~7,不可以重复使用。PID回路在PLC中的地址分配情况如表5.4所示。
表5.4 PID指令回路表
偏移地址 名称 数据类型
0 过程变量(PVn) 实数
4 给定值(SPn) 实数
8 输出值(Mn) 实数
12 增益(Kc 实数
16 采样时间(Ts) 实数
20 采样时间(Ti) 实数
24 微分时间(Td) 实数
28 积分项前值(MX) 实数
32 过程变量前值(PVn-1) 实数
5.3.2 回路输入输出变量的数值转换方法
本文中,设定的温度是给定值SP,需要控制的变量是塔内的温度。但它不完全是过程变量PV,过程变量PV和PID回路输出有关。在本文中,经过测量的温度信号被转化为标准信号温度值才是过程变量,所以,这两个数不在同一个数量值,需要他们作比较,那就必须先作一下数据转换。传感器输入的电压信号经过EM235转换后,是一个整数值,但PID指令执行的数据必须是实数型,所以需要把整数转化成实数。使用指令DTR就可以了。如本设计中,是从AIW0读入温度被传感器转换后的数字量。其转换程序如下:
MOVW AIW0 AC0
DTR AC0 AC0
MOVR AC0 VD100
5.5 S7-200程序设计流程图
图 5.4 中断程序流程图
5.6 梯形图
5.6.1 程序的启停
I0.0与I0.1为启动和停止按钮,启动过程:按下启动按钮后,开始标志位M0.1置位,M0.2复位。打开运行指示灯Q0.0,熄灭并停止指示灯,初始化PID。开始运行子程序0。
停止过程:按下停止按钮后,开始标志位M0.1复位,点亮停止指示灯,熄灭运行指示灯。并把输出模拟量AQW0清零。停止调用子程序0,仍然显示尿素合成塔温度。
启停如图5.5
图5.5 开始程序
读入模拟信号,并转换成数值显示,如图5.6显示尿素合成塔的温度。
图5.6 显示尿素合成塔温度
判断温度是否在正常范围,如果超出则停止指示灯亮。如图5.7
图5.7 判断温度是否在正常范围
停止运行时,把模拟量输出清0,如图5.8
图5.8 停止时模拟量清0
调用子程序0,如图5.9
图5.9 调用子程序
5.6.2 子程序
1)输入设定温度,如图5.10
2)把设定温度、P值、I值、D值都导入PID。如图5.11
3)每100ms中断一次子程序进行PID运算。如图5.11
图5.10 设定温度
图5.11 PID设定
5.6.3 中断程序,PID的计算
1)模拟信号的采样处理,归一化导入PID,如图5. 12
2)PID程序运算,如图5.13
3)输出PID运算结果,逆转换为模拟信号,如图5.14 PLC尿素合成塔控制系统设计+文献综述(9):http://www.751com.cn/huaxue/lunwen_3588.html