Definition der Strukturen

ST_ControllerParameter

TYPE ST_CTRL_TempCtrlParameter:
STRUCT

  (* general parameters *)
  iMode                     : E_CTRL_ControlMode;
  iReactionOnFailure        : E_CTRL_ReactionOnFailure;
  bSelCtrlParameterSet      : BOOL;
  dwAlarmSupp               : DWORD;
  tCtrlCycleTime            : TIME;
  tTaskCycleTime            : TIME;

  (* tuning parameteer *)
  iTuningMode               : E_CTRL_TuneMode;
  tTuneStabilisation        : TIME       := T#20S;
  fEndTunePercentHeating    : LREAL      := 80.0;
  fYTuneHeating             : LREAL;
  fYStableHeating           : LREAL;
  fEndTunePercentCooling    : LREAL      := 20.0;
  fYTuneCooling             : LREAL;
  fYStableCooling           : LREAL;
  fScalingFactor            : LREAL      := 1.0;

  (* setpoint parameters *)
  fWMin                     : LREAL;
  fWMax                     : LREAL;

  (* start up *)
  bEnableSoftStart          : BOOL;
  bEnableRamping            : BOOL;
  fWStartUp                 : LREAL;
  tStartUp                  : TIME;
  bStartUpRamping           : BOOL;
  fWStartUpVeloPos          : LREAL;
  fWStartUpVeloNeg          : LREAL;
  fWVeloPos                 : LREAL;
  fWVeloNeg                 : LREAL;

  (* actual value parameters *)
  bFilter                   : BOOL;
  tFilter                   : TIME;

  (* deadband parameters *)
  bDeadband                 : BOOL;
  fEDeadband                : LREAL;

  (* control value parameters *)
  fYMin                     : LREAL;
  fYMax                     : LREAL;
  fYManual                  : LREAL;
  fYOnFailure               : LREAL;
  tPWMCycleTime             : TIME;
  tPWMMinOffTime            : TIME;
  tPWMMinOnTime             : TIME;
  tPWMWaitingTime           : TIME;
  fYThresholdOff            : LREAL;
  fYThresholdOn             : LREAL;
  nCyclesForSwitchOver      : INT        := 100;

  (* controller settings *)
  bEnablePreController      : BOOL;
  bEnableZones              : BOOL;
  bEnableCVFilter           : BOOL;
  iFilterType               : E_CTRL_FilterType;
  iControllerType           : E_CTRL_ControllerType;

  (* min max temperatures *)
  TempLow                   : LREAL;
  TempLowLow                : LREAL;
  TempHigh                  : LREAL;
  TempHighHigh              : LREAL;
  TempAbsoluteHigh          : LREAL;
  TempAbsoluteLow           : LREAL;

  (* internal tuning parameters *)
  fTuneKp                   : LREAL     := 1.2;
  fTuneTn                   : LREAL     := 2.0;
  fTuneTv                   : LREAL     := 0.42;
  fTuneTd                   : LREAL     := 0.25;
END_STRUCT
END_TYPE

Name

Einheit

Wertebereich

Beschreibung

Generelle Parameter

 

 

 

iMode

keine

INT

Reglerbetriebsmode (1 = heating, 2 = cooling, 3 = heating&cooling) (s.u.)

iReactionOnFailure

keine

INT

Parametrierbare Reaktion auf Fehler (s.u.)

bSelCtrlParameterSet

keine

BOOL

TRUE = externer Parametersatz, FALSE = interner Parametersatz (durch Tuning ermittelt)

dwAlarmSupp

keine

DWORD

Maskiert die Alarme aus (s.u.)

tCtrlCycleTime

s

TIME

Abtastzeit des Reglers. Der Regler errechnet im Takt dieser Abtastzeit neue Werte für die Stellgröße.

tTaskCycleTime

s

TIME

Zykluszeit der Task. Der FB wird im Takt der Task aufgerufen.

