Definition der Strukturen

ST_ControllerParameter

TYPE ST_CTRL_TempCtrlParameter:
STRUCT
   
(***********************************************************************)

    (* general parameters *)
    iMode : E_CTRL_ControlMode; (* 1=heating, 2=cooling,3=heating&cooling *)
    iReactionOnFailure : E_CTRL_ReactionOnFailure; (* 0=controller off, 1=manual op, 2=yMin, 3=yMax *)
    bSelCtrlParameterSet : BOOL; (* FALSE = internal set, TRUE = external set *)
    dwAlarmSupp    : DWORD; (* alarm suppression *)
    tCtrlCycleTime : TIME; (* controller cycle time *)
    tTaskCycleTime : TIME; (* plc task cycle time *)
   
(***********************************************************************)

    (* tuning parameteer *)
    iTuningMode : E_CTRL_TuneMode; (* only heating, only cooling, first heating then cooling or vice versa *)
    tTuneStabilisation : TIME := t#20s; (* wait for a stable system*)
    fEndTunePercentHeating : FLOAT := 80.0; (* switch to closed loop control when X > 0.8*W *)
    fYTuneHeating : FLOAT; (* step change while tuning operation*)
    fYStableHeating : FLOAT; (* tuning operation *)
    fEndTunePercentCooling : FLOAT := 20.0; (* switch to closed loop control when X < 0.2*W *)
    fYTuneCooling : FLOAT; (* step change while tuning operation*)
    fYStableCooling : FLOAT; (* tuning operation *)
    fScalingFactor : FLOAT := 1.0; (* Scaling factor for KP heating/cooling *)
   
(***********************************************************************)

    (* setpoint parameters  *)
    fWMin : FLOAT; (* lower limit *)
    fWMax : FLOAT; (* upper limit *)
    (* start up *)
    bEnableSoftStart : BOOL; (* FALSE = no soft start, TRUE = soft start *)
    bEnableRamping : BOOL; (* FALSE = no ramping, TRUE = ramping*)
    fWStartUp : FLOAT; (* soft start plateau setpoint *)
    tStartUp : TIME; (* soft start waiting time*)
    bStartUpRamping : BOOL; (* enable ramping while start up phase*)
    fWStartUpVeloPos : FLOAT; (* max gradient for increasing setpoint in start up phase*)
    fWStartUpVeloNeg : FLOAT; (* max gradient for decreasing setpoint in start up phase *)
    fWVeloPos : FLOAT; (* max gradient for increasing setpoint*)
    fWVeloNeg : FLOAT; (* max gradient for decreasing setpoint*)
   
(***********************************************************************)

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

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

    (* control value parameters      *)
    fYMin : FLOAT; (* lower limit *)
    fYMax : FLOAT; (* upper limit *)
    fYManual : FLOAT;  (* manual operation*)
    fYOnFailure : FLOAT; (* control value on failure *)
    tPWMCycleTime : TIME; (* PWM: period *)
    tPWMMinOffTime : TIME; (* PWM: min off time *)
    tPWMMinOnTime : TIME; (* PWM: min on time *)
    tPWMWaitingTime : TIME; (* PWM: min waiting time *) (* not yet implemented !!!!*)
    fYThresholdOff : FLOAT; (* 3-Point: Off threshold *)
    fYThresholdOn : FLOAT; (* 3-Point: On threshold *)
    nCyclesForSwitchOver : INT := 100;
   
(***********************************************************************)

    (* controller settings       *)
    bEnablePreController: BOOL; (* enable precontroller *)
    bEnableZones : BOOL; (* enable zone around setpoint with open loop control *)
    bEnableCVFilter : BOOL; (* enable filter for CV (type see iFilterType) *)
    iFilterType : E_CTRL_FilterType; (* filtertype of CV filter*)
    iControllerType : E_CTRL_ControllerType; (* used controller normally PID *)
   
(***********************************************************************)

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

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

Generelle Parameter

Name

Einheit

Wertebereich

Beschreibung

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

Name

Einheit

Wertebereich

Beschreibung

iTuningMode

K

E_CTRL_TuneMode

Festlegung der Tuning Reihenfolge (s.u.)

tTuneStabilisation

s

TIME

Wartezeit bis Strecke stabil für Tuning Vorgang.

fEndTunePercentHeating

%

(L)REAL

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

fYTuneCooling

K

(L)REAL

Stellgrößensprung beim Tuning.

fYStableCooling

K

