FB_CTRL_TempController
Der Temperaturreglerbaustein FB_CTRL_TempController hat verschiedene Ein- und Ausgänge die im folgenden beschrieben werden. Alle Parameter des Reglers werden über Strukturen an den Regler übergeben. Die Definition der Strukturen und Enums ist hier zu finden.
Funktionsbaustein
Interface
VAR_INPUT
eCtrlMode : E_CTRL_MODE; (* controller mode: passive, activ,check *)
bSelSetpoint : BOOL; (* FALSE = setpoint 1, TRUE = setpoint 2*)
fW1 : FLOAT; (* first setpoint *)
fW2 : FLOAT; (* second setpoint *)
fX : FLOAT; (* actual value *)
fYManual : FLOAT; (* manual control value *)
(* alarming inputs *)
bOpenThermocouple : BOOL; (* thermocouple *)
bReverseThermocouple : BOOL;
bBackVoltage : BOOL;
bLeakage : BOOL; (* heating system *)
bShortCircuit : BOOL;
bOpenCircuit : BOOL;
sParaControllerExternal : ST_CTRL_ParaController; (* external controller parameter set *)
END_VAR
VAR_IN_OUT
sControllerParameter : ST_CTRL_TempCtrlParameter; (* controller
parameter set *)
END_VAR
VAR_OUTPUT
(* control output *)
fYAnalog : FLOAT; (* control value analog *)
bYPWMPos : BOOL; (* control value PWM *)
bYPWMNeg : BOOL; (* control value PWM *)
bYDigPos : BOOL; (* 3-Point: control value digital positive*)
bYDigNeg : BOOL; (* 3-Point: control value digital negative*)
(* alarming *)
dwAlarm : DWORD; (* max. 32 alarms *)
(*quality of control*)
fMaxOverShoot : FLOAT;
tStartUpTime : TIME;
(* state *)
eCtrlState : E_CTRL_STATE := eCTRL_STATE_IDLE;
(* controller parameter *)
sParaControllerInternal : ST_CTRL_ParaController;
(* general errors *)
bError : BOOL;
eErrorId : E_CTRL_ErrorCodes;
END_VAR
Eingänge
Name | Einheit | Wertebereich | Beschreibung |
---|---|---|---|
| 1 | E_CTRL_MODE | Modeumschaltung. |
| 1 | [TRUE,FALSE] | Wählt einen von zwei möglichen Sollwerten aus. Mit FALSE wird der normale Sollwert gewählt, mit TRUE der Standby-Sollwert. |
| °C | LREAL | Sollwert. |
| °C | LREAL | Standby-Sollwert im Regelfall kleiner als fW1. Mit fSelSetpoint kann zwischen fW1 und fW2 umgeschaltet werden. |
| °C | LREAL | Istwert. Dieser Wert muss auf LREAL konvertiert werden. |
| -100% - +100% | LREAL | Stellgröße im Handbetrieb. |
| 1 | [TRUE,FALSE] | Mit TRUE ist das Thermoelement offen. Muss von der Hardware gemeldet werden (z.B. KLxxxx). |
| 1 | [TRUE,FALSE] | Mit TRUE wird falsche Polarität des angeschlossenen Thermoelements gemeldet. Muss von der Hardware gemeldet werden. |
| 1 | [TRUE,FALSE] | Bei TRUE wird eine zu hohe Eingangsspannung am Thermoelement angezeigt. Muss von der Hardware gemeldet werden. |
| 1 | [TRUE,FALSE] | Mit TRUE wird ein Leckstrom zu Heizelement detektiert. Muss von der Hardware gemeldet werden. |
| 1 | [TRUE,FALSE] | Mit TRUE wird ein Kurzschluss im Heizelement detektiert. Muss von der Hardware gemeldet werden. |
| 1 | [TRUE,FALSE] | Mit TRUE wird ein offener Stromkreis im Heizelement detektiert. Muss von der Hardware gemeldet werden. |
| keine | Struktur | In dieser Struktur werden generelle Parameter (Abtastzeiten usw.) an den Baustein übergeben. |
| keine | Struktur | In dieser Struktur wird ein externer Regler-Parametersatz an den Baustein übergeben. |
Ausgänge
Name | Einheit | Wertebereich | Beschreibung |
---|---|---|---|
| keine | LREAL | Analoger Stellwert. |
| keine | [TRUE,FALSE] | Boolescher Ausgang pulsweitenmoduliert. Positiv/Heizbetrieb |
| keine | [TRUE,FALSE] | Boolescher Ausgang pulsweitenmoduliert. Negativ/Kühlbetrieb |
| keine | [TRUE,FALSE] | Boolscher Ausgang eines Dreipunktreglers (TRUE Stellgröße 100%, FALSE Stellgröße aus) |
| keine | [TRUE,FALSE] | Boolscher Ausgang eines Dreipunktreglers (TRUE Stellgröße -100%, FALSE Stellgröße aus) |
| keine | DWORD | Alarmmeldungen (s. ENUM ...) |
| °C | LREAL | max. Überschwingen in °C über/unter Sollwert. |
| TIME | - | Anschwingzeit bis zum erstmaligen Erreichen des Sollwert. |
| keine | E_CTRL_STATE | momentaner Status des Reglers (s. ENUM ...) |
| keine | Struktur | In dieser Struktur wird der interne (durch das Tuning ermittelte) Regler-Parametersatz zur Verfügung gestellt. |
| keine | [TRUE,FALSE] | Liegt ein Fehler vor, so ist bError gleich TRUE. |
| keine | INT | Ist bError gleich TRUE, so zeigt iErrorId einen Fehlercode an (s. ENUM ...) |