Tuning Parameter

 

 

 

iTuningMode

K

E_CTRL_TuneMode

Festlegung der Tuning Reihenfolge (s.u.)

tTuneStabilisation

s

TIME

Wartezeit bis Strecke stabil ist für Tuning Vorgang.

fEndTunePercentHeating

%

LREAL

Prozentwert von Sollgröße, ab der auf Closed Loop Control umgeschaltet wird.

fYTuneCooling

K

LREAL

Stellgrößensprung beim Tuning.

fYStableCooling

K

LREAL

Stellgröße beim Umschalten auf Tuning beim Kühlen.

fScalingFactor

keine

LREAL

Skalierungsfaktor für Parameterumschaltung, wenn kein Tuning für das Kühlen durchgeführt wird.

Sollwert Parameter

 

 

 

fWMin

K

LREAL

Minimale Sollgröße

fWMax

K

LREAL

Maximale Sollgröße

bEnableSoftStart

keine

BOOL

FALSE = kein soft start, TRUE = soft start

bEnableRamping

keine

BOOL

FALSE = keine Verrampung, TRUE = Verrampung

fWStartUp

K

LREAL

Sollgröße beim Anfahren

tStartUp

s

TIME

Zeit mit Sollwert fWStartUp

bStartUpRamping

keine

[TRUE,FALSE]

Schaltet Verrampung während der StartUp-Phase ein.

fWStartUpVeloPos

K/s

LREAL

Anstiegsgeschwindigkeit (Rampe) während der StartUp-Phase

fWStartUpVeloNeg

K/s

LREAL

Abfallgeschwindigkeit (Rampe) während der StartUp-Phase

fWVeloPos

K/s

LREAL

Anstiegsgeschwindigkeit (Rampe)

fWVeloNeg

K/s

LREAL

Abfallgeschwindigkeit (Rampe).

Istgrößen Parameter

 

 

 

tFilter

s

TIME

Filterzeitkonstante des Istwertfilters (P-T1 Filter 1. Ordnung)

bFilter

keine

[TRUE,FALSE]

Mit TRUE wird der Istwertfiler aktiviert.

Totband Parameter

 

 

 

bDeadband

keine

[TRUE,FALSE]

TRUE = Totband ein, FALSE = Totband aus

fEDeadband

K

LREAL

Größe des Totbandes in Grad

Stellgrößen Parameter

 

 

 

fYMin

keine

LREAL

Minimalwert der Stellgröße

fYMax

keine

LREAL

Maximalwert der Stellgröße

fYManual

keine

LREAL

Stellgröße im Handbetrieb

fYOnFailure

keine

LREAL

Stellgröße im Fehlerfall (parametrierbar)

tPWMCycleTime

s

TIME

Zykluszeit des PWM Signals

tPWMMinOffTime

s

TIME

PWM: minimale Ausschaltzeit

tPWMMinOnTime

s

TIME

PWM: minimale Einschaltzeit

tPWMWaitingTime

s

TIME

PWM: Wartezeit beim Umschalten von Heizen nach Kühlen

fYThresholdOff

%

LREAL

3-Punkt: Ausschaltschwelle

fYThresholdOn

%

LREAL

3-Punkt: Einschaltschwelle

nCyclesForSwitchOver

keine

INT

Anzahl Zyklen für Übergang von einem Parametersatz zum anderen

Regler Parameter

 

 

 

bEnablePreController

keine

[TRUE,FALSE]

Schaltet Vorregler ein.

bEnableZones

keine

[TRUE,FALSE]

Schaltet OpenLoop Verhalten bis nahe Sollwert ein.

bEnableCVFilter

keine

[TRUE,FALSE]

Schaltet Stellgrößenfilter hinter Hauptregler ein.

iFilterType

keine

ENUM

Wahl eines Filtertypes für den Stellgrößenfilter hinter dem Hauptregler (s.u.).

