一、PID控制
西門(mén)子S7-200 SMART PLC能夠進(jìn)行PID控制。S7-200 SMART CPU最多可以支持8個(gè)PID控制回路(8個(gè)PID指令功能塊)。
PID是閉環(huán)控制系統的比例-積分-微分控制算法。
PID控制器根據設定值(給定)與被控對象的實(shí)際值(反饋)的差值,按照PID算法計算出控制器的輸出量,控制執行機構去影響被控對象的變化。
PID控制是負反饋閉環(huán)控制,能夠抑制系統閉環(huán)內的各種因素所引起的擾動(dòng),使反饋跟隨給定變化。
根據具體項目的控制要求,在實(shí)際應用中有可能用到其中的一部分,比如常用的是PI(比例-積分)控制,這時(shí)沒(méi)有微分控制部分。
PID算法在S7-200 SMART中的實(shí)現
PID控制最初在模擬量控制系統中實(shí)現,隨著(zhù)離散控制理論的發(fā)展,PID也在計算機化控制系統中實(shí)現。
二、PID向導
Micro/WIN SMART提供了PID Wizard(PID指令向導),可以幫助用戶(hù)方便地生成一個(gè)閉環(huán)控制過(guò)程的PID算法。此向導可以完成絕大多數PID運算的自動(dòng)編程,用戶(hù)只需在主程序中調用PID向導生成的子程序,就可以完成PID控制任務(wù)。
PID向導既可以生成模擬量輸出PID控制算法,也支持開(kāi)關(guān)量輸出;既支持連續自動(dòng)調節,也支持手動(dòng)參與控制。建議用戶(hù)使用此向導對PID編程,以避免不必要的錯誤。
PID向導編程步驟
使用以下方法之一打開(kāi) PID 向導:?
1.在Micro/WIN SMART中的工具菜單中選擇PID向導;
2.在項目樹(shù)中打開(kāi)'向導'文件夾,然后雙擊'PID',或選擇'PID'并按回車(chē)鍵。
第一步:定義需要配置的PID回路號
在此對話(huà)框中選擇要組態(tài)的回路。 最多可組態(tài) 8 個(gè)回路。 在此對話(huà)框上選擇回路時(shí),PID 向導左側的樹(shù)視圖隨組態(tài)該回路所需的所有節點(diǎn)一起更新。
第二步:為回路組態(tài)命名
可為回路組態(tài)自定義名稱(chēng)。 此部分的默認名稱(chēng)是'回路 x',其中'x'等于回路編號。
第三步:設定PID回路參數
定義PID回路參數,這些參數都應當是實(shí)數:
增益: 即比例常數,默認值=1.00。
1.積分時(shí)間:如果不想要積分作用可以將該值設置很大(比如10000.0),默認值=10.00。
2.微分時(shí)間:如果不想要微分回路,可以把微分時(shí)間設為0 ,默認值=0.00。
3.采樣時(shí)間:是PID控制回路對反饋采樣和重新計算輸出值的時(shí)間間隔,,默認值=1.00。在向導完成后,若想要修改此數,則必須返回向導中修改,不可在程序中或狀態(tài)表中修改。
注意:關(guān)于具體的PID參數值,每一個(gè)項目都不一樣,需要現場(chǎng)調試來(lái)定,沒(méi)有所謂經(jīng)驗參數。
第四步:設定回路過(guò)程變量
指定回路過(guò)程變量 (PV) 如何標定??梢詮囊韵逻x項中選擇:
1.單極性:即輸入的信號為正,如0-10V或0-20mA等
2.雙極性:輸入信號在從負到正的范圍內變化。如輸入信號為±10V、±5V等時(shí)選用
3.選用20%偏移:如果輸入為4-20mA則選單極性及此項,4mA是0-20mA信號的20%,所以選20% 偏移,即4mA對應5530,20mA對應27648。
4.溫度 x 10 °C
5溫度 x 10 °F
反饋輸入取值范圍
1.在a.設置為單極時(shí),缺省值為0 - 27648,對應輸入量程范圍0 - 10V或0 - 20mA等,輸入信號為正
2.在a.設置為雙極時(shí),缺省的取值為-27648 - +27648,對應的輸入范圍根據量程不同可以是±10V、±5V等
3.在a.選中20% 偏移量時(shí),取值范圍為5530 - 27648,不可改變
在'標定'(Scaling) 參數中,指定回路設定值 (SP) 如何標定。 默認值是 0.0 和 100.0 之間的一個(gè)實(shí)數。此反饋輸入也可以是工程單位數值,參見(jiàn):設置給定-反饋的量程范圍。
第五步:設定輸入回路輸出選項
輸出類(lèi)型可以選擇模擬量輸出或數字量輸出。模擬量輸出用來(lái)控制一些需要模擬量給定的設備,如比例閥、變頻器等;數字量輸出實(shí)際上是控制輸出點(diǎn)的通、斷狀態(tài)按照一定的占空比變化,可以控制固態(tài)繼電器(加熱棒等)
選擇模擬量則需設定回路輸出變量值的范圍,可以選擇:
1. 單極:?jiǎn)螛O性輸出,可為0-10V或0-20mA等
2. 雙極:雙極性輸出,可為正負10V或正負5V等
3. 單極20% 偏移量:如果選中20% 偏移,使輸出為4 - 20mA
4. 取值范圍:
0. c為單極時(shí),缺省值為 0 到 27648
0. c為雙極時(shí),取值-27648 到27648
0. c為20%偏移量時(shí),取值5530 - 27648 ,不可改變
如果選擇了開(kāi)關(guān)量輸出,需要設定此循環(huán)周期。
第六步:設定回路報警選項?
向導提供了三個(gè)輸出來(lái)反映過(guò)程值(PV)的低值報警、高值報警及過(guò)程值模擬量模塊錯誤狀態(tài)。當報警條件滿(mǎn)足時(shí),輸出置位為1。這些功能在選中了相應的選擇框之后起作用。
1. 使能低值報警并設定過(guò)程值(PV)報警的低值,此值為過(guò)程值的百分數,缺省值為0.10,即報警的低值為過(guò)程值的10%。此值最低可設為0.01,即滿(mǎn)量程的1%
2. 使能高值報警并設定過(guò)程值(PV)報警的高值,此值為過(guò)程值的百分數,缺省值為0.90,即報警的高值為過(guò)程值的90%。此值最高可設為1.00,即滿(mǎn)量程的100%
3. 使能過(guò)程值(PV)模擬量模塊錯誤報警并設定模塊于CPU連接時(shí)所處的模塊位置。'EM0'就是第一個(gè)擴展模塊的位置
第七步:定義向導所生成的PID初使化子程序和中斷程序名及手/自動(dòng)模式
向導已經(jīng)為初使化子程序和中斷子程序定義了缺省名,你也可以修改成自己起的名字。
1. 指定PID初使化子程序的名字。
2. 指定PID中斷子程序的名字注意:
1)如果你的項目中已經(jīng)存在一個(gè)PID配置,則中斷程序名為只讀,不可更改。因為一個(gè)項目中所有PID共用一個(gè)中斷程序,它的名字不會(huì )被任何新的PID所更改。
2)PID向導中斷用的是SMB34定時(shí)中斷,在用戶(hù)使用了PID向導后,注意在其它編程時(shí)不要再用此中斷,也不要向SMB34中寫(xiě)入新的數值,否則PID將停止工作。
3)此處可以選擇添加PID 手動(dòng)控制模式。在PID手動(dòng)控制模式下,回路輸出由手動(dòng)輸出設定控制,此時(shí)需要寫(xiě)入手動(dòng)控制輸出參數一個(gè)0.0-1.0的實(shí)數,代表輸出的0%-100%而不是直接去改變輸出值。PID控制的自動(dòng)/手動(dòng)之間的無(wú)擾動(dòng)切換
第八步:指定PID運算數據存儲區
PID指令(功能塊)使用了一個(gè)120個(gè)字節的V區參數表來(lái)進(jìn)行控制回路的運算工作;除此之外,PID向導生成的輸入/輸出量的標準化程序也需要運算數據存儲區。需要為它們定義一個(gè)起始地址,要保證該地址起始的若干字節在程序的其它地方?jīng)]有被重復使用。如果點(diǎn)擊'建議',則向導將自動(dòng)為你設定當前程序中沒(méi)有用過(guò)的V區地址。
自動(dòng)分配的地址只是在執行PID向導時(shí)編譯檢測到空閑地址。向導將自動(dòng)為該參數表分配符號名,用戶(hù)不要再自己為這些參數分配符號名,否則將導致PID控制不執行。
第九步:生成PID子程序、中斷程序及符號表等
一旦點(diǎn)擊完成按鈕,將在你的項目中生成上述PID子程序、中斷程序及符號表等。?
第十步:配置完P(guān)ID向導,需要在程序中調用向導生成的PID子程序
在用戶(hù)程序中調用PID子程序時(shí),可在指令樹(shù)的程序塊中用鼠標雙擊由向導生成的PID子程序,在局部變量表中,可以看到有關(guān)形式參數的解釋和取值范圍。
1. 必須用SM0.0來(lái)使能 PIDx_CTRL 子程序,SM0.0 后不能串聯(lián)任何其他條件,而且也不能有越過(guò)它的跳轉;如果在子程序中調用 PIDx_CTRL 子程序,則調用它的子程序也必須僅使用 SM0.0 調用,以保證它的正常運行
2. 此處輸入過(guò)程值(反饋)的模擬量輸入地址
3. 此處輸入設定值變量地址(VDxx),或者直接輸入設定值常數,根據向導中的設定0.0-100.0,此處應輸入一個(gè)0.0-100.0的實(shí)數,例:若輸入20,即為過(guò)程值的20%,假設過(guò)程值AIW0是量程為0-200度的溫度值,則此處的設定值20代表40度(即200度的20%);如果在向導中設定給定范圍為0.0 - 200.0,則此處的20相當于20度
4. 此處用I0.0控制PID的手/自動(dòng)方式,當I0.0為1時(shí),為自動(dòng),經(jīng)過(guò)PID運算從AQW0輸出;當I0.0為0時(shí),PID將停止計算,AQW0輸出為ManualOutput(VD4)中的設定值,此時(shí)不要另外編程或直接給AQW0賦值。若在向導中沒(méi)有選擇PID手動(dòng)功能,則此項不會(huì )出現
5. 定義PID手動(dòng)狀態(tài)下的輸出,從AQW0輸出一個(gè)滿(mǎn)值范圍內對應此值的輸出量。此處可輸入手動(dòng)設定值的變量地址(VDxx),或直接輸入數。數值范圍為0.0-1.0之間的一個(gè)實(shí)數,代表輸出范圍的百分比。例:如輸入0.5,則設定為輸出的50%。若在向導中沒(méi)有選擇PID手動(dòng)功能,則此項不會(huì )出現
6. 此處鍵入控制量的輸出地址
7. 當高報警條件滿(mǎn)足時(shí),相應的輸出置位為1,若在向導中沒(méi)有使能高報警功能,則此項將不會(huì )出現
8. 當低報警條件滿(mǎn)足時(shí),相應的輸出置位為1,若在向導中沒(méi)有使能低報警功能,則此項將不會(huì )出現
9. 當模塊出錯時(shí),相應的輸出置位為1,若在向導中沒(méi)有使能模塊錯誤報警功能,則此項將不會(huì )出現
調用PID子程序時(shí),不用考慮中斷程序。子程序會(huì )自動(dòng)初始化相關(guān)的定時(shí)中斷處理事項,然后中斷程序會(huì )自動(dòng)執行。
第十一步:實(shí)際運行并調試PID參數
沒(méi)有一個(gè)PID項目的參數不需要修改而能直接運行,因此需要在實(shí)際運行時(shí)調試PID參數。
查看數據塊以及符號表相應的PID符號標簽的內容,可以找到包括PID核心指令所用的控制回路表,包括比例系數、積分時(shí)間等等。將此表的地址復制到狀態(tài)表中,可以在監控模式下在線(xiàn)修改PID參數,而不必停機再次做配置。
參數調試合適后,用戶(hù)可以在數據塊中寫(xiě)入,也可以再做一次向導,或者編程向相應的數據區傳送參數。
常見(jiàn)問(wèn)題
1、做完P(guān)ID向導后,如何知道向導中設定值,過(guò)程值及PID等參數所用的地址?
· 做完P(guān)ID向導后可在符號表中,查看PID向導所生成的符號表(上例中為PID0_SYM),可看到各參數所用的詳細地址,及數值范圍。
· 在數據塊中,查看PID指令回路表的相關(guān)參數。
2、做完P(guān)ID向導后,如何在調試中修改PID參數?
答:可以在狀態(tài)表中,輸入相應的參數地址,然后在線(xiàn)寫(xiě)入用戶(hù)需要的PID參數數值,這樣用戶(hù)就可根據工藝需要隨時(shí)對PID參數、設定值等進(jìn)行調整。
3、PID已經(jīng)調整合適,如何正式確定參數?
答:可以在數據塊中直接寫(xiě)入參數。
4、做完P(guān)ID向導后,能否查看PID生成的子程序,中斷程序??
答:PID向導生成的子程序,中斷程序用戶(hù)是無(wú)法看到的,也不能對其進(jìn)行修改。沒(méi)有密碼能夠打開(kāi)這些子程序,一般的應用也沒(méi)有必要打開(kāi)查看。
5、PID參數有經(jīng)驗值嗎??
答:每一個(gè)項目的PID 參數都不一樣,沒(méi)有經(jīng)驗參數,只能現場(chǎng)調試獲得。
6、我的PID向導生成的程序為何不執行?
答:必須保證用SM0.0無(wú)條件調用PID0_CTRL程序
在程序的其它部分不要再使用SMB34定時(shí)中斷,也不要對SMB34賦值
7、如何實(shí)現PID反作用調節?
答:在有些控制中需要PID反作用調節。例如:在夏天控制空調制冷時(shí),若反饋溫度(過(guò)程值)低于設定溫度,需要關(guān)閥,減小輸出控制(減少冷水流量等),這就是PID反作用調節(在PID正作用中若過(guò)程值小于設定值,則需要增大輸出控制)。若想實(shí)現PID反作用調節,需要把PID回路的增益設為負數。對于增益為0的積分或微分控制來(lái)說(shuō),如果指定積分時(shí)間、微分時(shí)間為負值,則是反作用回路。
8、如何根據工藝要求有選擇地投入PID功能?
答:可使用'手動(dòng)/自動(dòng)'切換的功能。PID向導生成的PID功能塊只能使用SM0.0的條件調用。