Definition der Strukturen und Enums

In diesem Anhang werden alle in der Controller Toolbox verwendeten Strukturen und Enums beschrieben.

FLOAT:

Die Bibliothek ist so aufgebaut, dass diese sowohl auf einem PC- als auch auf einem BX-, BC-System lauffähig ist. Um diese Portabilität zu erreichen, wird in den Funktionsbausteinen der Bibliothek nur mit dem Datentyp FLOAT gearbeitet. In einer zusätzlichen Bibliothek wird dieser Datentyp als LREAL oder REAL definiert.

Auf einem PC-System wird automatisch die zusätzliche Bibliothek "TcFloatPC.lib" eingebunden.

TYPE
     FLOAT : LREAL;
END_TYPE

Auf einem BC-System wird automatisch die zusätzliche Bibliothek "TcFloatBC.lb6" eingebunden.

TYPE
     FLOAT : REAL;
END_TYPE

Auf einem BX-System wird automatisch die zusätzliche Bibliothek "TcFloatBX.lbx" eingebunden.

TYPE
     FLOAT : REAL;
END_TYPE

E_CTRL_MODE:

TYPE E_CTRL_MODE :
(
    eCTRL_MODE_IDLE        := 0, (* mode idle *)
    eCTRL_MODE_PASSIVE     := 1, (* mode passive *)
    eCTRL_MODE_ACTIVE      := 2, (* mode active *)
    eCTRL_MODE_RESET       := 3, (* mode reset *)
    eCTRL_MODE_MANUAL      := 4, (* mode manual *)
    eCTRL_MODE_TUNE        := 5, (* mode tuning *)
    eCTRL_MODE_SELFTEST    := 6, (* mode selftest *)
    eCTRL_MODE_SYNC_MOVEMENT   := 7  (* mode synchronize
*)
)
END_TYPE

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

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

E_CTRL_SIGNAL_TYPE:

E_CTRL_SIGNAL_TYPE:

TYPE E_CTRL_SIGNAL_TYPE :
    (
    eCTRL_TRIANGLE  := 0,
    eCTRL_SINUS     := 1,
    eCTRL_SAWTOOTH  := 2
    );
END_TYPE