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 |