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

FB_TempController 1:

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 ...)