西門子S7-200 SMART PLC中PID向?qū)Ь幊滩襟E分享
發(fā)布日期:
2023-07-03

一、PID控制

西門子S7-200 SMART PLC能夠進行PID控制,。S7-200 SMART CPU最多可以支持8個PID控制回路(8個PID指令功能塊),。

PID是閉環(huán)控制系統(tǒng)的比例-積分-微分控制算法。

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

PID控制是負反饋閉環(huán)控制,,能夠抑制系統(tǒng)閉環(huán)內(nèi)的各種因素所引起的擾動,,使反饋跟隨給定變化。

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

PID算法在S7-200 SMART中的實現(xiàn)

PID控制最初在模擬量控制系統(tǒng)中實現(xiàn),,隨著離散控制理論的發(fā)展,PID也在計算機化控制系統(tǒng)中實現(xiàn),。

二,、PID向?qū)?/span>

Micro/WIN SMART提供了PID Wizard(PID指令向?qū)В梢詭椭脩舴奖愕厣梢粋€閉環(huán)控制過程的PID算法,。此向?qū)Э梢酝瓿山^大多數(shù)PID運算的自動編程,,用戶只需在主程序中調(diào)用PID向?qū)傻淖映绦颍涂梢酝瓿蒔ID控制任務(wù),。

PID向?qū)Ъ瓤梢陨赡M量輸出PID控制算法,,也支持開關(guān)量輸出;既支持連續(xù)自動調(diào)節(jié),,也支持手動參與控制,。建議用戶使用此向?qū)ID編程,以避免不必要的錯誤,。

PID向?qū)Ь幊滩襟E

使用以下方法之一打開 PID 向?qū)В?

1.在Micro/WIN SMART中的工具菜單中選擇PID向?qū)В?/span>

2.在項目樹中打開'向?qū)?文件夾,,然后雙擊'PID',或選擇'PID'并按回車鍵,。

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

在此對話框中選擇要組態(tài)的回路,。 最多可組態(tài) 8 個回路。 在此對話框上選擇回路時,,PID 向?qū)ё髠?cè)的樹視圖隨組態(tài)該回路所需的所有節(jié)點一起更新,。

第二步:為回路組態(tài)命名

可為回路組態(tài)自定義名稱。 此部分的默認名稱是'回路 x',,其中'x'等于回路編號,。

第三步:設(shè)定PID回路參數(shù)

定義PID回路參數(shù),,這些參數(shù)都應(yīng)當(dāng)是實數(shù):

增益: 即比例常數(shù),默認值=1.00,。

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

2.微分時間:如果不想要微分回路,,可以把微分時間設(shè)為0 ,默認值=0.00,。

3.采樣時間:是PID控制回路對反饋采樣和重新計算輸出值的時間間隔,,,默認值=1.00。在向?qū)瓿珊?,若想要修改此?shù),,則必須返回向?qū)е行薷模豢稍诔绦蛑谢驙顟B(tài)表中修改,。

注意:關(guān)于具體的PID參數(shù)值,,每一個項目都不一樣,需要現(xiàn)場調(diào)試來定,,沒有所謂經(jīng)驗參數(shù),。

第四步:設(shè)定回路過程變量

指定回路過程變量 (PV) 如何標定??梢詮囊韵逻x項中選擇:

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

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

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

4.溫度 x 10 °C

5溫度 x 10 °F

反饋輸入取值范圍

1.在a.設(shè)置為單極時,,缺省值為0 - 27648,,對應(yīng)輸入量程范圍0 - 10V或0 - 20mA等,輸入信號為正

2.在a.設(shè)置為雙極時,,缺省的取值為-27648 - +27648,,對應(yīng)的輸入范圍根據(jù)量程不同可以是±10V、±5V等

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

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

第五步:設(shè)定輸入回路輸出選項

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

選擇模擬量則需設(shè)定回路輸出變量值的范圍,,可以選擇:

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

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

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

4. 取值范圍:

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

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

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

如果選擇了開關(guān)量輸出,需要設(shè)定此循環(huán)周期,。