(L)REAL

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

fScalingFactor

keine

(L)REAL

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

Sollwert Parameter

Name

Einheit

Wertebereich

Beschreibung

fWMin

K

(L)REAL

Minimale Sollgröße.

fWMax

K

(L)REAL

Maximale Sollgröße.

bEnableSoftStart

keine

BOOL

FALSE = kein soft start, TRUE = soft start

bEnableRamping

keine

BOOL

FALSE = keine Verrampung, TRUE = Verrampung

fWStartUp

K

(L)REAL

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

(L)REAL

Anstiegsgeschwindigkeit (Rampe) während der StartUp-Phase.

fWStartUpVeloNeg

K/s

(L)REAL

Abfallgeschwindigkeit (Rampe) während der StartUp-Phase

fWVeloPos

K/s

(L)REAL

Anstiegsgeschwindigkeit (Rampe).

fWVeloNeg

K/s

(L)REAL

Abfallgeschwindigkeit (Rampe).

Istgrößen Parameter

Name

Einheit

Wertebereich

Beschreibung

tFilter

s

TIME

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

bFilter

keine

[TRUE,FALSE]

Mit TRUE wird der Istwertfiler aktiviert.

Totband Parameter

Name

Einheit

Wertebereich

Beschreibung

bDeadband

keine

[TRUE,FALSE]

TRUE = Totband ein, FALSE = Totband aus

fEDeadband

K

(L)REAL

Größe des Totbandes in Grad.

Stellgrößen Parameter

Name

Einheit

Wertebereich

Beschreibung

fYMin

keine

(L)REAL

Minimalwert der Stellgröße.

fYMax

keine

(L)REAL

Maximalwert der Stellgröße.

fYManual

keine

(L)REAL

Stellgröße im Handbetrieb.

fYOnFailure

keine

(L)REAL

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

%

(L)REAL

3-Punkt: Ausschaltschwelle

fYThresholdOn

%

(L)REAL

3-Punkt: Einschaltschwelle

nCyclesForSwitchOver

keine

INT

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

Regler Parameter

Name

Einheit

Wertebereich

Beschreibung

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

Name

Einheit

Wertebereich

Beschreibung

TempLow

K

(L)REAL

Relativer unterer Temperaturgrenzwert im ersten Band.

TempLowLow

K

(L)REAL

Relativer unterer Temperaturgrenzwert im zweiten Band.

TempHigh

K

(L)REAL

Relativer oberer Temperaturgrenzwert im ersten Band.

TempHighHigh

K

(L)REAL

Relativer oberer Temperaturgrenzwert im zweiten Band.

TempAbsoluteHigh

K

(L)REAL

Absoluter oberer Temperaturgrenzwert.

TempAbsoluteLow

K

(L)REAL

Absoluter unterer Temperaturgrenzwert.

Experten Parameter

Name

Einheit

Wertebereich

Beschreibung

fTuneKp

keine

(L)REAL

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

fTuneTn

keine

(L)REAL

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

fTuneTv

keine

(L)REAL

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

fTuneTd

keine

(L)REAL

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

Beschreibung

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

Beschreibung

Name

Einheit

Wertebereich

Beschreibung

KpHeat

keine

(L)REAL

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

(L)REAL

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.

E_CTRL_ERRORCODES:

