Structure definitions

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

General parameters

Name

Unit

Value range

Description

iMode

none

INT

Controller operation mode (1 = heating, 2 = cooling, 3 = heating & cooling) (see below)

 

iReactionOnFailure

none

INT

Parameterizable reaction to errors (see below)

 

bSelCtrlParameterSet

none

BOOL

TRUE = external parameter set, FALSE = internal parameter set (determined by tuning)

dwAlarmSupp

none

DWORD

Masks out the alarms (see below)

 

tCtrlCycleTime

s

TIME

Controller's sampling time. In the course of the sampling time the controller re-calculates the control value.

tTaskCycleTime

s

TIME

Task cycle time. The FB is called with this time interval.

Tuning parameters

Name

Unit

Value range

Description

iTuningMode

K

E_CTRL_TuneMode

Determination of the tuning sequence (see below.)

tTune stabilization

s

TIME

Waiting time until the section is stable for tuning.

fEndTunePercentHeating

%

(L)REAL

Percentage value of setpoint, from which the system switches to Closed Loop Control.

fYTuneCooling

K

(L)REAL

Step change in control value during tuning.

fYStableCooling

K

(L)REAL

Control value when switching to tuning during cooling.

fScalingFactor

none

(L)REAL

Scaling factor for parameter switching if no tuning is performed for cooling.

Setpoint parameters

Name

Unit

Value range

Description

fWMin

K

(L)REAL

Minimum setpoint.

fWMax

K

(L)REAL

Maximum setpoint.

bEnableSoftStart

none

BOOL

FALSE = no soft start, TRUE = soft start

bEnableRamping

none

BOOL

FALSE = no ramping, TRUE = ramping

fWStartUp

K

(L)REAL

Setpoint at start-up.

tStartUp

s

TIME

Time with the fWStartUp setpoint.

bStartUpRamping

none

[TRUE,FALSE]

Switches on ramping during the start-up phase.

fWStartUpVeloPos

K/s

(L)REAL

Rate of rise (of ramp) during the start-up phase.

fWStartUpVeloNeg

K/s

(L)REAL

Rate of fall (of ramp) during the start-up phase

fWVeloPos

K/s

(L)REAL

Rate of rise (of ramp).

fWVeloNeg

K/s

(L)REAL

Rate of fall (of ramp).

Actual value parameters

Name

Unit

Value range

Description

tFilter

s

TIME

Time constant of the actual value filter (first order P-T1 filter)

bFilter

none

[TRUE,FALSE]

The actual value filter is actuated if TRUE.

Deadband parameters

Name

Unit

Value range

Description

bDeadband

none

[TRUE,FALSE]

TRUE = deadband on, FALSE = deadband off

fEDeadband

K

(L)REAL

Size of the deadband in degrees.

Control value parameters

Name

Unit

Value range

Description

fYMin

none

(L)REAL

Minimum value of the control value.

fYMax

none

(L)REAL

Maximum value of the control value.

fYManual

none

(L)REAL

Control value in manual operation.

fYOnFailure

none

(L)REAL

Control value in case of error (parameterizable).

tPWMCycleTime

s

TIME

Cycle time of the PWM signal.

tPWMMinOffTime

s

TIME

PWM: minimum switch-off time

tPWMMinOnTime

s

TIME

PWM: minimum switch-on time

tPWMWaitingTime

s

TIME

PWM: waiting time when switching from heating to cooling

fYThresholdOff

%

(L)REAL

3-point: switch-off threshold

fYThresholdOn

%

(L)REAL

3-point: switch-on threshold

nCyclesForSwitchOver

none

INT

Number of cycles for transition from one parameter set to another

Controller parameters

Name

Unit

Value range

Description

bEnablePreController

none

[TRUE,FALSE]

Switches pre-controller on.

bEnableZones

none

[TRUE,FALSE]

Switches open loop characteristic on until close to setpoint.

bEnableCVFilter

none

[TRUE,FALSE]

Switches on control value filter following the main controller.

iFilterType

none

ENUM

Selection of a filter type for the control value filter following the main controller (see below).

 

iControllerType

none

ENUM

Selection of a control algorithm (see below)

 

Alarming parameters

Name

Unit

Value range

Description

TempLow

K

(L)REAL

Relative lower temperature limit in the first band.

TempLowLow

K

(L)REAL

Relative lower temperature limit in the second band.

TempHigh

K

(L)REAL

Relative upper temperature limit in the first band.

TempHighHigh

K

(L)REAL

Relative upper temperature limit in the second band.

TempAbsoluteHigh

K

(L)REAL

Absolute upper temperature limit.

TempAbsoluteLow

K

(L)REAL

Absolute lower temperature limit.

Expert parameters

Name

Unit

Value range

Description

fTuneKp

none

(L)REAL

FineTuning parameters for the PID controller (only for advanced users)

fTuneTn

none

(L)REAL

FineTuning parameters for the PID controller (only for advanced users)

fTuneTv

none

(L)REAL

FineTuning parameters for the PID controller (only for advanced users)

fTuneTd

none

(L)REAL

FineTuning parameters for the PID controller (only for advanced users)

Description

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

Description

