温度控制是许多机器的重要的构成部分。它的功能是将温度控制在所需要的温度范围内,然后进行工件的加工与处理。pid控制系统是得到广泛应用的控制方法之一,下面较为详尽地介绍了pid温度控制的plc程序设计实例。
(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=actioncheck//常规检查
[statementlist]
ld253.13//常on
outtr0
cmp002#ffff
//确定温控单元是否完成初始化
andnot255.06//等于
out041.15//初始化完成
ldtr0
and041.15
outtr1
andnot040.10
//不在参数设置状态
movdm0050102
//将设置温度dm50传送给pid输出字
ldtr1
mov002dm0057
//将002传送到dm57
[network]
name=settingstart//设置开始
[statementlist]
ld253.13
outtr0
and229.05
//触摸屏上的开始设置开关
difu080.05//设置微分
ldtr0
and041.15
and080.05
set040.01//开始设置标志位1
set040.10//开始设置标志位2
[network]
name=poportion//比例带设置
[statementlist]
ld040.01
outtr0
andnot042.01
mov#c110102
//读输出边与输入边的比例带
cmp002#c110
//比较输入字是否变成c110and255.06//等于set042.01//设置比例带标志
ldtr0
and042.01
movdm0051102
//将比例带的设定值写入输出字
cmp002dm0051//是否写入#p#分页标题#e#
and255.06
set040.01//复位标志1
rset042.01//复位比例带标志
set040.02//向下继续设置标志
[network]
name=integral//积分时间设置
[statementlist]
ld040.02
outtr0
andnot042.02
mov#c220102
//读输出边与输入边的积分
cmp002#c220
//比较输入字是否变成c220
and255.06
set042.02//设置积分标志
ldtr0
and042.02
movdm0052102
//将积分的设定值写入输出字
cmp002dm0052//是否写入
and255.06
rset040.02
rset042.02
set040.03//向下继续设置标志
[network]
name=differential//微分时间设置
[statementlist]
ld040.03
outtr0
andnot042.03
mov#c330102
//读输出边与输入边的微分
cmp002#c330
//比较输入字是否变成c330
and255.06
set042.03//设置微分标志
ldtr0
and042.03
movdm0053102
//将微分的设定值写入输出字
cmp002dm0053//是否写入
and255.06
rset040.03
rset042.03
set040.04//向下继续设置标志
[network]
name=hysteresis//滞后值设置#p#分页标题#e#
[statementlist]
ld040.04
outtr0
andnot042.04
mov#c440102
//读输出边与输入边的滞后值
cmp002#c440
//比较输入字是否变成c440
and255.06
set042.04//设置滞后值标志
ldtr0
and042.04
movdm0054102
//将滞后值的设定值写入输出字
cmp002dm0054//是否写入
and255.06
rset040.04
rset042.04
set040.05//向下继续设置标志
[network]
name=period//控制周期设置
[statementlist]
ld040.05
outtr0
andnot
042.05
mov#c550102
//读输出边与输入边的控制周期
cmp002#c550
//比较输入字是否变成c550
and255.06
set042.05//设置控制周期标志
ldtr0
and042.05
movdm0055102
//将控制周期的设定值写入输出字
cmp002dm0055//是否写入
and255.06
rset040.05
rset042.05
set040.06//向下继续设置标志
[network]
name=shift//偏移量设置
[statementlist]
ld040.06
outtr0
andnot042.06
mov#c660102
//读输出边与输入边的偏移量
cmp002#c660#p#分页标题#e#
//比较输入字是否变成c660
and255.06
set042.06//设置偏移量标志
ldtr0
and042.06
movdm0056102
//将偏移量的设定值写入输出字
cmp002dm0056//是否写入
and255.06
rset040.06
rset042.06
set040.00
[network]
name=return//返回
[statementlist]
outtr0
andnot042.00
mov#c070102//读输入边的处理值
cmp002#c070//比较输入字变成c070
and255.06
set042.00//返回标志
ldtr0
and042.00
movdm0050102
//将设定温度值写入输出字
rset040.00
rset042.00
rset040.10
以上是pid温度控制的plc程序设计实例,经过反复试验,该系统可以维持温度在1℃之间变化,保证了好的生产状况,减少了不合格品发生的几率。