西門子S7-200 SMART PLC採用的編程軟體為Step7-Micro/WIN SMART,在該編程軟體中,組態PID控制迴路,專門有一個工具,叫PID指令嚮導(PID Wizard),在編程時,只需要按照嚮導步驟一步一步操作,可以完成大多數PID功能的編程,編程人員只需要在主程序中調用PID嚮導生成的子程序,即可完成PID控制程序的組態。該PID嚮導既可以生成模擬量輸出PID控制演算法,也支持開關量輸出;既支持連續自動調節,也支持手動參與控制。建議用戶使用此嚮導對PID編程,以避免不必要的錯誤。(建議編程時,採用比較新的編程軟體版本)
一、 PID嚮導編程步驟
使用以下方法之一打開 PID 嚮導:
在Micro/WIN SMART中的工具菜單中選擇PID嚮導:
圖1. 選擇PID嚮導
在項目樹中打開「嚮導」文件夾,然後雙擊「PID」,或選擇「PID」並按回車鍵。
圖2. 選擇PID嚮導
第一步:定義需要配置的PID迴路號
在此對話框中選擇要組態的迴路。最多可組態 8 個迴路。在此對話框上選擇迴路時,PID 嚮導左側的樹視圖隨組態該迴路所需的所有節點一起更新。
圖3. 選擇需要配置的迴路
第二步:為迴路組態命名
可為迴路組態自定義名稱。此部分的默認名稱是「迴路 x」,其中「x」等於迴路編號。
圖4. 為PID迴路命名
第三步:設定PID迴路參數
圖5. 設置PID參數
圖5中定義了PID迴路參數,這些參數都應當是實數:
增益:即比例常數,默認值=1.00。
積分時間:如果不想要積分作用可以將該值設置很大(比如10000.0),默認值=10.00。
微分時間:如果不想要微分迴路,可以把微分時間設為0 ,默認值=0.00。
採樣時間:是PID控制迴路對反饋採樣和重新計算輸出值的時間間隔,,默認值=1.00。在 嚮導完成後,若想要修改此數,則必須返迴向導中修改,不可在程序中或狀態表中修改。
第四步:設定迴路過程變數
圖6. 設定PID輸入過程變數
1、指定迴路過程變數 (PV) 如何標定。可以從以下選項中選擇:
單極性:即輸入的信號為正,如0-10V或0-20mA等
雙極性:輸入信號在從負到正的範圍內變化。如輸入信號為±10V、±5V等時選用
選用20%偏移:如果輸入為4-20mA則選單極性及此項,4mA是0-20mA信號的20%,所以選20% 偏移,即4mA對應5530,20mA對應27648。
溫度 x 10 °C
溫度 x 10 °F
2、反饋輸入取值範圍
在a.設置為單極時,預設值為0 - 27648,對應輸入量程範圍0 - 10V或0 - 20mA等,輸入信號為正
在a.設置為雙極時,預設的取值為-27648 - +27648,對應的輸入範圍根據量程不同可以是±10V、±5V等
在a.選中20% 偏移量時,取值範圍為5530 - 27648,不可改變
3、在「標定」(Scaling) 參數中,指定迴路設定值 (SP) 如何標定。默認值是 0.0 和 100.0 之間的一個實數。
第五步:設定輸入迴路輸出選項
圖7. 設定PID輸出選項
1、輸出類型
可以選擇模擬量輸出或數字量輸出。模擬量輸出用來控制一些需要模擬量給定的設備,如比例閥、變頻器等;數字量輸出實際上是控制輸出點的通、斷狀態按照一定的佔空比變化,可以控制固態繼電器(加熱棒等)
2、選擇模擬量則需設定迴路輸出變數值的範圍,可以選擇:
3、取值範圍:
如果選擇了開關量輸出,需要設定此循環週期,如圖7所示:
圖8. 設定PID輸出為數字量
第六步:設定迴路報警選項
圖9. 設定迴路報警限幅值
嚮導提供了三個輸出來反映過程值(PV)的低值報警、高值報警及過程值模擬量模塊錯誤狀態。當報警條件滿足時,輸出置位為1。這些功能在選中了相應的選擇框之後起作用。
1、使能低值報警並設定過程值(PV)報警的低值,此值為過程值的百分數,預設值為0.10,即報警的低值為過程值的10%。此值最低可設為0.01,即滿量程的1%
2、使能高值報警並設定過程值(PV)報警的高值,此值為過程值的百分數,預設值為0.90,即報警的高值為過程值的90%。此值最高可設為1.00,即滿量程的100%
3、使能過程值(PV)模擬量模塊錯誤報警並設定模塊於CPU連接時所處的模塊位置。「EM0」就是第一個擴展模塊的位置
第七步:定義嚮導所生成的PID初使化子程序和中斷程序名及手/自動模式
圖10. 指定子程序、中斷服務程序名和選擇手動控制
嚮導已經為初使化子程序和中斷子程序定義了預設名,你也可以修改成自己起的名字。
1、指定PID初使化子程序的名字。
2、指定PID中斷子程序的名字
注意:
1)如果你的項目中已經存在一個PID配置,則中斷程序名為只讀,不可更改。因為一個項目中所有PID共用一個中斷程序,它的名字不會被任何新的PID所更改。
2)PID嚮導中斷用的是SMB34定時中斷,在用戶使用了PID嚮導後,注意在其它編程時不要再用此中斷,也不要向SMB34中寫入新的數值,否則PID將停止工作。
3、此處可以選擇添加PID 手動控制模式。在PID手動控制模式下,迴路輸出由手動輸出設定控制,此時需要寫入手動控制輸出參數一個0.0-1.0的實數,代表輸出的0%-100%而不是直接去改變輸出值。
第八步:指定PID運算數據存儲區
圖11. 分配運算數據存儲區
PID指令(功能塊)使用了一個120個位元組的V區參數表來進行控制迴路的運算工作;除此之外,PID嚮導生成的輸入/輸出量的標準化程序也需要運算數據存儲區。需要為它們定義一個起始地址,要保證該地址起始的若干位元組在程序的其它地方沒有被重複使用。如果點擊「建議」,則嚮導將自動為你設定當前程序中沒有用過的V區地址。
第九步:生成PID子程序、中斷程序及符號表等
一旦點擊完成按鈕,將在你的項目中生成上述PID子程序、中斷程序及符號表等。
圖12. 生成PID子程序、中斷程序和符號表等
第十步:配置完PID嚮導,需要在程序中調用嚮導生成的PID子程序(如下圖)
在用戶程序中調用PID子程序時,可在指令樹的程序塊中用滑鼠雙擊由嚮導生成的PID子程序,在局部變數表中,可以看到有關形式參數的解釋和取值範圍。
第十一步:實際運行並調試PID參數
沒有一個PID項目的參數不需要修改而能直接運行,因此需要在實際運行時調試PID參數。
查看數據塊以及符號表相應的PID符號標籤的內容,可以找到包括PID核心指令所用的控制迴路表,包括比例係數、積分時間等等。將此表的地址複製到狀態表中,可以在監控模式下在線修改PID參數,而不必停機再次做配置。
參數調試合適後,用戶可以在數據塊中寫入,也可以再做一次嚮導,或者編程向相應的數據區傳送參數。
二、常見問題
做完PID嚮導後,如何知道嚮導中設定值,過程值及PID等參數所用的地址?
PID已經調整合適,如何正式確定參數?
可以在數據塊中直接寫入參數。
做完PID嚮導後,能否查看PID生成的子程序,中斷程序?
PID嚮導生成的子程序,中斷程序用戶是無法看到的,也不能對其進行修改。沒有密碼能夠打開這些子程序,一般的應用也沒有必要打開查看。
PID參數有經驗值嗎?
每一個項目的PID 參數都不一樣,沒有經驗參數,只能現場調試獲得。
我的PID嚮導生成的程序為何不執行?
必須保證用SM0.0無條件調用PID0_CTRL程序
在程序的其它部分不要再使用SMB34定時中斷,也不要對SMB34賦值
如何實現PID反作用調節?
在有些控制中需要PID反作用調節。
例如:在夏天控制空調製冷時,若反饋溫度(過程值)低於設定溫度,需要關閥,減小輸出控制(減少冷水流量等),這就是PID反作用調節(在PID正作用中若過程值小於設定值,則需要增大輸出控制)。
若想實現PID反作用調節,需要把PID迴路的增益設為負數。對於增益為0的積分或微分控制來說,如果指定積分時間、微分時間為負值,則是反作用迴路。
如何根據工藝要求有選擇地投入PID功能?
可使用「手動/自動」切換的功能。PID嚮導生成的PID功能塊需要保證每個掃描週期都調用,所以建議在主程序內使用SM0.0調用。