基于PLC的PID恒压供水控制系统研究
2015-01-28山东潍坊工程职业学院吴慧君陈金艳
山东潍坊工程职业学院 吴慧君 陈金艳
1 引言
供水系统在现在生产和生活中都是不可缺少的重要环节。传统供水方式水压不能保持恒定且水质易污染,容易造成能源浪费。随着可编程控制技术和变频调速技术的发展,基于PLC的PID控制应用越来越广泛,特别是供水行业中。本设计用PLC编程,采用PID对水箱水位进行闭环控制,以达到恒压供水的目的。
2 PID控制原理恒压供水控制系统
PID控制,即调节器控制规律为比例、积分、微分的控制。PID控制广泛应用于各种过程控制系统中。过程控制系统先对模拟量进行采样,再对采样值进行PID运算,根据运算结果控制模拟量的大小变化,使模拟量的值保持在一定范围内。其控制结构如图1所示。PID运算中积分用来消除系统的静态误差,提高系统精度;微分用来克服惯性滞后,提高系统稳定性和抗干扰能力;比例可对偏差做出及时响应。三种作用配合,使PID回路快速、准确、平稳运行,从而获得良好的控制效果。
图1 PID控制系统结构
3 系统的整体结构设计
恒压供水箱的结构如图2所示,系统要求开机后,先手动控制电动机,使水位上升到满水位的70%,再转换到PID自动调节,用变频器驱动水泵维持水位。过程变量PVn 表示水箱水位,由水位检测传感器提供,变量经A/D转换送入PLC;控制信号由PLC执行PID指令后,经D/A转换后送出,用来驱动变频器,以达到通过控制电动机转速来维持水位的目的。
系统控制由S7-200 CPU224 PLC来完成,PLC需扩展A/D转换模块EM231和D/A转换模块EM232。
图2 供水系统整体结构
4 系统程序设计
4.1 PID回路表设定
系统PID回路参数表如表1所示。表中过程变量当前值PVn和水位给定值SPn是PID算法的输入值,可由PID指令读取但不能更改,根据设计要求,设计给定值SPn数值为0.7;表中PID回路输出值是由PID指令计算得出的,不用设定,当PID指令执行完后自动更新,但该值需要通过编程转换为16位数字值,再送往PLC的模拟量输出寄存器AQWx;表中的增益KC、采样时间TS、积分时间TI和微分时间TD,根据本设计实际需要,分别设置为0.3、0.1、0.3和关闭微分;表中的上一次积分值MX由PID更新。
表1 PID回路参数表
4.2 利用S7-200 PID向导生成
S7-200 PLC编程软件STEP7-Micro/WIN提供了PID指令向导,可以方便地完成一个PID闭环控制过程算法。点击编程软件指令树中的“向导PID”图标,在出现的对话框中设置PID回路编号,根据参数表设定值的范围、增益、积分时间、采样周期和微分时间,设置输入输出量为单极性变化,完成向导。
完成设置后,软件自动生成子程序PID0_INIT和中断程序PID_EXE。软件还会生成一个PID向导符号表,在表中可以找到各参数的地址。
PLC程序由主程序、子程序和中断程序组成。主程序用来调用初始化子程序;子程序主要用来建立PID回路初始化参数表和设置定时中断,中断程序用于执行PID运算。
初始化子程序首先需写入给定值、回路增益、采样时间和积分时间,然后关闭微分;再写入定时中断时间为100ms,开定时中断INT_0,最后全局开中断。
中断程序分三部分,标准化数据、执行PID指令和模拟输出。标准化数据首先将A/D转换的整数数据AIW0转换为双整数,再将双整数转换为实数,将数值除以32000标准化后,将标准数值写入回路参数表过程量当前值存储器VD100中。执行PID指令只需调用由向导生成的PID子函数。模拟输出部分首先将PID运算结果与32000相乘,得到工程量,再将工程量取整,将双整数化为整数,最后将数值写入模拟量输出单元AQW0。
[1]王芹.可编程控制器技术及应用(西门子S7-200系列)[M].天津:天津大学出版社,2012
[2]周梅芳,金向平,陈偕雄.基于PLC的智能PID控制方法及其应用[J].化工自动化及仪表, 2003,30(6).
[3]王述彦,师宇,冯忠绪.基于模糊PID控制器的控制方法研究[J].机械科学与技术, 2011,30 (1).