TYPE E_CTRL_ERRORCODES :
(
    eCTRL_ERROR_NOERROR                     := 0, (* no error *)
    eCTRL_ERROR_INVALIDTASKCYCLETIME                := 1, (* invalid task cycle time *)
    eCTRL_ERROR_INVALIDCTRLCYCLETIME                := 2, (* invalid ctrl cycle time *)
    eCTRL_ERROR_INVALIDPARAM                    := 3, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_Tv                 := 4, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_Td                 := 5, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_Tn                 := 6, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_Ti                 := 7, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_fHystereisisRange              := 8, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_fPosOutOn_Off          := 9, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_fNegOutOn_Off          := 10, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_TableDescription               := 11, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_TableData                  := 12, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_DataTableADR           := 13, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_T0                     := 14, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_T1                     := 15, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_T2                 := 16, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_T3                 := 17, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_Theta              := 18, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_nOrder                 := 19, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_Tt                 := 20, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_Tu                 := 21, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_Tg                 := 22, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_infinite_slope         := 23, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_fMaxIsLessThanfMin             := 24, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_fOutMaxLimitIsLessThanfOutMinLimit     := 25, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_fOuterWindow           := 26, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_fInnerWindow           := 27, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_fOuterWindowIsLessThanfInnerWindow     := 28, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_fDeadBandInput             := 29, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_fDeadBandOutput            := 30, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_PWM_Cycletime          := 31, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_no_Parameterset            := 32, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_fOutOn                 := 33, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_fOutOff                := 34, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_fGain              := 35, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_fOffset                := 36, (* invalid parameter *)
    eCTRL_ERROR_MODE_NOT_SUPPORTED              := 37, (* invalid mode: mode not supported *)
    eCTRL_ERROR_INVALIDPARAM_Tv_heating                 := 38, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_Td_heating                 := 39, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_Tn_heating                 := 40, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_Tv_cooling                 := 41, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_Td_cooling                 := 42, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_Tn_cooling                 := 43, (* invalid parameter *)
    eCTRL_ERROR_RANGE_NOT_SUPPORTED                 := 44, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_nParameterChangeCycleTicks         := 45, (* invalid parameter *)
    eCTRL_ERROR_ParameterEstimationFailed           := 46, (* invalid parameter *)
    eCTRL_ERROR_NoiseLevelToHigh                := 47, (* invalid parameter *)
    eCTRL_ERROR_INTERNAL_ERROR_0                := 48, (* internal error *)
    eCTRL_ERROR_INTERNAL_ERROR_1                := 49, (* internal error *)
    eCTRL_ERROR_INTERNAL_ERROR_2                := 50, (* internal error *)
    eCTRL_ERROR_INTERNAL_ERROR_3                := 51, (* internal error *)
    eCTRL_ERROR_INTERNAL_ERROR_4                := 52, (* internal error *)
    eCTRL_ERROR_INTERNAL_ERROR_5                := 53, (* internal error *)
    eCTRL_ERROR_INTERNAL_ERROR_6                := 54, (* internal error *)
    eCTRL_ERROR_INTERNAL_ERROR_7                := 55, (* internal error *)
    eCTRL_ERROR_INTERNAL_ERROR_8                := 56, (* internal error *)
    eCTRL_ERROR_INTERNAL_ERROR_9                := 57, (* internal error *)
    eCTRL_ERROR_INVALIDPARAM_WorkArrayADR           := 58, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_tOnTiime                   := 59, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_tOffTiime                  := 60, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_nMaxMovingPulses               := 61, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_nAdditionalPulsesAtLimits          := 62, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_fCtrlOutMax_Min            := 63, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_fDeltaMax                  := 64, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_tMovingTime            := 65, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_tDeadTime                  := 66, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_tAdditionalMoveTimeAtLimits        := 67, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_fThreshold                 := 68, (* invalid parameter *)
    eCTRL_ERROR_MEMCPY                      := 69, (* MEMCPY failed *)
    eCTRL_ERROR_MEMSET                      := 70, (* MEMSET failed *)
    eCTRL_ERROR_INVALIDPARAM_nNumberOfColumns               := 71, (* invalid parameter *)
    eCTRL_ERROR_FileClose                   := 72, (* File Close failed *)
    eCTRL_ERROR_FileOpen                    := 73, (* File Open failed *)
    eCTRL_ERROR_FileWrite                   := 74, (* File Write failed *)
    eCTRL_ERROR_INVALIDPARAM_fVeloNeg                   := 75, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_fVeloPos                   := 76, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_DeadBandInput          := 77, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_DeadBandOutput         := 78, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_CycleDuration          := 79, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_tStart                 := 80, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_StepHeigthTuningToLow      := 81, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_fMinLimitIsLessThanZero        := 82, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_fMaxLimitIsGreaterThan100          := 83, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_fStepSize                  := 84, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_fOkRangeIsLessOrEqualZero          := 85, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_fForceRangeIsLessOrEqualfOkRange       := 86, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPWMPeriod                := 87, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_tMinimumPulseTime              := 88, (* invalid parameter *)
    eCTRL_ERROR_FileDelete                  := 89, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_nNumberOfPwmOutputs            := 90, (* File Delete failed *)
    eCTRL_ERROR_INVALIDPARAM_nPwmInputArray_SIZEOF      := 91, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_nPwmOutputArray_SIZEOF         := 92, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_nPwmWaitTimesConfig_SIZEOF         := 93, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_nPwmInternalData_SIZEOF        := 94, (* invalid parameter *)
    eCTRL_ERROR_SIZEOF                      := 95, (* SIZEOF failed *)
    eCTRL_ERROR_INVALIDPARAM_nOrderOfTheTransferfunction        := 96, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_nNumeratorArray_SIZEOF         := 97, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_nDenominatorArray_SIZEOF           := 98, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_a_n_IsZero                 := 99, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_WorkArraySIZEOF            := 100, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_MOVINGRANGE_MIN_MAX            := 101, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_MOVINGTIME                 := 102, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_DEADTIME                   := 103, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_fMinLimitIsGreaterThanfMaxLimit    := 104, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_DataTableSIZEOF            := 105, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_OutputVectorDescription        := 106, (* invalid parameter *)
    eCTRL_ERROR_TaskCycleTimeChanged                := 107, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_nMinMovingPulses               := 108, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_fAcceleration          := 109, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_fDeceleration          := 110, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_StartAndTargetPos              := 111, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_fVelocity                  := 112, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_fTargetPos                 := 113, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_fStartPos                  := 114, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_fMovingLength          := 115, (* invalid parameter *)
    eCTRL_ERROR_NT_GetTime                  := 116, (* internal error NT_GetTime *)
    eCTRL_ERROR_INVALIDPARAM_No3PhaseSolutionPossible           := 117, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_fStartVelo                 := 118, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_fTargetVelo            := 119, (* invalid parameter *)
    eCTRL_ERROR_INVALID_NEW_PARAMETER_TYPE          := 120  (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_fBaseTime                  := 121, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_nOrderOfTheTransferfunction_SIZEOF     := 122, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_nFilterOrder           := 124, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_nCoefficientsArray_a_SIZEOF        := 125, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_nCoefficientsArray_b_SIZEOF        := 126, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_nDigitalFiterData_SIZEOF           := 127, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_nLogBuffer_SIZEOF              := 128, (* invalid parameter *)
    eCTRL_ERROR_LogBufferOverflow               := 129, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_nLogBuffer_ADR             := 130, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_nCoefficientsArray_a_ADR           := 131, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_nCoefficientsArray_b_ADR           := 132, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_nPwmInputArray_ADR             := 133, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_nPwmOutputArray_ADR            := 134, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_nPwmWaitTimesConfig_ADR        := 135, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_nPwmInternalData_ADR       := 136, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_nDigitalFiterData_ADR      := 137, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_nNumeratorArray_ADR            := 138, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_nDenominatorArray_ADR      := 139, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_nTransferfunction1Data_ADR         := 140, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_nTransferfunction2Data_ADR         := 141, (* invalid parameter *)
    eCTRL_ERROR_FileSeek                    := 142, (* internal error FB_FileSeek *)
    eCTRL_ERROR_INVALIDPARAM_AmbientTempMaxIsLessThanAmbientTempMin := 143, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_ForerunTempMaxIsLessThanForerunTempMin := 144, (* invalid parameter *)
    eCTRL_ERROR_INVALIDLOGCYCLETIME                 := 145, (* invalid parameter *)
    eCTRL_ERROR_INVALIDVERSION_TcControllerToolbox      := 146,
    eCTRL_ERROR_INVALIDPARAM_Bandwidth                  := 147, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_NotchFrequency             := 148, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_DampingCoefficient             := 149, (* invalid parameter *)
    eCTRL_ERROR_INVALIDPARAM_fKpIsLessThanZero              := 150  (* invalid parameter *)
);
END_TYPE

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.

E_CTRL_STATE :

TYPE E_CTRL_STATE :
(
    eCTRL_STATE_IDLE        := 0, (* state idle *)
    eCTRL_STATE_PASSIVE     := 1, (* state passive *)
    eCTRL_STATE_ACTIVE      := 2, (* state active *)
    eCTRL_STATE_RESET           := 3, (* state reset *)
    eCTRL_STATE_MANUAL      := 4, (* state manual *)
    eCTRL_STATE_TUNING      := 5, (* state tuning *)
    eCTRL_STATE_TUNED           := 6, (* state tuning ready - tuned *)
    eCTRL_STATE_SELFTEST    := 7, (* state selftest *)
    eCTRL_STATE_ERROR           := 8, (* state error *)
    eCTRL_STATE_SYNC_MOVEMENT       := 9  (* state synchronizing movement *)
);
END_TYPE

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

nAlarmOpenThermocouple

2#0000_0000_0000_0000_0000_0000_0000_0001

Hardware: offener Temperaturfühler

nAlarmReverseThermocouple

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

nAlarmLeakageCurrent

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