ControlPIext

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

Name
Datentyp
Wertebereich
Initialwert
Funktion

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

Name
Datentyp
Wertebereich
Initialwert
Funktion

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

Name
Datentyp
Wertebereich
Initialwert
Funktion

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:

Scope
Name
Type
Initial

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