溫度控制是許多機器的重要的構(gòu)成部分。它的功能是將溫度控制在所需要的溫度范圍內(nèi),然后進行工件的加工與處理。pid控制系統(tǒng)是得到廣泛應(yīng)用的控制方法之一,下面較為詳盡地介紹了pid溫度控制的plc程序設(shè)計實例。
(1)系統(tǒng)組成
本套系統(tǒng)采用omron的plc與其溫控單元以及pro-face的觸摸屏所組成。系統(tǒng)包括cqm1h-51、擴展單元tc-101、gp577r以及探溫器、加熱/制冷單元。
(2)觸摸屏參數(shù)設(shè)置
設(shè)002代表現(xiàn)在的溫度,而102表示輸出的溫度。如按下開始設(shè)置就可設(shè)置參數(shù)。需要設(shè)置的參數(shù)有6個,分別是比例帶、積分時間、微分時間、滯后值、控制周期、偏移量。它們在plc的地址與一些開關(guān)的地址如下:
比例帶:dm51積分時間:dm52
微分時間:dm53滯后值:dm54
控制周期:dm55偏移量:dm56
數(shù)據(jù)刷新:22905
(3)plc程序
002:pid的輸入字
102:pid的輸出字
[network]#p#分頁標題#e#
name=actioncheck//常規(guī)檢查
[statementlist]
ld253.13//常on
outtr0
cmp002#ffff
//確定溫控單元是否完成初始化
andnot255.06//等于
out041.15//初始化完成
ldtr0
and041.15
outtr1
andnot040.10
//不在參數(shù)設(shè)置狀態(tài)
movdm0050102
//將設(shè)置溫度dm50傳送給pid輸出字
ldtr1
mov002dm0057
//將002傳送到dm57
[network]
name=settingstart//設(shè)置開始
[statementlist]
ld253.13
outtr0
and229.05
//觸摸屏上的開始設(shè)置開關(guān)
difu080.05//設(shè)置微分
ldtr0
and041.15
and080.05
set040.01//開始設(shè)置標志位1
set040.10//開始設(shè)置標志位2
[network]
name=poportion//比例帶設(shè)置
[statementlist]
ld040.01
outtr0
andnot042.01
mov#c110102
//讀輸出邊與輸入邊的比例帶
cmp002#c110
//比較輸入字是否變成c110and255.06//等于set042.01//設(shè)置比例帶標志
ldtr0
and042.01
movdm0051102
//將比例帶的設(shè)定值寫入輸出字
cmp002dm0051//是否寫入#p#分頁標題#e#
and255.06
set040.01//復(fù)位標志1
rset042.01//復(fù)位比例帶標志
set040.02//向下繼續(xù)設(shè)置標志
[network]
name=integral//積分時間設(shè)置
[statementlist]
ld040.02
outtr0
andnot042.02
mov#c220102
//讀輸出邊與輸入邊的積分
cmp002#c220
//比較輸入字是否變成c220
and255.06
set042.02//設(shè)置積分標志
ldtr0
and042.02
movdm0052102
//將積分的設(shè)定值寫入輸出字
cmp002dm0052//是否寫入
and255.06
rset040.02
rset042.02
set040.03//向下繼續(xù)設(shè)置標志
[network]
name=differential//微分時間設(shè)置
[statementlist]
ld040.03
outtr0
andnot042.03
mov#c330102
//讀輸出邊與輸入邊的微分
cmp002#c330
//比較輸入字是否變成c330
and255.06
set042.03//設(shè)置微分標志
ldtr0
and042.03
movdm0053102
//將微分的設(shè)定值寫入輸出字
cmp002dm0053//是否寫入
and255.06
rset040.03
rset042.03
set040.04//向下繼續(xù)設(shè)置標志
[network]
name=hysteresis//滯后值設(shè)置#p#分頁標題#e#
[statementlist]
ld040.04
outtr0
andnot042.04
mov#c440102
//讀輸出邊與輸入邊的滯后值
cmp002#c440
//比較輸入字是否變成c440
and255.06
set042.04//設(shè)置滯后值標志
ldtr0
and042.04
movdm0054102
//將滯后值的設(shè)定值寫入輸出字
cmp002dm0054//是否寫入
and255.06
rset040.04
rset042.04
set040.05//向下繼續(xù)設(shè)置標志
[network]
name=period//控制周期設(shè)置
[statementlist]
ld040.05
outtr0
andnot
042.05
mov#c550102
//讀輸出邊與輸入邊的控制周期
cmp002#c550
//比較輸入字是否變成c550
and255.06
set042.05//設(shè)置控制周期標志
ldtr0
and042.05
movdm0055102
//將控制周期的設(shè)定值寫入輸出字
cmp002dm0055//是否寫入
and255.06
rset040.05
rset042.05
set040.06//向下繼續(xù)設(shè)置標志
[network]
name=shift//偏移量設(shè)置
[statementlist]
ld040.06
outtr0
andnot042.06
mov#c660102
//讀輸出邊與輸入邊的偏移量
cmp002#c660#p#分頁標題#e#
//比較輸入字是否變成c660
and255.06
set042.06//設(shè)置偏移量標志
ldtr0
and042.06
movdm0056102
//將偏移量的設(shè)定值寫入輸出字
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
//將設(shè)定溫度值寫入輸出字
rset040.00
rset042.00
rset040.10
以上是pid溫度控制的plc程序設(shè)計實例,經(jīng)過反復(fù)試驗,該系統(tǒng)可以維持溫度在1℃之間變化,保證了好的生產(chǎn)狀況,減少了不合格品發(fā)生的幾率。