FB_TempController
Der Temperaturreglerbaustein FB_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
bOn : BOOL; (* start closed loop operating *)
bInit : BOOL; (* init controller *)
bTune : BOOL; (* start self tuning *)
bManual : BOOL; (* manual operation *)
bSelSetpoint : BOOL; (* FALSE = setpoint 1, TRUE = setpoint 2
*)
bSelCtrlParameterSet : BOOL; (* FALSE = internal set, TRUE =
external set *)
bEnableSoftStart : BOOL; (* FALSE = no soft start, TRUE = soft
start *)
bEnableRamping : BOOL; (* FALSE = no ramping, TRUE = ramping
*)
fW1 : LREAL; (* first setpoint *)
fW2 : LREAL; (* second setpoint *)
fX : LREAL; (* actual value *)
(* alarming inputs *)
bOpenThermocouple : BOOL; (* thermocouple *)
bReverseThermocouple : BOOL;
bBackVoltage : BOOL;
bLeakage : BOOL; (* heating system *)
bShortCircuit : BOOL;
bOpenCircuit : BOOL;
sParaControllerExternal : ST_ParaController; (* external
controller parameter set *)
(* logging *)
sLogData : ST_LogData := (bLog := FALSE, strLogFileName :=
'', strLogString := '' );
END_VAR
VAR_IN_OUT
sControllerParameter : ST_ControllerParameter; (* parameters
*)
END_VAR
VAR_OUTPUT
fYAnalog : LREAL; (* control value analog *)
bYPWM : BOOL; (* control value PWM *)
bYDig : BOOL; (* 2-Point *)
bYDigPos : BOOL; (* 3-Point: control value digital positive
*)
bYDigNeg : BOOL; (* 3-Point: control value digital
negative*)
(* alarming *)
dwAlarm : DWORD; (* max. 32 alarms *)
(* state *)
iState : States := TC_STATE_IDLE;
(* controller parameter *)
sParaControllerInternal : ST_ParaController;
(* general errors *)
bError : BOOL;
iErrorId : ErrorCodes;
END_VAR
Eingänge
Name | Einheit | Wertebereich | Beschreibung |
---|---|---|---|
bOn | 1 | [TRUE,FALSE] | Schaltet den Regler mit TRUE ein. |
bInit | 1 | [TRUE,FALSE] | Initialisierungsflag, das genau für den ersten Zyklus des Regleraufrufes anstehen muss (TRUE). |
bTune | 1 | [TRUE,FALSE] | Schaltet mit der steigenden Flanke das Selftuning ein. Wird während des Selftuning-Vorgangs auf FALSE geschaltet, so wird das Selftuning abgebrochen und mit den alten Parametern (sofern vorhanden) weitergemacht. |
bManual | 1 | [TRUE,FALSE] | Schaltet mit TRUE auf Handbetrieb um. Wird da Signal wieder FALSE, so wird in den Automatikmode zurückgeschaltet. |
bSelSetpoint | 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. |
bSelCtrlParameterSet | 1 | [TRUE,FALSE] | Wählt einen von zwei Parametersätzen aus. Mit FALSE wird der interne (ermittelte) Parametersatz benutzt, mit TRUE ein von außen aufgeschalteter. |
bEnableSoftStart | 1 | [TRUE,FALSE] | Mit TRUE wird mit der Anfahrschaltung (Softstart) hochgefahren. |
bEnableRamping | 1 | [TRUE,FALSE] | Mit TRUE wird jeder Sollwertsprung gerampt ausgeführt. |
fW1 | °C | LREAL | Sollwert. |
fW2 | °C | LREAL | Standby-Sollwert im Regelfall kleiner als fW1. Mit fSelSetpoint kann zwischen fW1 und fW2 umgeschaltet werden. |
fX | °C | LREAL | Istwert. Dieser Wert muss auf LREAL konvertiert werden. |
bOpenThermocouple | 1 | [TRUE,FALSE] | Mit TRUE ist das Thermoelement offen. Muss von der Hardware gemeldet werden (z.B. KLxxxx). |
bReverseThermocouple | 1 | [TRUE,FALSE] | Mit TRUE wird falsche Polarität des angeschlossenen Thermoelements gemeldet. Muss von der Hardware gemeldet werden. |
bBackVoltage | 1 | [TRUE,FALSE] | Bei TRUE wird eine zu hohe Eingangsspannung am Thermoelement angezeigt. Muss von der Hardware gemeldet werden. |
bLeakage | 1 | [TRUE,FALSE] | Mit TRUE wird ein Leckstrom zu Heizelement detektiert. Muss von der Hardware gemeldet werden. |
bShortCircuit | 1 | [TRUE,FALSE] | Mit TRUE wird ein Kurzschluss im Heizelement detektiert. Muss von der Hardware gemeldet werden. |
bOpenCircuit | 1 | [TRUE,FALSE] | Mit TRUE wird ein offener Stromkreis im Heizelement detektiert. Muss von der Hardware gemeldet werden. |
sControllerParameter | keine | Struktur | In dieser Struktur werden generelle Parameter (Abtastzeiten usw.) an den Baustein übergeben. |
sParaControllerExternal | keine | Struktur | In dieser Struktur wird ein externer Regler-Parametersatz an den Baustein übergeben. |
sLogData | keine | Struktur | In dieser Struktur werden Parameter (Dateinamen usw.) für das Logging an den Baustein übergeben. |
Ausgänge
Name | Einheit | Wertebereich | Beschreibung |
---|---|---|---|
fYAnalog | keine | LREAL | Analoger Stellwert. |
bYPWM | keine | [TRUE,FALSE] | Boolescher Ausgang pulsweitenmoduliert. |
bYDig | keine | [TRUE,FALSE] | Boolescher Ausgang eines Zweipunktreglers (TRUE Stellgröße 100%, FALSE Stellgröße aus) |
bYDigPos | keine | [TRUE,FALSE] | Boolescher Ausgang eines Dreipunktreglers (TRUE Stellgröße 100%, FALSE Stellgröße aus) |
bYDigNeg | keine | [TRUE,FALSE] | Boolescher Ausgang eines Dreipunktreglers (TRUE Stellgröße -100%, FALSE Stellgröße aus) |
dwAlarm | keine | DWORD | Alarmmeldungen (s. ENUM ...) |
iState | keine | INT | momentaner Status des Reglers (s. ENUM ...) |
sParaControllerInternal | keine | Struktur | In dieser Struktur wird der interne (durch das Tuning ermittelte) Regler-Parametersatz zur Verfügung gestellt. |
bError | keine | [TRUE,FALSE] | Liegt ein Fehler vor, so ist bError gleich TRUE. |
iErrorId | keine | INT | Ist bError gleich TRUE, so zeigt iErrorId einen Fehlercode an (s. ENUM ...) |