Name

Unit

Value range

Description

KpHeat

none

(L)REAL

Amplification factor for the main controller.

TnHeat

s

TIME

Integral action time for main controller (I component).

TvHeat

s

TIME

Derivative action time for main controller (D component).

TdHeat

s

TIME

Damping time for the main controller.

KpCool

none

(L)REAL

Amplification factor for the main controller.

TnCool

s

TIME

Integral action time for main controller (I component).

TvCool

s

TIME

Derivative action time for main controller (D component).

TdCool

s

TIME

Damping time for the main controller.

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

ENUM: E_CTRL_ReactionOnFailure

Name

Description

eCTRL_ReactionOnFailure_NoFailure

No error..

eCTRL_ReactionOnFailure_StopController

If there is an error (an alarm) the controller will stop.

eCTRL_ReactionOnFailure_SetManMode

If there is an error (an alarm) the controller will switch to manual operation.

eCTRL_ReactionOnFailure_SetYMax

If there is an error (an alarm) set the control value to its maximum.

eCTRL_ReactionOnFailure_SetYMin

If there is an error (an alarm) set the control value to its minimum.

eCTRL_ReactionOnFailure_SetYMean

If there is an error (an alarm) set the control value to the average control value (not yet implemented)

ENUM: E_CTRL_ControllerStateInternal

ENUM: E_CTRL_ControllerStateInternal

Name

Description

E_CTRL_ControllerStateInternalHeating

internal

E_CTRL_ControllerStateInternalCooling

internal

ENUM: E_CTRL_ControlMode

Name

Description

eCTRL_ControlMode_HEATING

Heating only.

eCTRL_ControlMode_COOLING

Cooling only.

eCTRL_ControlMode_HEATING_COOLING

Heating and cooling.

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_TUNING

ENUM: E_CTRL_STATE_TUNING

Name

Description

eCTRL_STATE_TUNING_INIT

Tuning: Initialisation

eCTRL_STATE_TUNING_IDLE

Tuning: wainting for a stable actual value

eCTRL_STATE_TUNING_PULSE

Tuning: not yet realized

eCTRL_STATE_TUNING_STEP

Tuning: Tuning with step reponse

eCTRL_STATE_TUNING_READY

Tuning: Calculation of parameters

eCTRL_STATE_TUNING_ERROR

Tuning: Error while tuning.

ENUM: E_CTRL_TuneMode

ENUM: E_CTRL_TuneMode

Name

Description

eCTRL_TuneMode_HEATING

Tuning: only heating

eCTRL_TuneMode_COOLING

Tuning: only cooling

eCTRL_TuneMode_HEATING_COOLING

Tuning: first heating, then cooling

eCTRL_TuneMode_COOLING_HEATING

Tuning: first cooling, then heating

eCTRL_TuneMode_OSCILLATION

Tuning: on-the-fly tuning with a defined oscillation (in planning)

ENUM: E_CTRL_FilterType

ENUM: E_CTRL_FilterType

Name

Description

eCTRL_FilterType_FIRSTORDER

first order filter

eCTRL_FilterType_AVERAGE

moving average filter

ENUM: E_CTRL_ControllerType

Name

Description

eCTRL_ControllerType_PID

Standard PID control algorithm.

eCTRL_ControllerType_PI

Standard PI control algorithm.

eCTRL_ControllerType_PID_Pre

Standard PID control algorithm with pre-controller (in preparation).

eCTRL_ControllerType_PIDD2

Serial PID control algorithm (in preparation)

Bit-masks for alarms

Name

Mask

Description

nAlarmOpenThermocouple

2#0000_0000_0000_0000_0000_0000_0000_0001

Hardware: open temperature sensor

nAlarmReverseThermocouple

2#0000_0000_0000_0000_0000_0000_0000_0010

Hardware: reverse connected temperature sensor

nAlarmBackVoltage

2#0000_0000_0000_0000_0000_0000_0000_0100

Hardware: excessive voltage at temperature sensor

nAlarmLeakageCurrent

2#0000_0000_0000_0000_0000_0000_0000_1000

Hardware: leakage current measured

nAlarmShortCircuit

2#0000_0000_0000_0000_0000_0000_0001_0000

Hardware: short circuit

nAlarmOpenCircuit

2#0000_0000_0000_0000_0000_0000_0010_0000

Hardware: no current

nAlarmLimitLow

2#0000_0000_0000_0000_0000_0001_0000_0000

Software: fallen below first lower relative temperature

nAlarmLimitLowLow

2#0000_0000_0000_0000_0000_0010_0000_0000

Software: fallen below second lower relative temperature

nAlarmLimitHigh

2#0000_0000_0000_0000_0000_0100_0000_0000

Software: first upper relative temperature exceeded

nAlarmLimitHighHigh

2#0000_0000_0000_0000_0000_1000_0000_0000

Software: second upper relative temperature exceeded

nAlarmAbsoluteHigh

2#0000_0000_0000_0000_0001_0000_0000_0000

Software: upper absolute temperature exceeded

nAlarmAbsoluteLow

2#0000_0000_0000_0000_0010_0000_0000_0000

Software: fallen below lower absolute temperature