【PID專題】如何用S7-300實現PID控制,SFB41/FB41的數據處理1

S7系列PLC集成了系統功能塊SFB41用作連續PID控制,如果安裝了標準PID控制軟件包的話,也可以調用其中的FB41來實現連續PID控制。


一、SFB41/FB41簡介

SFB41是系統功能塊,集成在S7 CPU中,是操作系統的一部分。不同的PLC所支持的系統功能塊不盡相同,調用系統功能塊時要首先確認該類型PLC是否支持相應的系統功能塊。

FB41是標準PID控制軟件包中定義的功能塊,使用前首先要安裝標準PID軟件包

SFB41和FB41在指令樹中的位置如圖1所示。

【PID專題】如何用S7-300實現PID控制,SFB41/FB41的數據處理1

FB41在功能上和SFB41兼容,它們可用作單獨的PID恆值控制器,也可以在多閉環控制中實現級聯控制器、混合控制器及比例控制器,如果需要的話,SFB41/FB41可以用脈衝發生器SFB43/FB43進行擴展,產生脈衝寬度調製的輸出信號,來控制比例執行機構的二級或三級控制器。


二、SFB41/FB41功能框圖

如圖2所示,為SFB41/FB41的功能框圖。

【PID專題】如何用S7-300實現PID控制,SFB41/FB41的數據處理1


三、設定值與反饋值的處理

1、設定值輸入

SP_INT為設定值輸入,數據類型為浮點數;

2、過程值輸入

過程值輸入即反饋值,有兩種方式:

PVPER_ON=0時,PV_IN作為過程值的輸入,數據類型為浮點數。這種情況下,PV_IN的值一般來自於經過FC105轉換的外設過程值。

PVPER_ON=1時,PV_PER(外設過程值)作為過程值的輸入,即模擬量輸入模塊接收的值作為PID控制的反饋值。這種情況下,由於模擬量輸入模塊直接送來的數據與設定值

SP_INT數據類型不同,因此,首先要進行類型轉換,才能進行後續處理。數據類型的轉換部分如圖3所示。

【PID專題】如何用S7-300實現PID控制,SFB41/FB41的數據處理1

功能"CRP_IN"將外設過程值轉換為-100%~+100%之間的浮點數格式的數值,而外設過程值正常範圍的最大輸出值(100.0%)為27648(6C00H),因此,"CRP_IN"的輸出(以%為單位)PV_R滿足:

功能"PV_NORM"用於將外設過程值標準化,其輸出PV_NORM滿足:

其中:PV_FAC為過程變量的係數,默認值為1.0;PV_OFF為過程變量的偏移量,默認值為0.0。PV_FAC和PV_OFF用來調節過程輸入的範圍。

圖2中,"PV"為浮點數類型的實際值:

PVPER_ON=0時,PV=PV_IN;

PVPER_ON=1時,PV由PV_PER經過"CRP_IN"和"PV_NORM"轉換而來。


四、誤差的計算與處理

【PID專題】如何用S7-300實現PID控制,SFB41/FB41的數據處理1

如圖4所示,"ER"即為負反饋誤差值,ER=SP_INT - PV。為了抑制由於控制器輸出量的量化造成的連續的較小幅度的振盪,例如用SFB43/FB43進行脈衝寬度調製時可能出現的振盪,可以用"死區Dead Bead"進行處理,死區寬度由DEADB_W來定義,當DEADB_W=0時,死區被關閉。


<《S7-300實現PID控制——何為”單閉環控制系統“》


分享到:


相關文章: