溫度控制是許多機(jī)器的重要的構(gòu)成部分。它的功能是將溫度控制在所需要的溫度范圍內(nèi),然后進(jìn)行工件的加工與處理。pid控制系統(tǒng)是得到廣泛應(yīng)用的控制方法之一,下面較為詳盡地介紹了pid溫度控制的程序設(shè)計(jì)實(shí)例。
(1) 系統(tǒng)組成
本套系統(tǒng)采用omron的plc與其溫控單元以及pro-face的所組成。系統(tǒng)包括cqm1h-51、擴(kuò)展單元tc-101、gp577r以及探溫器、加熱/單元。
(2) 觸摸屏參數(shù)設(shè)置
設(shè)002代表現(xiàn)在的溫度,而102表示輸出的溫度。如按下開(kāi)始設(shè)置就可設(shè)置參數(shù)。需要設(shè)置的參數(shù)有6個(gè),分別是比例帶、積分時(shí)間、微分時(shí)間、滯后值、控制周期、偏移量。它們?cè)趐lc的地址與一些開(kāi)關(guān)的地址如下:
比例帶 : dm51 積分時(shí)間 : dm52
微分時(shí)間 : dm53 滯后值 : dm54
控制周期 : dm55 偏移量 : dm56
數(shù)據(jù)刷新 : 22905
(3) plc程序
002:pid的輸入字
102:pid的輸出字
[network]#p#分頁(yè)標(biāo)題#e#
name="bbbbbb check" //常規(guī)檢查
[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
//不在參數(shù)設(shè)置狀態(tài)
mov dm0050 102
//將設(shè)置溫度dm50傳送給pid輸出字
ld tr1
mov 002 dm0057
//將002傳送到dm57
[network]
name="setting start" //設(shè)置開(kāi)始
[statementlist]
ld 253.13
out tr0
and 229.05
//觸摸屏上的開(kāi)始設(shè)置開(kāi)關(guān)
difu 080.05 //設(shè)置微分
ld tr0
and 041.15
and 080.05
set 040.01 //開(kāi)始設(shè)置標(biāo)志位1
set 040.10 //開(kāi)始設(shè)置標(biāo)志位2
[network]
name="poportion" //比例帶設(shè)置
[statementlist]
ld 040.01
out tr0
and not 042.01
mov #c110 102
//讀輸出邊與輸入邊的比例帶
cmp 002 #c110
//比較輸入字是否變成c110and 255.06 //等于 set 042.01 //設(shè)置比例帶標(biāo)志
ld tr0
and 042.01
mov dm0051 102
//將比例帶的設(shè)定值寫(xiě)入輸出字
cmp 002 dm0051 //是否寫(xiě)入#p#分頁(yè)標(biāo)題#e#
and 255.06
set 040.01 //復(fù)位標(biāo)志1
rset 042.01 //復(fù)位比例帶標(biāo)志
set 040.02 //向下繼續(xù)設(shè)置標(biāo)志
[network]
name="integral"http://積分時(shí)間設(shè)置
[statementlist]
ld 040.02
out tr0
and not 042.02
mov #c220 102
//讀輸出邊與輸入邊的積分
cmp 002 #c220
//比較輸入字是否變成c220
and 255.06
set 042.02 //設(shè)置積分標(biāo)志
ld tr0
and 042.02
mov dm0052 102
//將積分的設(shè)定值寫(xiě)入輸出字
cmp 002 dm0052 //是否寫(xiě)入
and 255.06
rset 040.02
rset 042.02
set 040.03 //向下繼續(xù)設(shè)置標(biāo)志
[network]
name="differential"http://微分時(shí)間設(shè)置
[statementlist]
ld 040.03
out tr0
and not 042.03
mov #c330 102
//讀輸出邊與輸入邊的微分
cmp 002 #c330
//比較輸入字是否變成c330
and 255.06
set 042.03 //設(shè)置微分標(biāo)志
ld tr0
and 042.03
mov dm0053 102
//將微分的設(shè)定值寫(xiě)入輸出字
cmp 002 dm0053 //是否寫(xiě)入
and 255.06
rset 040.03
rset 042.03
set 040.04 //向下繼續(xù)設(shè)置標(biāo)志
[network]
name="hysteresis"http://滯后值設(shè)置#p#分頁(yè)標(biāo)題#e#
[statementlist]
ld 040.04
out tr0
and not 042.04
mov #c440 102
//讀輸出邊與輸入邊的滯后值
cmp 002 #c440
//比較輸入字是否變成c440
and 255.06
set 042.04 //設(shè)置滯后值標(biāo)志
ld tr0
and 042.04
mov dm0054 102
//將滯后值的設(shè)定值寫(xiě)入輸出字
cmp 002 dm0054 //是否寫(xiě)入
and 255.06
rset 040.04
rset 042.04
set 040.05 //向下繼續(xù)設(shè)置標(biāo)志
[network]
name="period" //控制周期設(shè)置
[statementlist]
ld 040.05
out tr0
and not
042.05
mov #c550 102
//讀輸出邊與輸入邊的控制周期
cmp 002 #c550
//比較輸入字是否變成c550
and 255.06
set 042.05 //設(shè)置控制周期標(biāo)志
ld tr0
and 042.05
mov dm0055 102
//將控制周期的設(shè)定值寫(xiě)入輸出字
cmp 002 dm0055 //是否寫(xiě)入
and 255.06
rset 040.05
rset 042.05
set 040.06 //向下繼續(xù)設(shè)置標(biāo)志
[network]
name="shift" //偏移量設(shè)置
[statementlist]
ld 040.06
out tr0
and not 042.06
mov #c660 102
//讀輸出邊與輸入邊的偏移量
cmp 002 #c660 #p#分頁(yè)標(biāo)題#e#
//比較輸入字是否變成c660
and 255.06
set 042.06 //設(shè)置偏移量標(biāo)志
ld tr0
and 042.06
mov dm0056 102
//將偏移量的設(shè)定值寫(xiě)入輸出字
cmp 002 dm0056 //是否寫(xiě)入
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 //返回標(biāo)志
ld tr0
and 042.00
mov dm0050 102
//將設(shè)定溫度值寫(xiě)入輸出字
rset 040.00
rset 042.00
rset 040.10
以上是pid溫度控制的plc程序設(shè)計(jì)實(shí)例,經(jīng)過(guò)反復(fù)試驗(yàn),該系統(tǒng)可以維持溫度在1℃之間變化,保證了好的生產(chǎn)狀況,減少了不合格品發(fā)生的幾率。










