利用西門子S7-200 SMART進行PID控制,看看與S7-1200有什麼區別?

S7-200 SMART是能夠進行PID控制的。S7-200 SMART CPU最多可以支持8個PID控制迴路(8個PID指令功能塊)。

利用西門子S7-200 SMART進行PID控制,看看與S7-1200有什麼區別?

什麼是PID控制?

PID控制就是閉環控制系統的比例-積分-微分控制算法。

PID控制器根據設定值(給定)與被控對象的實際值(反饋)的差值,按照PID算法計算出控制器的輸出量,控制執行機構去影響被控對象的變化。

PID控制是負反饋閉環控制,能夠抑制系統閉環內的各種因素所引起的擾動,使反饋跟隨給定變化。

根據具體項目的控制要求,在實際應用中有可能用到其中的一部分,比如常用的是PI(比例-積分)控制,這時沒有微分控制部分。


PID算法在S7-200 SMART中的實現

PID控制最初在模擬量控制系統中實現,隨著離散控制理論的發展,PID也在計算機化控制系統中實現。


PID嚮導

Micro/WIN SMART提供了PID Wizard(PID指令嚮導),可以幫助用戶方便地生成一個閉環控制過程的PID算法。此嚮導可以完成絕大多數PID運算的自動編程,用戶只需在主程序中調用PID嚮導生成的子程序,就可以完成PID控制任務。

PID嚮導既可以生成模擬量輸出PID控制算法,也支持開關量輸出;既支持連續自動調節,也支持手動參與控制。建議用戶使用此嚮導對PID編程,以避免不必要的錯誤。


使用以下方法之一打開 PID 嚮導:

1.在Micro/WIN SMART中的工具菜單中選擇PID嚮導:

利用西門子S7-200 SMART進行PID控制,看看與S7-1200有什麼區別?

圖1 選擇PID嚮導

2.在項目樹中打開'嚮導'文件夾,然後雙擊'PID',或選擇'PID'並按回車鍵。

利用西門子S7-200 SMART進行PID控制,看看與S7-1200有什麼區別?

圖2 選擇PID嚮導

PID嚮導編程步驟:

第一步:定義需要配置的PID迴路號

在此對話框中選擇要組態的迴路。 最多可組態8個迴路。在此對話框上選擇迴路時,PID 嚮導左側的樹視圖隨組態該回路所需的所有節點一起更新。

利用西門子S7-200 SMART進行PID控制,看看與S7-1200有什麼區別?

圖3 選擇需要配置的迴路


第二步:為迴路組態命名

可為迴路組態自定義名稱。 此部分的默認名稱是'迴路 x',其中'x'等於迴路編號。

利用西門子S7-200 SMART進行PID控制,看看與S7-1200有什麼區別?

圖4 為PID迴路命名


第三步:設定PID迴路參數

利用西門子S7-200 SMART進行PID控制,看看與S7-1200有什麼區別?

圖5. 設置PID參數

圖5中定義了PID迴路參數,這些參數都應當是實數:

增益: 即比例常數,默認值=1.00。

積分時間:如果不想要積分作用可以將該值設置很大(比如10000.0),默認值=10.00。

微分時間:如果不想要微分迴路,可以把微分時間設為0 ,默認值=0.00。

採樣時間:是PID控制迴路對反饋採樣和重新計算輸出值的時間間隔,,默認值=1.00

在嚮導完成後,若想要修改此數,則必須返回嚮導中修改,不可在程序中或狀態表中修改。

注意:關於具體的PID參數值,每一個項目都不一樣,需要現場調試來定,沒有所謂經驗參數。


第四步:設定迴路過程變量

利用西門子S7-200 SMART進行PID控制,看看與S7-1200有什麼區別?

圖6 設定PID輸入過程變量

指定迴路過程變量 (PV) 如何標定。可以從以下選項中選擇:

1.單極性:即輸入的信號為正,如0-10V或0-20mA等

2.雙極性:輸入信號在從負到正的範圍內變化。如輸入信號為±10V、±5V等時選用

3.選用20%偏移:如果輸入為4-20mA則選單極性及此項,4mA是0-20mA信號的20%,所以選20% 偏移,即4mA對應5530,20mA對應27648。

4.溫度 x 10 °C

5.溫度 x 10 °F

反饋輸入取值範圍:

