Siemens PLC在闭环控制系统中PID算法的实现« 反馈,控制论,与工业自动化

PID控制有两个输入量:给定值(SP)和过程变量(PV),通常给定值是固定的,过程变量是经A/D转换和计算后得到的被控量的实测值,给定值与过程变量都是与被控对象有关的值。应用PLC的PID指令之前,必须将其转换成符合回路表要求的标准浮点数(实数),即转换为0.0~1.0之间的标准实数。同样,对于PID指令的输出,在将其送给D/A转化器之前,也需进行转换。为控制方便,本例中设55℃为被控温度系统的基准值即给定值。
(1)回路输入的转换。首先将给定值或A/D转换后得到的过程变量整数值由16位整数转换成浮点数,然后将实数进一步用下面的公式对给定值或过程变量标准化即转换成0.0~1.0之间的标准实数。

Ra=(Rb/span)+offset

式中:Ra —标准化实数值;
Rb—标准化前的值;
Offset—偏移量,对单极性变量为0.0,对双极性变量为0.5;
Span—取值范围(变量的{zd0}值减去最小值),单极性变量的典型值为32000,双极性变量的典型值为64000。
(2)回路输出的转换。回路输出即PID控制器输出,它是标准化的0.0~1.0之间的实数。将回路输出送给D/A转换器之前,必须转换成16位二进制整数。这一过程是回路输入转换的逆过程。
3.2 PID温度控制程序
//主程序
LD SM0.1 //首次扫描时为ON
CALL 0 //调用初始化子程序0
//初始化子程序0,装载PID指令的回路表
LD SM0.0 //给定值存入累加器
DTR AC0, AC0 //将32位整数转换成实数
/R 64000.0,AC0 //累加器中的实数标准化
+R 0.5, AC0 //加上偏移值,使其在
0.0~1.0之间
MOVR ACO, VD104 //装入给定值
MOVR 2, VD112 //装入回路增益2
MOVR 1, VD116 //装入采样时间1s
MOVR 30, VD120 //装入积分时间30min
MOVR 0, VD124 //关闭微分作用
LDN T32
TON T32, 1000 //设置定时器32中断的
时间间隔为1s
ATDH 0, 21 //设置定时器32中断(中
断号为21)执行PID指令
ENI //允许中断,子程序0结束
//中断程序0
LD SM0.0
XORD AC0, ACO //xx累加器
MOVW AIWO, AC0 //将待转化的模拟量
存入累加器
LDW>= AC0, 0 //如果模拟量数值为正
JMP 0 //直接转换成实数
ORD 16#FFFF0000, ACO //将AC0内的数 值进行符号扩展,扩展为32 位负数
LBL 0
DTR AC0, AC0 //将32位整数转换成实数
/R 64000.0, AC0 //累加器中的实数标准化
+R 0.5, AC0 //加上偏移值,使其在
0.0~1.0之间
MOVR ACO, VD100 //装入标准化的过程变量
LD I0.0 //在自动方式下,执行PID指令
PID VB100, 0 //回路表的起始地址为 VB100,回路号为0
LD SM0.0
MOVR VD108, AC0 //将回路输出送入累加器
-R 0.5, AC0
*R 64000.0, AC0
ROUND AC0, AC0 //将实数转换为32位整数
MOVW AC0, AQW0 //将16位整数写入模拟
输出(D/A)寄存器

Popularity: unranked

标签:

留下回复

郑重声明:资讯 【Siemens PLC在闭环控制系统中PID算法的实现« 反馈,控制论,与工业自动化】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——