一.PID控制
S7-200 SMART能夠進(jìn)行PID控制。S7-200 SMART CPU最多可以支持8個(gè)PID控制回路(8個(gè)PID指令功能塊)。
PID是閉環(huán)控制系統(tǒng)的比例-積分-微分控制算法。
PID控制器根據(jù)設(shè)定值(給定)與被控對(duì)象的實(shí)際值(反饋)的差值,按照PID算法計(jì)算出控制器的輸出量,控制執(zhí)行機(jī)構(gòu)去影響被控對(duì)象的變化。
PID控制是負(fù)反饋閉環(huán)控制,能夠抑制系統(tǒng)閉環(huán)內(nèi)的各種因素所引起的擾動(dòng),使反饋跟隨給定變化。
根據(jù)具體項(xiàng)目的控制要求,在實(shí)際應(yīng)用中有可能用到其中的一部分,比如常用的是PI(比例-積分)控制,這時(shí)沒有微分控制部分。
PID算法在S7-200 SMART中的實(shí)現(xiàn)
PID控制最初在模擬量控制系統(tǒng)中實(shí)現(xiàn),隨著離散控制理論的發(fā)展,PID也在計(jì)算機(jī)化控制系統(tǒng)中實(shí)現(xiàn)。
二.PID向?qū)?/strong>
Micro/WIN SMART提供了PID Wizard(PID指令向?qū)В梢詭椭脩舴奖愕厣梢粋€(gè)閉環(huán)控制過程的PID算法。此向?qū)Э梢酝瓿山^大多數(shù)PID運(yùn)算的自動(dòng)編程,用戶只需在主程序中調(diào)用PID向?qū)傻淖映绦?,就可以完成PID控制任務(wù)。
PID向?qū)Ъ瓤梢陨赡M量輸出PID控制算法,也支持開關(guān)量輸出;既支持連續(xù)自動(dòng)調(diào)節(jié),也支持手動(dòng)參與控制。建議用戶使用此向?qū)?duì)PID編程,以避免不必要的錯(cuò)誤。
PID向?qū)Ь幊滩襟E
使用以下方法之一打開 PID 向?qū)В?1.在Micro/WIN SMART中的工具菜單中選擇PID向?qū)В?/p>
圖1. 選擇PID向?qū)?/p>
2.在項(xiàng)目樹中打開'向?qū)?#39;文件夾,然后雙擊'PID',或選擇'PID'并按回車鍵。
圖2. 選擇PID向?qū)?/p>
第一步:定義需要配置的PID回路號(hào)
在此對(duì)話框中選擇要組態(tài)的回路。 最多可組態(tài) 8 個(gè)回路。 在此對(duì)話框上選擇回路時(shí),PID 向?qū)ё髠?cè)的樹視圖隨組態(tài)該回路所需的所有節(jié)點(diǎn)一起更新。
圖3. 選擇需要配置的回路
第二步:為回路組態(tài)命名
可為回路組態(tài)自定義名稱。 此部分的默認(rèn)名稱是'回路 x',其中'x'等于回路編號(hào)。
圖4. 為PID回路命名
第三步:設(shè)定PID回路參數(shù)
圖5. 設(shè)置PID參數(shù)
圖5中定義了PID回路參數(shù),這些參數(shù)都應(yīng)當(dāng)是實(shí)數(shù):
增益: 即比例常數(shù),默認(rèn)值=1.00。
1積分時(shí)間:如果不想要積分作用可以將該值設(shè)置很大(比如10000.0),默認(rèn)值=10.00。
2微分時(shí)間:如果不想要微分回路,可以把微分時(shí)間設(shè)為0 ,默認(rèn)值=0.00。
3采樣時(shí)間:是PID控制回路對(duì)反饋采樣和重新計(jì)算輸出值的時(shí)間間隔,,默認(rèn)值=1.00。在向?qū)瓿珊?,若想要修改此?shù),則必須返回向?qū)е行薷?,不可在程序中或狀態(tài)表中修改。
注意:關(guān)于具體的PID參數(shù)值,每一個(gè)項(xiàng)目都不一樣,需要現(xiàn)場(chǎng)調(diào)試來定,沒有所謂經(jīng)驗(yàn)參數(shù)。
第四步:設(shè)定回路過程變量
圖6. 設(shè)定PID輸入過程變量
指定回路過程變量 (PV) 如何標(biāo)定??梢詮囊韵逻x項(xiàng)中選擇:
1.單極性:即輸入的信號(hào)為正,如0-10V或0-20mA等
2.雙極性:輸入信號(hào)在從負(fù)到正的范圍內(nèi)變化。如輸入信號(hào)為±10V、±5V等時(shí)選用
3.選用20%偏移:如果輸入為4-20mA則選單極性及此項(xiàng),4mA是0-20mA信號(hào)的20%,所以選20% 偏移,即4mA對(duì)應(yīng)5530,20mA對(duì)應(yīng)27648。
4.溫度 x 10 °C
5溫度 x 10 °F
反饋輸入取值范圍
1在a.設(shè)置為單極時(shí),缺省值為0 - 27648,對(duì)應(yīng)輸入量程范圍0 - 10V或0 - 20mA等,輸入信號(hào)為正
2在a.設(shè)置為雙極時(shí),缺省的取值為-27648 - +27648,對(duì)應(yīng)的輸入范圍根據(jù)量程不同可以是±10V、±5V等
3在a.選中20% 偏移量時(shí),取值范圍為5530 - 27648,不可改變
在'標(biāo)定'(Scaling) 參數(shù)中,指定回路設(shè)定值 (SP) 如何標(biāo)定。 默認(rèn)值是 0.0 和 100.0 之間的一個(gè)實(shí)數(shù)。此反饋輸入也可以是工程單位數(shù)值,參見:設(shè)置給定-反饋的量程范圍。
第五步:設(shè)定輸入回路輸出選項(xiàng)
圖7. 設(shè)定PID輸出選項(xiàng)
1輸出類型可以選擇模擬量輸出或數(shù)字量輸出。模擬量輸出用來控制一些需要模擬量給定的設(shè)備,如比例閥、變頻器等;數(shù)字量輸出實(shí)際上是控制輸出點(diǎn)的通、斷狀態(tài)按照一定的占空比變化,可以控制固態(tài)繼電器(加熱棒等)
選擇模擬量則需設(shè)定回路輸出變量值的范圍,可以選擇:
1. 單極:?jiǎn)螛O性輸出,可為0-10V或0-20mA等
2. 雙極:雙極性輸出,可為正負(fù)10V或正負(fù)5V等
3. 單極20% 偏移量:如果選中20% 偏移,使輸出為4 - 20mA
4. 取值范圍:
0. c為單極時(shí),缺省值為 0 到 27648
0. c為雙極時(shí),取值-27648 到27648
0. c為20%偏移量時(shí),取值5530 - 27648 ,不可改變
如果選擇了開關(guān)量輸出,需要設(shè)定此循環(huán)周期,如圖7所示:
圖8. 設(shè)定PID輸出為數(shù)字量
第六步:設(shè)定回路報(bào)警選項(xiàng)
圖9. 設(shè)定回路報(bào)警限幅值
向?qū)峁┝巳齻€(gè)輸出來反映過程值(PV)的低值報(bào)警、高值報(bào)警及過程值模擬量模塊錯(cuò)誤狀態(tài)。當(dāng)報(bào)警條件滿足時(shí),輸出置位為1。這些功能在選中了相應(yīng)的選擇框之后起作用。
1. 使能低值報(bào)警并設(shè)定過程值(PV)報(bào)警的低值,此值為過程值的百分?jǐn)?shù),缺省值為0.10,即報(bào)警的低值為過程值的10%。此值最低可設(shè)為0.01,即滿量程的1%
2. 使能高值報(bào)警并設(shè)定過程值(PV)報(bào)警的高值,此值為過程值的百分?jǐn)?shù),缺省值為0.90,即報(bào)警的高值為過程值的90%。此值最高可設(shè)為1.00,即滿量程的100%
3. 使能過程值(PV)模擬量模塊錯(cuò)誤報(bào)警并設(shè)定模塊于CPU連接時(shí)所處的模塊位置。'EM0'就是第一個(gè)擴(kuò)展模塊的位置
第七步:定義向?qū)傻腜ID初使化子程序和中斷程序名及手/自動(dòng)模式
圖10. 指定子程序、中斷服務(wù)程序名和選擇手動(dòng)控制
向?qū)б呀?jīng)為初使化子程序和中斷子程序定義了缺省名,你也可以修改成自己起的名字。
1. 指定PID初使化子程序的名字。
2. 指定PID中斷子程序的名字注意:
1. 如果你的項(xiàng)目中已經(jīng)存在一個(gè)PID配置,則中斷程序名為只讀,不可更改。因?yàn)橐粋€(gè)項(xiàng)目中所有PID共用一個(gè)中斷程序,它的名字不會(huì)被任何新的PID所更改。
2. PID向?qū)е袛嘤玫氖荢MB34定時(shí)中斷,在用戶使用了PID向?qū)Ш螅⒁庠谄渌幊虝r(shí)不要再用此中斷,也不要向SMB34中寫入新的數(shù)值,否則PID將停止工作。
3. 此處可以選擇添加PID 手動(dòng)控制模式。在PID手動(dòng)控制模式下,回路輸出由手動(dòng)輸出設(shè)定控制,此時(shí)需要寫入手動(dòng)控制輸出參數(shù)一個(gè)0.0-1.0的實(shí)數(shù),代表輸出的0%-100%而不是直接去改變輸出值。PID控制的自動(dòng)/手動(dòng)之間的無擾動(dòng)切換
第八步:指定PID運(yùn)算數(shù)據(jù)存儲(chǔ)區(qū)
圖11. 分配運(yùn)算數(shù)據(jù)存儲(chǔ)區(qū)
PID指令(功能塊)使用了一個(gè)120個(gè)字節(jié)的V區(qū)參數(shù)表來進(jìn)行控制回路的運(yùn)算工作;除此之外,PID向?qū)傻妮斎?輸出量的標(biāo)準(zhǔn)化程序也需要運(yùn)算數(shù)據(jù)存儲(chǔ)區(qū)。需要為它們定義一個(gè)起始地址,要保證該地址起始的若干字節(jié)在程序的其它地方?jīng)]有被重復(fù)使用。如果點(diǎn)擊'建議',則向?qū)⒆詣?dòng)為你設(shè)定當(dāng)前程序中沒有用過的V區(qū)地址。
自動(dòng)分配的地址只是在執(zhí)行PID向?qū)r(shí)編譯檢測(cè)到空閑地址。向?qū)⒆詣?dòng)為該參數(shù)表分配符號(hào)名,用戶不要再自己為這些參數(shù)分配符號(hào)名,否則將導(dǎo)致PID控制不執(zhí)行。
第九步:生成PID子程序、中斷程序及符號(hào)表等
一旦點(diǎn)擊完成按鈕,將在你的項(xiàng)目中生成上述PID子程序、中斷程序及符號(hào)表等。
圖12. 生成PID子程序、中斷程序和符號(hào)表等
第十步:配置完P(guān)ID向?qū)?,需要在程序中調(diào)用向?qū)傻腜ID子程序(如下圖)
圖13. PID子程序
圖14. 調(diào)用PID子程序
在用戶程序中調(diào)用PID子程序時(shí),可在指令樹的程序塊中用鼠標(biāo)雙擊由向?qū)傻腜ID子程序,在局部變量表中,可以看到有關(guān)形式參數(shù)的解釋和取值范圍。
1. 必須用SM0.0來使能 PIDx_CTRL 子程序,SM0.0 后不能串聯(lián)任何其他條件,而且也不能有越過它的跳轉(zhuǎn);如果在子程序中調(diào)用 PIDx_CTRL 子程序,則調(diào)用它的子程序也必須僅使用 SM0.0 調(diào)用,以保證它的正常運(yùn)行
2. 此處輸入過程值(反饋)的模擬量輸入地址
3. 此處輸入設(shè)定值變量地址(VDxx),或者直接輸入設(shè)定值常數(shù),根據(jù)向?qū)е械脑O(shè)定0.0-100.0,此處應(yīng)輸入一個(gè)0.0-100.0的實(shí)數(shù),例:若輸入20,即為過程值的20%,假設(shè)過程值AIW0是量程為0-200度的溫度值,則此處的設(shè)定值20代表40度(即200度的20%);如果在向?qū)е性O(shè)定給定范圍為0.0 - 200.0,則此處的20相當(dāng)于20度
4. 此處用I0.0控制PID的手/自動(dòng)方式,當(dāng)I0.0為1時(shí),為自動(dòng),經(jīng)過PID運(yùn)算從AQW0輸出;當(dāng)I0.0為0時(shí),PID將停止計(jì)算,AQW0輸出為ManualOutput(VD4)中的設(shè)定值,此時(shí)不要另外編程或直接給AQW0賦值。若在向?qū)е袥]有選擇PID手動(dòng)功能,則此項(xiàng)不會(huì)出現(xiàn)
5. 定義PID手動(dòng)狀態(tài)下的輸出,從AQW0輸出一個(gè)滿值范圍內(nèi)對(duì)應(yīng)此值的輸出量。此處可輸入手動(dòng)設(shè)定值的變量地址(VDxx),或直接輸入數(shù)。數(shù)值范圍為0.0-1.0之間的一個(gè)實(shí)數(shù),代表輸出范圍的百分比。例:如輸入0.5,則設(shè)定為輸出的50%。若在向?qū)е袥]有選擇PID手動(dòng)功能,則此項(xiàng)不會(huì)出現(xiàn)
6. 此處鍵入控制量的輸出地址
7. 當(dāng)高報(bào)警條件滿足時(shí),相應(yīng)的輸出置位為1,若在向?qū)е袥]有使能高報(bào)警功能,則此項(xiàng)將不會(huì)出現(xiàn)
8. 當(dāng)?shù)蛨?bào)警條件滿足時(shí),相應(yīng)的輸出置位為1,若在向?qū)е袥]有使能低報(bào)警功能,則此項(xiàng)將不會(huì)出現(xiàn)
9. 當(dāng)模塊出錯(cuò)時(shí),相應(yīng)的輸出置位為1,若在向?qū)е袥]有使能模塊錯(cuò)誤報(bào)警功能,則此項(xiàng)將不會(huì)出現(xiàn)
調(diào)用PID子程序時(shí),不用考慮中斷程序。子程序會(huì)自動(dòng)初始化相關(guān)的定時(shí)中斷處理事項(xiàng),然后中斷程序會(huì)自動(dòng)執(zhí)行。
第十一步:實(shí)際運(yùn)行并調(diào)試PID參數(shù)
沒有一個(gè)PID項(xiàng)目的參數(shù)不需要修改而能直接運(yùn)行,因此需要在實(shí)際運(yùn)行時(shí)調(diào)試PID參數(shù)。
查看數(shù)據(jù)塊以及符號(hào)表相應(yīng)的PID符號(hào)標(biāo)簽的內(nèi)容,可以找到包括PID核心指令所用的控制回路表,包括比例系數(shù)、積分時(shí)間等等。將此表的地址復(fù)制到狀態(tài)表中,可以在監(jiān)控模式下在線修改PID參數(shù),而不必停機(jī)再次做配置。
參數(shù)調(diào)試合適后,用戶可以在數(shù)據(jù)塊中寫入,也可以再做一次向?qū)?,或者編程向相?yīng)的數(shù)據(jù)區(qū)傳送參數(shù)。
常問問題
做完P(guān)ID向?qū)Ш?,如何知道向?qū)е性O(shè)定值,過程值及PID等參數(shù)所用的地址?
· 做完P(guān)ID向?qū)Ш罂稍诜?hào)表中,查看PID向?qū)傻姆?hào)表(上例中為PID0_SYM),可看到各參數(shù)所用的詳細(xì)地址,及數(shù)值范圍。
· 在數(shù)據(jù)塊中,查看PID指令回路表的相關(guān)參數(shù)。如圖所示:
圖15. PID數(shù)據(jù)塊
1. 做完P(guān)ID向?qū)Ш?,如何在調(diào)試中修改PID參數(shù)?
答:可以在狀態(tài)表中,輸入相應(yīng)的參數(shù)地址,然后在線寫入用戶需要的PID參數(shù)數(shù)值,這樣用戶就可根據(jù)工藝需要隨時(shí)對(duì)PID參數(shù)、設(shè)定值等進(jìn)行調(diào)整。
2.PID已經(jīng)調(diào)整合適,如何正式確定參數(shù)?答:可以在數(shù)據(jù)塊中直接寫入?yún)?shù)。
3.做完P(guān)ID向?qū)Ш?,能否查看PID生成的子程序,中斷程序? 答:PID向?qū)傻淖映绦?,中斷程序用戶是無法看到的,也不能對(duì)其進(jìn)行修改。沒有密碼能夠打開這些子程序,一般的應(yīng)用也沒有必要打開查看。
4.PID參數(shù)有經(jīng)驗(yàn)值嗎? 答:每一個(gè)項(xiàng)目的PID 參數(shù)都不一樣,沒有經(jīng)驗(yàn)參數(shù),只能現(xiàn)場(chǎng)調(diào)試獲得。
5.我的PID向?qū)傻某绦驗(yàn)楹尾粓?zhí)行?
答:必須保證用SM0.0無條件調(diào)用PID0_CTRL程序
在程序的其它部分不要再使用SMB34定時(shí)中斷,也不要對(duì)SMB34賦值
6.如何實(shí)現(xiàn)PID反作用調(diào)節(jié)?
答:在有些控制中需要PID反作用調(diào)節(jié)。例如:在夏天控制空調(diào)制冷時(shí),若反饋溫度(過程值)低于設(shè)定溫度,需要關(guān)閥,減小輸出控制(減少冷水流量等),這就是PID反作用調(diào)節(jié)(在PID正作用中若過程值小于設(shè)定值,則需要增大輸出控制)。若想實(shí)現(xiàn)PID反作用調(diào)節(jié),需要把PID回路的增益設(shè)為負(fù)數(shù)。對(duì)于增益為0的積分或微分控制來說,如果指定積分時(shí)間、微分時(shí)間為負(fù)值,則是反作用回路。
-
PID
+關(guān)注
關(guān)注
35文章
1469瀏覽量
85197 -
S7-200
+關(guān)注
關(guān)注
13文章
407瀏覽量
50290
原文標(biāo)題:在西門子S7-200 SMART中如何組態(tài)PID功能
文章出處:【微信號(hào):GKYXT1508,微信公眾號(hào):工控云學(xué)堂】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論