第六步:設(shè)定回路報警選項?

向?qū)峁┝巳齻€輸出來反映過程值(PV)的低值報警,、高值報警及過程值模擬量模塊錯誤狀態(tài)。當(dāng)報警條件滿足時,,輸出置位為1,。這些功能在選中了相應(yīng)的選擇框之后起作用。

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

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

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

第七步:定義向?qū)傻腜ID初使化子程序和中斷程序名及手/自動模式

向?qū)б呀?jīng)為初使化子程序和中斷子程序定義了缺省名,你也可以修改成自己起的名字,。

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

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

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

2)PID向?qū)е袛嘤玫氖荢MB34定時中斷,,在用戶使用了PID向?qū)Ш?,注意在其它編程時不要再用此中斷,也不要向SMB34中寫入新的數(shù)值,,否則PID將停止工作,。

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

第八步:指定PID運算數(shù)據(jù)存儲區(qū)

PID指令(功能塊)使用了一個120個字節(jié)的V區(qū)參數(shù)表來進行控制回路的運算工作,;除此之外,,PID向?qū)傻妮斎?輸出量的標準化程序也需要運算數(shù)據(jù)存儲區(qū),。需要為它們定義一個起始地址,要保證該地址起始的若干字節(jié)在程序的其它地方?jīng)]有被重復(fù)使用,。如果點擊'建議',,則向?qū)⒆詣訛槟阍O(shè)定當(dāng)前程序中沒有用過的V區(qū)地址。

自動分配的地址只是在執(zhí)行PID向?qū)r編譯檢測到空閑地址,。向?qū)⒆詣訛樵搮?shù)表分配符號名,,用戶不要再自己為這些參數(shù)分配符號名,否則將導(dǎo)致PID控制不執(zhí)行,。

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

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

第十步:配置完P(guān)ID向?qū)В枰诔绦蛑姓{(diào)用向?qū)傻腜ID子程序

在用戶程序中調(diào)用PID子程序時,,可在指令樹的程序塊中用鼠標雙擊由向?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)用,以保證它的正常運行

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

3. 此處輸入設(shè)定值變量地址(VDxx),,或者直接輸入設(shè)定值常數(shù),,根據(jù)向?qū)е械脑O(shè)定0.0-100.0,,此處應(yīng)輸入一個0.0-100.0的實數(shù),例:若輸入20,,即為過程值的20%,,假設(shè)過程值A(chǔ)IW0是量程為0-200度的溫度值,則此處的設(shè)定值20代表40度(即200度的20%),;如果在向?qū)е性O(shè)定給定范圍為0.0 - 200.0,,則此處的20相當(dāng)于20度

4. 此處用I0.0控制PID的手/自動方式,當(dāng)I0.0為1時,,為自動,,經(jīng)過PID運算從AQW0輸出;當(dāng)I0.0為0時,,PID將停止計算,,AQW0輸出為ManualOutput(VD4)中的設(shè)定值,此時不要另外編程或直接給AQW0賦值,。若在向?qū)е袥]有選擇PID手動功能,,則此項不會出現(xiàn)

5. 定義PID手動狀態(tài)下的輸出,從AQW0輸出一個滿值范圍內(nèi)對應(yīng)此值的輸出量,。此處可輸入手動設(shè)定值的變量地址(VDxx),,或直接輸入數(shù)。數(shù)值范圍為0.0-1.0之間的一個實數(shù),,代表輸出范圍的百分比,。例:如輸入0.5,則設(shè)定為輸出的50%,。若在向?qū)е袥]有選擇PID手動功能,,則此項不會出現(xiàn)

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

7. 當(dāng)高報警條件滿足時,相應(yīng)的輸出置位為1,,若在向?qū)е袥]有使能高報警功能,,則此項將不會出現(xiàn)

8. 當(dāng)?shù)蛨缶瘲l件滿足時,相應(yīng)的輸出置位為1,,若在向?qū)е袥]有使能低報警功能,,則此項將不會出現(xiàn)