1.在a.設置為單極時,缺省值為0 - 27648,對應輸入量程範圍0 - 10V或0 - 20mA等,輸入信號為正

2.在a.設置為雙極時,缺省的取值為-27648 - +27648,對應的輸入範圍根據量程不同可以是±10V、±5V等

3.在a.選中20% 偏移量時,取值範圍為5530 - 27648,不可改變

在'標定'(Scaling) 參數中,指定迴路設定值 (SP) 如何標定。默認值是 0.0 和 100.0 之間的一個實數。此反饋輸入也可以是工程單位數值,參見:設置給定-反饋的量程範圍。


第五步:設定輸入迴路輸出選項

利用西門子S7-200 SMART進行PID控制,看看與S7-1200有什麼區別?

圖7 設定PID輸出選項

輸出類型可以選擇模擬量輸出或數字量輸出。模擬量輸出用來控制一些需要模擬量給定的設備,如比例閥、變頻器等;數字量輸出實際上是控制輸出點的通、斷狀態按照一定的佔空比變化,可以控制固態繼電器(加熱棒等)。

選擇模擬量則需設定迴路輸出變量值的範圍,可以選擇:

1.單極:單極性輸出,可為0-10V或0-20mA等

2.雙極:雙極性輸出,可為正負10V或正負5V等

3.單極20% 偏移量:如果選中20% 偏移,使輸出為4 - 20mA

4.取值範圍:

c為單極時,缺省值為 0 到 27648

c為雙極時,取值-27648 到27648

c為20%偏移量時,取值5530 - 27648 ,不可改變

如果選擇了開關量輸出,需要設定此循環週期,如圖8所示:

利用西門子S7-200 SMART進行PID控制,看看與S7-1200有什麼區別?

圖8 設定PID輸出為數字量


第六步:設定迴路報警選項

利用西門子S7-200 SMART進行PID控制,看看與S7-1200有什麼區別?

圖9 設定迴路報警限幅值

嚮導提供了三個輸出來反映過程值(PV)的低值報警、高值報警及過程值模擬量模塊錯誤狀態。當報警條件滿足時,輸出置位為1。這些功能在選中了相應的選擇框之後起作用。

1.使能低值報警並設定過程值(PV)報警的低值,此值為過程值的百分數,缺省值為0.10,即報警的低值為過程值的10%。此值最低可設為0.01,即滿量程的1%

2.使能高值報警並設定過程值(PV)報警的高值,此值為過程值的百分數,缺省值為0.90,即報警的高值為過程值的90%。此值最高可設為1.00,即滿量程的100%

3.使能過程值(PV)模擬量模塊錯誤報警並設定模塊與CPU連接時所處的模塊位置。'EM0'就是第一個擴展模塊的位置


第七步:定義嚮導所生成的PID初始化子程序和中斷程序名及手/自動模式

利用西門子S7-200 SMART進行PID控制,看看與S7-1200有什麼區別?

圖10 指定子程序、中斷服務程序名和選擇手動控制

嚮導已經為初使化子程序和中斷子程序定義了缺省名,你也可以修改成自己起的名字。

1.指定PID初使化子程序的名字。

2.指定PID中斷子程序的名字注意:

如果你的項目中已經存在一個PID配置,則中斷程序名為只讀,不可更改。因為一個項目中所有PID共用一箇中斷程序,它的名字不會被任何新的PID所更改。

PID嚮導中斷用的是SMB34定時中斷,在用戶使用了PID嚮導後,注意在其它編程時不要再用此中斷,也不要向SMB34中寫入新的數值,否則PID將停止工作。

此處可以選擇添加PID 手動控制模式。在PID手動控制模式下,迴路輸出由手動輸出設定控制,此時需要寫入手動控制輸出參數一個0.0-1.0的實數,代表輸出的0%-100%而不是直接去改變輸出值。PID控制的自動/手動之間的無擾動切換。


第八步:指定PID運算數據存儲區

利用西門子S7-200 SMART進行PID控制,看看與S7-1200有什麼區別?

圖11 分配運算數據存儲區

PID指令(功能塊)使用了一個120個字節的V區參數表來進行控制迴路的運算工作;除此之外,PID嚮導生成的輸入/輸出量的標準化程序也需要運算數據存儲區。需要為它們定義一個起始地址,要保證該地址起始的若干字節在程序的其它地方沒有被重複使用。如果點擊'建議',則嚮導將自動為你設定當前程序中沒有用過的V區地址。