iControllerType

keine

ENUM

Wahl eines Regelalgorithmus (s.u.).

Alarming Parameter

 

 

 

TempLow

K

LREAL

Relativer unterer Temperaturgrenzwert im ersten Band

TempLowLow

K

LREAL

Relativer unterer Temperaturgrenzwert im zweiten Band

TempHigh

K

LREAL

Relativer oberer Temperaturgrenzwert im ersten Band

TempHighHigh

K

LREAL

Relativer oberer Temperaturgrenzwert im zweiten Band

TempAbsoluteHigh

K

LREAL

Absoluter oberer Temperaturgrenzwert

TempAbsoluteLow

K

LREAL

Absoluter unterer Temperaturgrenzwert

Experten Parameter

 

 

 

fTuneKp

keine

LREAL

FineTuning Parameter für den PID Regler (nur für Experten)

fTuneTn

keine

LREAL

FineTuning Parameter für den PID Regler (nur für Experten)

fTuneTv

keine

LREAL

FineTuning Parameter für den PID Regler (nur für Experten)

fTuneTd

keine

LREAL

FineTuning Parameter für den PID Regler (nur für Experten)

ST_CTRL_ParaController

TYPE ST_CTRL_ParaController :
STRUCT
  (* Controller parameter set - heating *)
  KpHeat    : FLOAT;
  TnHeat    : TIME;
  TvHeat    : TIME;
  TdHeat    : TIME;
  (* Controller parameter set - cooling *)
  KpCool    : FLOAT;
  TnCool    : TIME;
  TvCool    : TIME;
  TdCool    : TIME;
END_STRUCT
END_TYPE

Name

Einheit

Wertebereich

Beschreibung

KpHeat

keine

LREAL

Verstärkungsfaktor für Hauptregler

TnHeat

s

TIME

Nachstellzeit für Hauptregler (I-Anteil)

TvHeat

s

TIME

Vorhaltzeit für Hauptregler (D-Anteil)

TdHeat

s

TIME

Dämpfungszeit für Hauptregler

KpCool

keine

LREAL

Verstärkungsfaktor für Hauptregler

TnCool

s

TIME

Nachstellzeit für Hauptregler (I-Anteil)

TvCool

s

TIME

Vorhaltzeit für Hauptregler (D-Anteil)

TdCool

s

TIME

Dämpfungszeit für Hauptregler

ENUM: E_CTRL_ERRORCODES

Siehe Dokumentation der TwinCAT Controller Toolbox.

ENUM: E_CTRL_ReactionOnFailure

Name

Beschreibung

eCTRL_ReactionOnFailure_NoFailure

Kein Fehler

eCTRL_ReactionOnFailure_StopController

Wenn Fehler (Alarm), dann stoppe Regler.

eCTRL_ReactionOnFailure_SetManMode

Wenn Fehler (Alarm), dann schalte Regler in Handbetrieb.

eCTRL_ReactionOnFailure_SetYMax

Wenn Fehler (Alarm), dann setze Stellgröße auf maximalen Wert.

eCTRL_ReactionOnFailure_SetYMin

Wenn Fehler (Alarm), dann setze Stellgröße auf minimalen Wert.

eCTRL_ReactionOnFailure_SetYMean

Wenn Fehler (Alarm), dann setze Stellgröße auf Mittelwert (in Planung).

ENUM: E_CTRL_ControllerStateInternal

Name

Beschreibung

E_CTRL_ControllerStateInternalHeating

intern

E_CTRL_ControllerStateInternalCooling

intern

ENUM: E_CTRL_ControlMode

Name

Beschreibung

eCTRL_ControlMode_HEATING

Nur Heizen

eCTRL_ControlMode_COOLING

Nur Kühlen

eCTRL_ControlMode_HEATING_COOLING

Heizen und Kühlen

ENUM: E_CTRL_STATE

Siehe Dokumentation der TwinCAT Controller Toolbox.