9. 當(dāng)模塊出錯時,相應(yīng)的輸出置位為1,,若在向?qū)е袥]有使能模塊錯誤報警功能,,則此項將不會出現(xiàn)

調(diào)用PID子程序時,不用考慮中斷程序,。子程序會自動初始化相關(guān)的定時中斷處理事項,,然后中斷程序會自動執(zhí)行。

第十一步:實際運行并調(diào)試PID參數(shù)

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

查看數(shù)據(jù)塊以及符號表相應(yīng)的PID符號標簽的內(nèi)容,,可以找到包括PID核心指令所用的控制回路表,包括比例系數(shù),、積分時間等等,。將此表的地址復(fù)制到狀態(tài)表中,可以在監(jiān)控模式下在線修改PID參數(shù),,而不必停機再次做配置,。

參數(shù)調(diào)試合適后,用戶可以在數(shù)據(jù)塊中寫入,,也可以再做一次向?qū)?,或者編程向相?yīng)的數(shù)據(jù)區(qū)傳送參數(shù)。

常見問題

1,、做完P(guān)ID向?qū)Ш?,如何知道向?qū)е性O(shè)定值,過程值及PID等參數(shù)所用的地址,?

· 做完P(guān)ID向?qū)Ш罂稍诜柋碇?,查看PID向?qū)傻姆柋?上例中為PID0_SYM),可看到各參數(shù)所用的詳細地址,,及數(shù)值范圍,。

· 在數(shù)據(jù)塊中,,查看PID指令回路表的相關(guān)參數(shù),。

2、做完P(guān)ID向?qū)Ш?,如何在調(diào)試中修改PID參數(shù),?

答:可以在狀態(tài)表中,輸入相應(yīng)的參數(shù)地址,,然后在線寫入用戶需要的PID參數(shù)數(shù)值,,這樣用戶就可根據(jù)工藝需要隨時對PID參數(shù)、設(shè)定值等進行調(diào)整,。

3,、PID已經(jīng)調(diào)整合適,如何正式確定參數(shù),?

答:可以在數(shù)據(jù)塊中直接寫入?yún)?shù),。

4、做完P(guān)ID向?qū)Ш?,能否查看PID生成的子程序,,中斷程序??

答:PID向?qū)傻淖映绦颍袛喑绦蛴脩羰菬o法看到的,,也不能對其進行修改,。沒有密碼能夠打開這些子程序,一般的應(yīng)用也沒有必要打開查看,。

5,、PID參數(shù)有經(jīng)驗值嗎??

答:每一個項目的PID 參數(shù)都不一樣,,沒有經(jīng)驗參數(shù),,只能現(xiàn)場調(diào)試獲得。

6,、我的PID向?qū)傻某绦驗楹尾粓?zhí)行,?

答:必須保證用SM0.0無條件調(diào)用PID0_CTRL程序

在程序的其它部分不要再使用SMB34定時中斷,也不要對SMB34賦值

7,、如何實現(xiàn)PID反作用調(diào)節(jié),?

答:在有些控制中需要PID反作用調(diào)節(jié)。例如:在夏天控制空調(diào)制冷時,,若反饋溫度(過程值)低于設(shè)定溫度,,需要關(guān)閥,減小輸出控制(減少冷水流量等),,這就是PID反作用調(diào)節(jié)(在PID正作用中若過程值小于設(shè)定值,,則需要增大輸出控制)。若想實現(xiàn)PID反作用調(diào)節(jié),,需要把PID回路的增益設(shè)為負數(shù),。對于增益為0的積分或微分控制來說,如果指定積分時間,、微分時間為負值,,則是反作用回路。

8,、如何根據(jù)工藝要求有選擇地投入PID功能,?

答:可使用'手動/自動'切換的功能。PID向?qū)傻腜ID功能塊只能使用SM0.0的條件調(diào)用,。

聲明:部分內(nèi)容來源于網(wǎng)絡(luò),,如侵權(quán)請后臺留言聯(lián)系刪除。