温度控制是许多机器的重要的构成部分。它的功能是将温度控制在所需要的温度范围内,然后进行工件的加工与处理。pid控制系统是得到广泛应用的控制方法之一,下面较为详尽地介绍了pid温度控制的程序设计实例。
(1) 系统组成
本套系统采用omron的plc与其温控单元以及pro-face的所组成。系统包括cqm1h-51、扩展单元tc-101、gp577r以及探温器、加热/单元。
(2) 触摸屏参数设置
设002代表现在的温度,而102表示输出的温度。如按下开始设置就可设置参数。需要设置的参数有6个,分别是比例带、积分时间、微分时间、滞后值、控制周期、偏移量。它们在plc的地址与一些开关的地址如下:
比例带 : dm51 积分时间 : dm52
微分时间 : dm53 滞后值 : dm54
控制周期 : dm55 偏移量 : dm56
数据刷新 : 22905
(3) plc程序
002:pid的输入字
102:pid的输出字
[network]#p#分页标题#e#
name="action check" //常规检查
[statementlist]
ld 253.13 //常on
out tr0
cmp 002 #ffff
//确定温控单元是否完成初始化
and not 255.06 //等于
out 041.15 //初始化完成
ld tr0
and 041.15
out tr1
and not 040.10
//不在参数设置状态
mov dm0050 102
//将设置温度dm50传送给pid输出字
ld tr1
mov 002 dm0057
//将002传送到dm57
[network]
name="setting start" //设置开始
[statementlist]
ld 253.13
out tr0
and 229.05
//触摸屏上的开始设置开关
difu 080.05 //设置微分
ld tr0
and 041.15
and 080.05
set 040.01 //开始设置标志位1
set 040.10 //开始设置标志位2
[network]
name="poportion" //比例带设置
[statementlist]
ld 040.01
out tr0
and not 042.01
mov #c110 102
//读输出边与输入边的比例带
cmp 002 #c110
//比较输入字是否变成c110and 255.06 //等于 set 042.01 //设置比例带标志
ld tr0
and 042.01
mov dm0051 102
//将比例带的设定值写入输出字
cmp 002 dm0051 //是否写入#p#分页标题#e#
and 255.06
set 040.01 //复位标志1
rset 042.01 //复位比例带标志
set 040.02 //向下继续设置标志
[network]
name="integral"//积分时间设置
[statementlist]
ld 040.02
out tr0
and not 042.02
mov #c220 102
//读输出边与输入边的积分
cmp 002 #c220
//比较输入字是否变成c220
and 255.06
set 042.02 //设置积分标志
ld tr0
and 042.02
mov dm0052 102
//将积分的设定值写入输出字
cmp 002 dm0052 //是否写入
and 255.06
rset 040.02
rset 042.02
set 040.03 //向下继续设置标志
[network]
name="differential"//微分时间设置
[statementlist]
ld 040.03
out tr0
and not 042.03
mov #c330 102
//读输出边与输入边的微分
cmp 002 #c330
//比较输入字是否变成c330
and 255.06
set 042.03 //设置微分标志
ld tr0
and 042.03
mov dm0053 102
//将微分的设定值写入输出字
cmp 002 dm0053 //是否写入
and 255.06
rset 040.03
rset 042.03
set 040.04 //向下继续设置标志
[network]
name="hysteresis"//滞后值设置#p#分页标题#e#
[statementlist]
ld 040.04
out tr0
and not 042.04
mov #c440 102
//读输出边与输入边的滞后值
cmp 002 #c440
//比较输入字是否变成c440
and 255.06
set 042.04 //设置滞后值标志
ld tr0
and 042.04
mov dm0054 102
//将滞后值的设定值写入输出字
cmp 002 dm0054 //是否写入
and 255.06
rset 040.04
rset 042.04
set 040.05 //向下继续设置标志
[network]
name="period" //控制周期设置
[statementlist]
ld 040.05
out tr0
and not
042.05
mov #c550 102
//读输出边与输入边的控制周期
cmp 002 #c550
//比较输入字是否变成c550
and 255.06
set 042.05 //设置控制周期标志
ld tr0
and 042.05
mov dm0055 102
//将控制周期的设定值写入输出字
cmp 002 dm0055 //是否写入
and 255.06
rset 040.05
rset 042.05
set 040.06 //向下继续设置标志
[network]
name="shift" //偏移量设置
[statementlist]
ld 040.06
out tr0
and not 042.06
mov #c660 102
//读输出边与输入边的偏移量
cmp 002 #c660 #p#分页标题#e#
//比较输入字是否变成c660
and 255.06
set 042.06 //设置偏移量标志
ld tr0
and 042.06
mov dm0056 102
//将偏移量的设定值写入输出字
cmp 002 dm0056 //是否写入
and 255.06
rset 040.06
rset 042.06
set 040.00
[network]
name="return" //返回
[statementlist]
out tr0
and not 042.00
mov #c070 102 //读输入边的处理值
cmp 002 #c070 //比较输入字变成c070
and 255.06
set 042.00 //返回标志
ld tr0
and 042.00
mov dm0050 102
//将设定温度值写入输出字
rset 040.00
rset 042.00
rset 040.10
以上是pid温度控制的plc程序设计实例,经过反复试验,该系统可以维持温度在1℃之间变化,保证了好的生产状况,减少了不合格品发生的几率。