ENUM: E_CTRL_STATE_TUNIG

Name

Beschreibung

eCTRL_STATE_TUNING_INIT

Tuning: Initialisierung

eCTRL_STATE_TUNING_IDLE

Tuning: Warten auf stabiles Eingangssignal (Regelgröße)

eCTRL_STATE_TUNING_PULSE

Tuning: Anregung durch kurzen Puls (in Planung)

eCTRL_STATE_TUNING_STEP

Tuning: Anregung durch Sprung (Wendetangentenmethode)

eCTRL_STATE_TUNING_READY

Tuning: Ermittlung der Parameter, Finalisierung

eCTRL_STATE_TUNING_ERROR

Tuning: Fehler beim Tuning aufgetreten

ENUM: E_CTRL_TuneMode

Name

Beschreibung

eCTRL_TuneMode_HEATING

Tuning: nur Heizen

eCTRL_TuneMode_COOLING

Tuning: nur Kühlen

eCTRL_TuneMode_HEATING_COOLING

Tuning: erst Heizen, dann Kühlen

eCTRL_TuneMode_COOLING_HEATING

Tuning: erst Kühlen, dann Heizen

eCTRL_TuneMode_OSCILLATION

Tuning: on-the-fly Parameterschätzung durch Schwingungsanregung (in Planung)

ENUM: E_CTRL_FilterType

Name

Beschreibung

eCTRL_FilterType_FIRSTORDER

Filter erster Ordnung

eCTRL_FilterType_AVERAGE

Mittelwertfilter

ENUM: E_CTRL_ControllerType

Name

Beschreibung

eCTRL_ControllerType_PID

Standard-PID Regelalgorithmus

eCTRL_ControllerType_PI

Standard-PI Regelalgorithmus

eCTRL_ControllerType_PID_Pre

Standard-PID Regelalgorithmus mit Vorregler (in Planung)

eCTRL_ControllerType_PIDD2

serieller PID Regelalgorithmus (in Planung)

Bit-Masken für Alarme

Name

Maske

Beschreibung

nAlarmOpen
Thermocouple

2#0000_0000_0000_0000_0000_0000_0000_0001

Hardware: offener Temperaturfühler

nAlarmReverse
Thermocouple

2#0000_0000_0000_0000_0000_0000_0000_0010

Hardware: verpolter Temperaturfühler

nAlarmBackVoltage

2#0000_0000_0000_0000_0000_0000_0000_0100

Hardware: zu hohe Spannung am Temperaturfühler

nAlarmLeakage
Current

2#0000_0000_0000_0000_0000_0000_0000_1000

Hardware: Leckstrom gemessen

nAlarmShortCircuit

2#0000_0000_0000_0000_0000_0000_0001_0000

Hardware: Kurzschluss

nAlarmOpenCircuit

2#0000_0000_0000_0000_0000_0000_0010_0000

Hardware: kein Strom

nAlarmLimitLow

2#0000_0000_0000_0000_0000_0001_0000_0000

Software: untere erste relative Temperatur unterschritten

nAlarmLimitLowLow

2#0000_0000_0000_0000_0000_0010_0000_0000

Software: untere zweite relative Temperatur unterschritten

nAlarmLimitHigh

2#0000_0000_0000_0000_0000_0100_0000_0000

Software: obere erste relative Temperatur überschritten

nAlarmLimitHighHigh

2#0000_0000_0000_0000_0000_1000_0000_0000

Software: obere zweite relative Temperatur überschritten

nAlarmAbsoluteHigh

2#0000_0000_0000_0000_0001_0000_0000_0000

Software: obere absolute Temperatur überschritten

nAlarmAbsoluteLow

2#0000_0000_0000_0000_0010_0000_0000_0000

Software: untere absolute Temperatur unterschritten

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS-Bibliotheken

TwinCAT 3.1.4016

PC oder CX

Tc2_TempController