Definition of the structures and enums
All the structures and enums used in the Controller Toolbox are described in this appendix.
FLOAT:
The library is structured in such a way that it can run either on a PC, BX or on a BC system. To achieve this portability, the function blocks in the library only work with the FLOAT data type. This data type is defined as LREAL or as REAL in a supplementary library.
The supplementary library "TcFloatPC.lib" is linked for PC systems.
TYPE
FLOAT : LREAL;
END_TYPE
The supplementary library "TcFloatBC.lib" is linked for BC systems.
TYPE
FLOAT : REAL;
END_TYPE
The supplementary library "TcFloatBX.lib" is linked for BX systems.
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