ControlPIext
ControlPIext (FB)
ControlPIext (FB)FUNCTION_BLOCK ControlPIext
Kurzbeschreibung
Proportional-Integral wirkender Regler ( PI-Regler ), Parameter als Eingänge. Der Wirksinn ( invertiert / direkt ) ist ebenfalls einstellbar. Typische Anwendung: Regelstrecken mit Stellgliedern, die keinen speichernden Charakter haben.
Darstellung

Schnittstellen
Eingänge
rX
REAL
Analoger Istwert
rW
REAL
Analoger Sollwert
xEn
BOOL
Freigabe des Reglers
rYDisabled
REAL
0.0
Ausschaltwert
rInitValue
REAL
0.0
Initialisierungswert für das Ausgangssignal
rKp
REAL
0.0 …
2.0
Verstärkungsfaktor
rTn
REAL
0.0 …
200.0
Nachstellzeit in Sekunden
rMin
REAL
0.0
Unterer absoluter Grenzwert des Ausgangssignals
rMax
REAL
100.0
Oberer absoluter Grenzwert des Ausgangssignals
Ausgänge
rY
REAL
0.0
Ausgangssignal des Reglers
rDiff
REAL
Regelabweichung
rPartP
REAL
Proportionalanteil am Ausgangssignal
rPartI
REAL
Integralanteil am Ausgangssignal
xLimitActive
BOOL
Status - Grenzwertüberschreitung
Sollwerte / Parameter
rOffset
REAL
0.0
Versatz
eAction
eControlMode
eControlMode.Inverted
Wirksinnn des Reglers ( Invertiert, Direkt )
eManModeN
eManNum
eManNum.Auto
Betriebsart für das Ausgangssignal des Reglers
rManValue
REAL
Ausgangssignal im Handbetrieb
Funktionsbeschreibung
Allgemeines
Dieser Funktionsbaustein enthält einen proportional-integral wirkenden Pegler ( PI-Regler ). Einige Parameter sind als Eingang definiert und damit nicht persistent. Damit können die Werte durch das Programm laufend geändert werden. Das Ausgangssignal des Reglers rY wird bei freigegebenem Regler ( xEn = TRUE ) und in der Betriebsart Automatik des Reglers ( eManModeN = eManNum.Auto ) wie folgt berechnet: Ausgangssignal: rY = Proportional-Anteil + Integral-Anteil Proportionalanteil: Proportionalanteil = rKp * Regelabweichung Regelabweichung: Regelabweichung = rW - ( rx + rOffset ) [ Wirksinn - Invertiert: eAction = eControlMode.Inverted ] Regelabweichung = rX - ( rW + rOffset ) [ Wirksinn - Direkt: eAction = eControlMode.Direct ] Integralanteil: Integralanteil = ( Proportionalanteil * ( Abtastzeit / Nachstellzeit )) + Integralanteil ( t-Abtastzeit ) Legende: t-Abtastzeit … Zeitpunkt, der um die Abtastzeit vor dem aktuellen Zeitpunkt t lag Abtastzeit … Zeitdauer zwischen zwei Aufrufen des Funktionsblocks t … aktueller Zeitpunkt\
Regeln / Eigenschaften - Nachstellzeit rTn
Sie darf nur Werte > 0 annehmen. rTn >>> Abtastzeit: Der Integralanteil bleibt konstant Regelabweichung = 0: Der Integralanteil bleibt konstant Je nach Wirksinn des Reglers eAction werden die Ist- und Sollwerte wie folgt festgelegt:
| **eAction** | Regelabweichung | Funktion | |-------------------------|-------------------------------|-----------------------| | eControlMode.Invertiert | *rW* - ( *rx* + **rOffset** ) | Wirksinn - Invertiert | | eControlMode.Direct | *rX* - ( *rW* + **rOffset** ) | Wirksinn - Direkt |
Integralanteil
Der Integralanteil ist sowohl nach oben als auch nach unten durch folgende absolute Grenzwerte begrenzt: Oberer Grenzwert = rMax - Proportionalanteil Unterer Grenzwert = rMin - Proportionalanteil\
Freigabeeingang xEn
Bei nicht aktivem Freigabeeingang ( xEn = FALSE ) wird der Ausschaltwert rYDisabled zum Ausgang rY übertragen ( Voraussetzung: eManModeN = eManNum.Auto ) und durch die absoluten Grenzwerte begrenzt. Der Integralanteil wird auf 0.0 gesetzt. Bei aktivem Freigabeeingang ( xEn = TRUE ) wird as Ausgangssignal gemäß oben stehender Formel berechnet und zum Ausgang rY übertragen ( Voraussetzung: eManModeN = eManNum.Auto ) und durch die absoluten Grenzwerte begrenzt. Bei jeder ansteigenden Flanke am Freigabeeingang xEn wird der Regelprozess neu gestartet. \
Neustart des Reglers
Bei jeder ansteigenden Flanke am Freigabeeingang xEn wird der Regelprozess neu gestartet. ( Voraussetzungen: eManModeN = eManNum.Auto und xEn = TRUE ) Der Integralanteil wird auf die Differenz zwischen rInitValue und dem Proportionalanteil festgelegt. \
Regelabweichung rDiff
Die Regelabweichung entspricht dem Wert der Regelabweichung nach oben genannter Formel. \
Proportionalanteil am Ausgangssignal rPartP
An diesem Ausgang steht immer der Proportionalanteil des Ausgangssignals zur Verfügung, siehe oben stehende Beschreibung. \
Integralanteil am Ausgangssignal rPartI
An diesem Ausgang steht immer der Integralanteil des Ausgangssignals zur Verfügung, siehe oben stehende Beschreibung. \
Absolute Grenzwerte rMin und rMax
Das Ausgangssignal des Reglers rY wird durch die absoluten Grenzwerte rMin nach unten und rMax nach oben begrenzt. Der absolute Grenzwert rMin wird auf den aktuellen Wert von rMax - 0.1 festgelegt, falls er >= dem aktuellen Wert von rMax ist. Davon ausgenommen ist lediglich der Handbetrieb für das Ausgangssignal des Reglers (eManModeN = eManNum.Man ).\
Status - Grenzwertüberschreitung xLimitActive
Der Status der Grenzwertüberschreitung wird aktiviert ( xLimitActive = TRUE ), falls eine Grenzwertüberschreitung nach oben oder unten vorliegt ( xEn = TRUE ). Der Status der Grenzwertüberschreitung wird nicht aktiviert ( xLimitActive = FALSE ), falls keine Grenzwertüberschreitung vorliegt oder das Freigabesignal deaktiviert ist ( xEn = FALSE ). Eine Grenzwertüberschreitung liegt vor, falls das Ausgangssignal des Reglers rY den oberen Grenzwert rMax erreicht / überschreitet oder den unteren Grenzwert rMin erreicht / unterschreitet. \
Betriebsart für das Ausgangssignal des Reglers eManModeN
Der Parameter eManModeN erlaubt die Umschaltung des Ausgangssignals rY vom Automatik- in den Handbetrieb und umgekehrt. Im Handbetrieb übernimmt das Ausgangssignal rY das Ausgangssignal im Handbetrieb rManValue. Der Integralanteil wird auf die Differenz zwischen rInitValue und dem Proportionalanteil festgelegt. \
eManModeN
rY
Funktion
eManNum.Auto
Signal gemäß Formel / Ausschaltwert
Automatikbetrieb - Ausgangssignal
eManNum.Man
rManValue
Handbetrieb - Ausgangssignal
Visualisierung
\
Codesys
InOut:
Input
rX
REAL
Input
rW
REAL
Input
xEn
BOOL
Input
rYDisabled
REAL
0
Input
rInitValue
REAL
0
Input
rKp
REAL
2
Input
rTn
REAL
200
Input
rYMin
REAL
0
Input
rYMax
REAL
100
Input Const
rOffset
REAL
0
Input Const
eAction
eControlMode
eControlMode.Inverted
Input Const
eManModeN
eManNum
eManNum.Auto
Input Const
rManValue
REAL
Output
rY
REAL
0
Output
rDiff
REAL
Output
rPartP
REAL
Output
rPartI
REAL
Output
xLimitAktiv
BOOL
Zuletzt aktualisiert

