内容发布更新时间 : 2024/11/16 4:21:36星期一 下面是文章的全部内容请认真阅读。
表4-8 PID指令回路表
偏移地址 0 4 8 12 16 20 24 28 32 名称 过程变量(PVn) 给定值(SPn) 输出值(Mn) 增益(Kc) 采样时间(Ts) 采样时间(Ti) 微分时间(Td) 积分项前值(MX) 过程变量前值(PVn-1) 数据类型 实数 实数 实数 实数 实数 实数 实数 实数 实数 说明 必须在0.0~1.0之间 必须在0.0~1.0之间 必须在0.0~1.0之间 比例常数,可正可负 单位为s,必须是正数 单位为min,必须是正数 单位为min,必须是正数 必须在0.0~1.0之间 必须在0.0~1.0之间
1) 回路输入输出变量的数值转换方法
本文中,设定的温度是给定值SP,需要控制的变量是炉子的温度。但它不完全是过程变量PV,过程变量PV和PID回路输出有关。在本文中,经过测量的温度信号被转化为标准信号温度值才是过程变量,所以,这两个数不在同一个数量值,需要他们作比较,那就必须先作一下数据转换。温度输入变量的数10倍据转化。传感器输入的电压信号经过EM231转换后,是一个整数值,他的值大小是实际温度的把AD模拟量单元输出的整数值的10倍。但PID指令执行的数据必须是实数型,所以需要把整数转化成实数。使用指令DTR就可以了。如本设计中,是从AIW0读入温度被传感器转换后的数字量。其转换程序如下:
MOVW AIW0, AC1 DTR AC1, AC1 MOVR AC1, VD100
2) 实数的归一化处理
因为PID中除了采样时间和PID的三个参数外,其他几个参数都要求输入或输出值0.0~1.0之间,所以,在执行PID指令之前,必须把PV和SP的值作归一化处理。使它们的值都在0.0~1.0之间。归一化的公式如4.9:
Rnoum?Rraw/Span?Offest式中, ——标准化的实数值; ——未标准化的实数值;
?? (4.9)
——补偿值或偏置,单极性为0.0,双极性为0.5;
——值域大小,为最大允许值减去最小允许值,单极性为32000.双极性为6400。
本文中采用的是单极性,故转换公式为:
(4.10)
因为温度经过检测和转换后,得到的值是实际温度的10倍,所以为了SP值和PV值在同一个数量值,我们输入SP值的时候应该是填写一个是实际温度10倍的数,即想要设定目标控制温度为100℃时,需要输入一个1000。另外一种实现方法就是,在归一化的时候,值域大小可以缩小10倍,那么,填写目标温度的时候就可以把实际值直接写进去[11]。 3) 回路输出变量的数据转换
本设计中,利用回路的输出值来设定下一个周期内的加热时间。回路的输出值是在0.0~1.0之间,是一个标准化了的实数,在输出变量传送给DA模拟量单元之前,必须把回路输出变量转换成相应的整数。这一过程是实数值标准化过程。
Rscal?(Mn?Offest)Span (4.11)
FX2N不提供直接将实数一步转化成整数的指令,必须先将实数转化成双整数,再将双整数转化成整数。程序如下:
ROUND AC1, AC1 DTI AC1, VW34
4.1.3 PID参数整定
PID参数整定方法就是确定调节器的比例系数P、积分时间Ti和和微分时间Td,改善系统的静态和动态特性,使系统的过渡过程达到最为满意的质量指标要求[12]。一般可以通过理论计算来确定,但误差太大。目前,应用最多的还是工程整定法:如经验法、衰减曲线法、临界比例带法和反应曲线法。
经验法又叫现场凑试法,它不需要进行事先的计算和实验,而是根据运行经验,利用一组经验参数,根据反应曲线的效果不断地改变参数,对于温度控制系统,工程上已经有大量的经验,其规律如表4-12所示。
表 4-12温度控制器参数经验数据
被控变量 温度 规律的选择 滞后较大 比例度 20~60 积分时间(分钟) 3~10 微分时间(分钟) 0.5~3
实验凑试法的整定步骤为\先比例,再积分,最后微分\。 1)整定比例控制
将比例控制作用由小变到大,观察各次响应,直至得到反应快、超调小的响应曲线。 2)整定积分环节
先将步骤1)中选择的比例系数减小为原来的50~80%,再将积分时间置一个较大值,观测响应曲线。然后减小积分时间,加大积分作用,并相应调整比例系数,反复试凑至得到较满意的响应,确定比例和积分的参数。
3)整定微分环节环节
先置微分时间TD=0,逐渐加大TD,同时相应地改变比例系数和积分时间,反复试凑至获得满意的控制效果和PID控制参数[13]。
根据反复的试凑,调出比较好的结果是P=120. I=3.0 D=1.0。
4.2 3A模块及其温度控制
4.2.1 3A模块的介绍
本设计采用的模拟模块是FX0N-3A特殊功能模块。FX0N-3A特殊功能模块有两个输入通道和一个输出通道,输入通道输入模拟信号并转换为数字信号,输出通道接收数字信号并把它们转换为等量的模拟信号输出。
1、占用IO通道
3A模块有2个模拟量输入通道:CH0、CH1, 及占用IO通道分别为:
CH0-----WX2(模拟量输入通道) CH1-----WX3(模拟量输入通道) 根据本系统的要求选择CH0通道
2、3A输入的转换特性
输入为直流电流 0~20MA
输入电流 0.0 2.5 5.0 7.5 10.0 转换值 0 500 1000 1500 2000
12.5 15.0 17.5 20.0 2500 3000 3500 4000
4.2.2 数 据 转 换
由于3A的输出数据是十进制的,也就是说DT0中的数据是十进制的,那么必须将温
度25度转换为相应的十制才可以比较,即数据转换的问题。可通过以下计算思路,得出温度与相对应的十进制值的关系。温度传感器的输出信号为4~20mA的电流值,对应于0度~100度的温度,温度与电流是线性的,则有:y1=(254)x1+25
其中 y1 代表温度值,x1代表电流值,根据以上数据转换图表,当输入4--20mA时,温度值与十进制存在以下关系:
k2=250x2—1000,且x2=20MA,k2=4000 则有温度值和十进制的关系如下: ((425)y1)-4=(k2250)-4
其中y1和k2 分别代表温度值和十进制值。 当温度值为40度时,对应的十进制是1600。
根据以上分析,我们可计算出任意模拟输出的物理量与计算机所能处理的十进制之间甚至二进制的关系,从而为计算机与物理量数据的交互提供了一个通道。在本文的应用中,通过PLC模拟单元对数据的转换和传递,实现了实时模拟值与需求值不断比较,直到达到需求值时所应执行的动作。因此在程序中用K1600与DM0中的数据比较;用CMP指令实现,同时产生一个标志。
但在本文应用中需要注意两点:一是由于PLC采用的扫描工作方式,存在着扫描时间,因此所采集的值到执行件执行时模拟值已发生变化,同时,若我们用CMP指令时,取值一般是小于等于或大于等于这个结果,因为PLC运行时,CPU只能分时地一个操作一个操作地执行,那么模拟值等于需求值同时又在执行CMP的指令的概率就很小,极其容易导致死循环。因此我们用以上介绍的方法时,应用在执行元件取值的范围允许大于PLC一个扫描周期内模拟值变化的状态.
4.2.3软件编程的思路
在程序开始时,首先要将设定值写入输出通道,以便进行AD转换,用第一次循环标志R9012执行。PLC上电后,需要约100ms开始进行AD转换,为了使数据完全转换,在程序开始时,延时200到300ms后再从通道中用MOVE指令读出数据,程序如下: