您当前的位置:五五电子网电子知识plc技术PLC入门PLC闭环控制系如何实现PID控制器介绍 正文
PLC闭环控制系如何实现PID控制器介绍

PLC闭环控制系如何实现PID控制器介绍

点击数:7611 次   录入时间:03-04 11:42:13   整理:http://www.55dianzi.com   PLC入门
D/A转化器之前,也需进行转换。3.3 回路输入的转换      转换的第一步是将给定值或A/D转换后得到的整数值由16位整数转换成浮点数,可用下面的程序实现这种转换:XORD AC0, ACO //清除累加器MOVW AIWO, AC0 //将待转化的模拟量存入累加器LDW>= AC0, 0 //如果模拟量数值为正JMP 0 //直接转换成实数ORD 16#FFFF0000, ACO //AC0内的数值进行符号扩展,扩展为32位负数LBL 0DTR AC0, AC0 //32位整数转换成实数转换的下一步是将实数进一步转换成0.0~1.0之间的标准化实数,可用下面的式(3)对给定值及过程变量进行标准化:RNorm=(RRaw/Span)+Offset (3)式中:RNorm-标准化实数值;RRaw-标准化前的值;Offset-偏移量,对单极性变量为0.0,对双极性变量为0.5;Span-取值范围,等于变量的最大值减去最小值,单极性变量的典型值为32000,双极性变量的典型值为64000下面的程序将上述转换后得到的AC0中的双极性实数(Span=64000)转换成0.0~1.0之间的实数:/R 64000.0, AC0 //累加器中的实数标准化R 0.5, AC0//加上偏移值,使其在0.0~1.0之间MOVR ACO, VD100 //加标准化后的值存入回路表内3.4 回路输出的转换      回路输出即PID控制器输出,它是标准化的0.0~1.0之间的实数。将回路输出送给D/A转换器之前,必须转换成16位二进制整数。这一过程是将pvsp转换成标准化数值的逆过程。用下面的公式将回路输出转换成实数:RScal=(MnOffset)×Span (4)式中,RScal是回路输出对应的实数值,Mn是回路输出标准化的实数值。下面的程序用来将回路输出转换为对应的实数:MOVR VD108, AC0 //将回路输出送入累加器-R 0.5, AC0 //仅双极性数才有此语句*R 64000.0, AC0 //单极性变量乘以32000.0用下面的指令将代表回路输出的实数转换成16位整数:ROUND AC0, AC0 //将实数转换为32位整数MOVW AC0, AQW0 //16位整数写入模拟输出(D/A)寄存器3.5 PID指令及回路表S7-200PID指令如图3所示: 图3 PID指令      指令中TBL是回路表的起始地址,LOOP是回路的编号。编译时如果指令指定的回路表起始地址或回路号超出范围,CPU将生成编译错误(范围错误)仪器编译失败。PID指令对回路表中的某些输入值不进行范围检查,应保证过程变量、给定值等不超限。回路表参见附表。附表 PID指令的回路表        如果PID指令中的算术运算发生错误,特殊存储器SMI.1(溢出或非法数值)被置1,并将终止PID指令的执行。要想消除错误,在下次执行PID运算之前,应改变引起运算错误的输入值,而不是更新输出值。4 PID指令编程举例      某一水箱里的水以变化速度流出,一台变频器驱动的水泵给水箱打水,以保持水箱的水位维持在满水位的75%。过程变量由浮在水面上的水位测量仪提供,PID控制器的输出值作为变频器的速度给定值。过程变量与回路输出均为单极性模拟量,取值范围为0.0~1.0      本例采用PI控制器,给定值为0.75,选取控制器参数的初始值为:KC0.25TS0.1sTI30min。编程如下://主程序(OBI)LD SM0.1 //首次扫描时CALL 0 //调用初始化子程序//子程序LD SM0.0MOVR 0.75, VD104 //装入给定值75MOVR 0.25, VD112 //装入回路增益0.25MOVR 0.10, VD116 //装入采样时间0.1sMOVR 30.0 VD120 //装入积分时间30minMOVR 0.0, VD124 //

上一页  [1] [2] [3]  下一页


本文关键字:如何  控制器  PLC入门plc技术 - PLC入门