自動分配的地址只是在執行PID嚮導時編譯檢測到空閒地址。嚮導將自動為該參數表分配符號名,用戶不要再自己為這些參數分配符號名,否則將導致PID控制不執行。


第九步:生成PID子程序、中斷程序及符號表等

一旦點擊完成按鈕,將在你的項目中生成上述PID子程序、中斷程序及符號表等。

利用西門子S7-200 SMART進行PID控制,看看與S7-1200有什麼區別?

圖12 生成PID子程序、中斷程序和符號表等


第十步:配置完PID嚮導,需要在程序中調用嚮導生成的PID子程序(如下圖)

利用西門子S7-200 SMART進行PID控制,看看與S7-1200有什麼區別?

圖13 PID子程序

利用西門子S7-200 SMART進行PID控制,看看與S7-1200有什麼區別?

圖14 調用PID子程序

在用戶程序中調用PID子程序時,可在指令樹的程序塊中用鼠標雙擊由嚮導生成的PID子程序,在局部變量表中,可以看到有關形式參數的解釋和取值範圍。

1.必須用SM0.0來使能 PIDx_CTRL 子程序,SM0.0 後不能串聯任何其他條件,而且也不能有越過它的跳轉;如果在子程序中調用 PIDx_CTRL 子程序,則調用它的子程序也必須僅使用 SM0.0 調用,以保證它的正常運行

2.此處輸入過程值(反饋)的模擬量輸入地址

3.此處輸入設定值變量地址(VDxx),或者直接輸入設定值常數,根據嚮導中的設定0.0-100.0,此處應輸入一個0.0-100.0的實數,例:若輸入20,即為過程值的20%,假設過程值AIW0是量程為0-200度的溫度值,則此處的設定值20代表40度(即200度的20%);如果在嚮導中設定給定範圍為0.0 - 200.0,則此處的20相當於20度

4.此處用I0.0控制PID的手/自動方式,當I0.0為1時,為自動,經過PID運算從AQW0輸出;當I0.0為0時,PID將停止計算,AQW0輸出為ManualOutput(VD4)中的設定值,此時不要另外編程或直接給AQW0賦值。若在嚮導中沒有選擇PID手動功能,則此項不會出現

5.定義PID手動狀態下的輸出,從AQW0輸出一個滿值範圍內對應此值的輸出量。此處可輸入手動設定值的變量地址(VDxx),或直接輸入數。數值範圍為0.0-1.0之間的一個實數,代表輸出範圍的百分比。例:如輸入0.5,則設定為輸出的50%。若在嚮導中沒有選擇PID手動功能,則此項不會出現

6.此處鍵入控制量的輸出地址

7.當高報警條件滿足時,相應的輸出置位為1,若在嚮導中沒有使能高報警功能,則此項將不會出現

8.當低報警條件滿足時,相應的輸出置位為1,若在嚮導中沒有使能低報警功能,則此項將不會出現

9.當模塊出錯時,相應的輸出置位為1,若在嚮導中沒有使能模塊錯誤報警功能,則此項將不會出現

調用PID子程序時,不用考慮中斷程序。子程序會自動初始化相關的定時中斷處理事項,然後中斷程序會自動執行。


第十一步:實際運行並調試PID參數

沒有一個PID項目的參數不需要修改而能直接運行,因此需要在實際運行時調試PID參數。

查看數據塊以及符號表相應的PID符號標籤的內容,可以找到包括PID核心指令所用的控制迴路表,包括比例係數、積分時間等等。將此表的地址複製到狀態表中,可以在監控模式下在線修改PID參數,而不必停機再次做配置。

參數調試合適後,用戶可以在數據塊中寫入,也可以再做一次嚮導,或者編程向相應的數據區傳送參數。


常問問題

做完PID嚮導後,如何知道嚮導中設定值,過程值及PID等參數所用的地址?

做完PID嚮導後可在符號表中,查看PID嚮導所生成的符號表(上例中為PID0_SYM),可看到各參數所用的詳細地址,及數值範圍。

在數據塊中,查看PID指令迴路表的相關參數。如圖所示:

利用西門子S7-200 SMART進行PID控制,看看與S7-1200有什麼區別?

圖15 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的條件調用。

參考鏈接

利用西門子S7-200 SMART進行PID控制,看看與S7-1200有什麼區別?

PID嚮導面版


分享到:


相關文章: