//This file was generated by the LASAL2 CodeGenerator  -- 
//Please, do not edit this file (it might be overwritten by the next generator run)
TYPE
  _DRIVETYPE :
  (
    _NotFound,
    _SDD_310,
    _SDD_315,
    _SDD_105,
    _SDD_120,
    _SDD_305,
    _SDD_335,
    _SDD_215,
    _SDD_205,
    _SDD_210,
    _MDD_100,
    _S_340,
    _SDD_115,
    _SDD_1300:=811237,
    _SDD_1400:=811238,
    _SDD_1500:=811239,
    _SDD_1600:=811240,
    _MDD_2000:=811300,
    _VSDC_151:=811301,
    _VSDC_152:=811302,
    _DC061:=881042,
    _DC062:=881801,
    _SR011:=881802,
    _SR012:=881803,
    _DC101:=881804,
    _DC102:=881805,
    _SR011_1:=881808,
    _WA011:=991800,
    _WA012:=991801
  )$UDINT;
#pragma pack(push, 1)
  _I_HC_Type : STRUCT  //! <Type Comment="Hardware Code an axis&#13;&#10;&#13;&#10;Bit 31..16 Hardware Code of the Control Board&#13;&#10;Bit 15...8 Software version of the feedback CPLD&#13;&#10;Bit   7...0 Hardware Code of the Power Stage" Name="_I_HC_Type"/>
    HardwareCodePowerStage : HSINT;  //! <Type Comment="Hardware Code of the Power Stage (Default: 16#80)" Name="_I_HC_Type.HardwareCodePowerStage"/>
    FPGAVersion : HSINT;  //! <Type Comment="Software version of the feedback CPLD" Name="_I_HC_Type.FPGAVersion"/>
    HardwareCodeControlBoard : HINT;  //! <Type Comment="Hardware Code of the Control Board (Default: 16#0000)" Name="_I_HC_Type.HardwareCodeControlBoard"/>
  END_STRUCT;
#pragma pack(pop)
  _LMC_DYN_SWLIMITS :  //! <Type Comment="Dynamic software end positions" Name="_LMC_DYN_SWLIMITS"/>
  (
    _LMC_DynSWLimitMin,  //! <Type Comment="Choose minimum dynamic SW end position" Name="_LMC_DYN_SWLIMITS._LMC_DynSWLimitMin"/>
    _LMC_DynSWLimitMax  //! <Type Comment="Choose maximum dynamic SW end position" Name="_LMC_DYN_SWLIMITS._LMC_DynSWLimitMax"/>
  )$UDINT;
  _LMCAXIS_CMDERROR : BDINT  //! <Type Comment="Status flags" Name="_LMCAXIS_CMDERROR"/>
  [
    1 PowerOff,  //! <Type Comment="1 --&gt; Position controller is off" Name="_LMCAXIS_CMDERROR.PowerOff"/>
    2 NoReference,  //! <Type Comment="1 --&gt; The axis is not referenced" Name="_LMCAXIS_CMDERROR.NoReference"/>
    3 HWError,  //! <Type Comment="1 --&gt; Servo hardware error" Name="_LMCAXIS_CMDERROR.HWError"/>
    4 ActPosError,  //! <Type Comment="1 --&gt; Invalid position of the hardware" Name="_LMCAXIS_CMDERROR.ActPosError"/>
    5 ContouringError,  //! <Type Comment="1 --&gt; Tracking limit exceeded" Name="_LMCAXIS_CMDERROR.ContouringError"/>
    6 CommandError,  //! <Type Comment="1 --&gt; Command not allowed or &#13;&#10;within the CNC RTWork cycle more than one command has been set&#13;&#10;" Name="_LMCAXIS_CMDERROR.CommandError"/>
    7 SWMinError,  //! <Type Comment="1 --&gt; Software endswitch minimum active" Name="_LMCAXIS_CMDERROR.SWMinError"/>
    8 SWMaxError,  //! <Type Comment="1 --&gt; Software endswitch maximum active" Name="_LMCAXIS_CMDERROR.SWMaxError"/>
    9 vError,  //! <Type Comment="1 --&gt; Selected speed too high" Name="_LMCAXIS_CMDERROR.vError"/>
    10 aError,  //! <Type Comment="1 --&gt; Selected acceleration / deceleration too high" Name="_LMCAXIS_CMDERROR.aError"/>
    11 HWMinError,  //! <Type Comment="1 --&gt; Hardware endswitch minimum active" Name="_LMCAXIS_CMDERROR.HWMinError"/>
    12 HWMaxError,  //! <Type Comment="1 --&gt; Hardware endswitch maximum active" Name="_LMCAXIS_CMDERROR.HWMaxError"/>
    13 DirError,  //! <Type Comment="1 --&gt; The direction of motion is not allowed" Name="_LMCAXIS_CMDERROR.DirError"/>
    14 EmergencyError,  //! <Type Comment="when Client _LMCSafety.Emergency goes to 1&#13;&#10; 0 -&gt; StopMove&#13;&#10; 1 -&gt; PowerOff" Name="_LMCAXIS_CMDERROR.EmergencyError"/>
    15 ResolutionError,  //! <Type Comment="1 -&gt; An overflow by multiplication with the value of the server: Resolution occurred&#13;&#10;" Name="_LMCAXIS_CMDERROR.ResolutionError"/>
    16 GlobalError,  //! <Type Comment="1 --&gt; Global error" Name="_LMCAXIS_CMDERROR.GlobalError"/>
    17 JError,  //! <Type Comment="1--&gt; Selected jerk is too high or low." Name="_LMCAXIS_CMDERROR.JError"/>
    18 SafeError,  //! <Type Comment="1 --&gt; The command was denied because of a safe axis linked reason." Name="_LMCAXIS_CMDERROR.SafeError"/>
  ];
  _LMCAXIS_CONTROLBITS : BDINT  //! <Type Comment="Control-Bits" Name="_LMCAXIS_CONTROLBITS"/>
  [
    1 SetPowerOn,  //! <Type Comment="Set if the clients &quot;LMCController&quot; and &quot;ActPosition&quot; are not connected or &#13;&#10;the axis is active" Name="_LMCAXIS_CONTROLBITS.SetPowerOn"/>
    2 SetFollowMode,  //! <Type Comment="Set if the axis is in operationmode: &quot;FOLLOW_LMCAXIS&quot; and normal follow mode (SetPos = ActPos)" Name="_LMCAXIS_CONTROLBITS.SetFollowMode"/>
    3 ReadActPosFromController,  //! <Type Comment="Dummy Flag. Flag is reserved for later possibility to read ActPos from Controller to instead of _LMCAxis client." Name="_LMCAXIS_CONTROLBITS.ReadActPosFromController"/>
    4 CallReadPDO,  //! <Type Comment="Flag marking that communication between controller and hardware class is done by NewInst commandos for better performance instead of cl" Name="_LMCAXIS_CONTROLBITS.CallReadPDO"/>
    5 ControlLREAL,  //! <Type Comment="Flag marking that connected controller supports control method call with LREAL values." Name="_LMCAXIS_CONTROLBITS.ControlLREAL"/>
    6 SetFollowDragMode,  //! <Type Comment="Set if the axis is in operationmode: &quot;FOLLOW_LMCAXIS&quot; and drag follow mode (SetPos = ActPos)&#13;&#10;In follow drag mode the actual drag at turn on time is kept actively." Name="_LMCAXIS_CONTROLBITS.SetFollowDragMode"/>
    7 ExtIntUnitsChanged,  //! <Type Comment="Bit marking that either the external or the internal units of the _LMCAxis object were changed. Allows recalculations inside of controller class." Name="_LMCAXIS_CONTROLBITS.ExtIntUnitsChanged"/>
  ];
  _LMCAXIS_COUPLE_GEAR_MODE :  //! <Type Comment="Parameter of the methods &quot;CoupleUserPos&quot; and &quot;CoupleProfilePos&quot;" Name="_LMCAXIS_COUPLE_GEAR_MODE"/>
  (
    LMCAXIS_COUPLE_PROFILE_GEAR,  //! <Type Comment="Couple to master with user supplied gearfactor" Name="_LMCAXIS_COUPLE_GEAR_MODE.LMCAXIS_COUPLE_PROFILE_GEAR"/>
    LMCAXIS_COUPLE_PROFILE_NO_GEAR  //! <Type Comment="Couple to master with gearfactor := 1" Name="_LMCAXIS_COUPLE_GEAR_MODE.LMCAXIS_COUPLE_PROFILE_NO_GEAR"/>
  )$UDINT;
  _LMCAXIS_COUPLEERROR :  //! <Type Comment="Errorlist returned by the function: &quot;CoupleGearPolynom&quot;" Name="_LMCAXIS_COUPLEERROR"/>
  (
    LMCAXIS_NO_ERROR_OCCURED,  //! <Type Comment="No Error Occured" Name="_LMCAXIS_COUPLEERROR.LMCAXIS_NO_ERROR_OCCURED"/>
    LMCAXIS_MASTERPOINTER_INVALID,  //! <Type Comment="Pointer to Master-Axis is invalid" Name="_LMCAXIS_COUPLEERROR.LMCAXIS_MASTERPOINTER_INVALID"/>
    LMCAXIS_SELFCOUPLING,  //! <Type Comment="Master-Axis and Slave-Axis are identically - Selfcoupling is not allowed" Name="_LMCAXIS_COUPLEERROR.LMCAXIS_SELFCOUPLING"/>
    LMCAXIS_SOFTWARE_ERROR,  //! <Type Comment="Pointer to Velocity in Data of Master-Axis is invalid" Name="_LMCAXIS_COUPLEERROR.LMCAXIS_SOFTWARE_ERROR"/>
    LMCAXIS_VEL_MASTER_NOT_POSITIVE,  //! <Type Comment="Velocity of Master-Axis is zero or negative" Name="_LMCAXIS_COUPLEERROR.LMCAXIS_VEL_MASTER_NOT_POSITIVE"/>
    LMCAXIS_PATH_MASTER_NOT_POSITIVE,  //! <Type Comment="Path of Master is zero or negative" Name="_LMCAXIS_COUPLEERROR.LMCAXIS_PATH_MASTER_NOT_POSITIVE"/>
    LMCAXIS_PATH_SLAVE_NOT_POSITIVE,  //! <Type Comment="Path of Slave is zero or negative" Name="_LMCAXIS_COUPLEERROR.LMCAXIS_PATH_SLAVE_NOT_POSITIVE"/>
    LMCAXIS_VEL_MASTER_DEFINITION_ERROR,  //! <Type Comment="Master overrides his maximal allowed velocity (Input-Error)" Name="_LMCAXIS_COUPLEERROR.LMCAXIS_VEL_MASTER_DEFINITION_ERROR"/>
    LMCAXIS_JERK_MAX_DEFINITION_ERROR,  //! <Type Comment="Maximal allowed Jerk of Slave is negative or zero" Name="_LMCAXIS_COUPLEERROR.LMCAXIS_JERK_MAX_DEFINITION_ERROR"/>
    LMCAXIS_ACC_ANNIHILATION_FAILED_3_5,  //! <Type Comment="In Couplemode Spline 3rd order with Spline 5th order: The initial-acceleration / initial-deceleration can not be recuced &#13;&#10;to zero without the fact, that the maximal allowed velocity of the slave is exceeded or the velocitiy of the slave &#13;&#10;becomes negative (backdriving is not allowed)" Name="_LMCAXIS_COUPLEERROR.LMCAXIS_ACC_ANNIHILATION_FAILED_3_5"/>
    LMCAXIS_PATH_SX_NEGATIVE_3_5,  //! <Type Comment="In Couplemode Spline 3rd order with Spline 5th order: the path of the Spline of 3rd order becomes negative (backdriving is not allowed)" Name="_LMCAXIS_COUPLEERROR.LMCAXIS_PATH_SX_NEGATIVE_3_5"/>
    LMCAXIS_VEL_COUPLE_NEGATIVE_3_5,  //! <Type Comment="In Couplemode Spline 3rd order with Spline 5th order: the coupling-velocity becomes negative (backdriving is not allowed)" Name="_LMCAXIS_COUPLEERROR.LMCAXIS_VEL_COUPLE_NEGATIVE_3_5"/>
    LMCAXIS_VEL_COUPLE_EXCEED_3_5,  //! <Type Comment="In Couplemode Spline 3rd order with Spline 5th order: the couple-velocity exceeds its maximal allowed value" Name="_LMCAXIS_COUPLEERROR.LMCAXIS_VEL_COUPLE_EXCEED_3_5"/>
    LMCAXIS_PATH_SZ_NEGATIVE_3_5,  //! <Type Comment="In Couplemode Spline 3rd order with Spline 5th order: the path of the spline of 5th order becomes negative (backdriving is not allowed)" Name="_LMCAXIS_COUPLEERROR.LMCAXIS_PATH_SZ_NEGATIVE_3_5"/>
    LMCAXIS_TIME_SZ_NEGATIVE_3_5,  //! <Type Comment="In Couplemode Spline 3rd order with Spline 5th order: the duration of the spline of 5th order becomes negative (mathematical inconsistent - no solution exists)" Name="_LMCAXIS_COUPLEERROR.LMCAXIS_TIME_SZ_NEGATIVE_3_5"/>
    LMCAXIS_VEL_MIN_NEGATIVE_3_5,  //! <Type Comment="In Couplemode Spline 3rd order with Spline 5th order: the minimal velocitiy of the spline of 5th order becomes negative (backdriving is not allowed)" Name="_LMCAXIS_COUPLEERROR.LMCAXIS_VEL_MIN_NEGATIVE_3_5"/>
    LMCAXIS_VEL_MAX_EXCEED_3_5,  //! <Type Comment="In Couplemode Spline 3rd order with Spline 5th order: the velocitiy of the spline of 5th order exceeds its maximal allowed value" Name="_LMCAXIS_COUPLEERROR.LMCAXIS_VEL_MAX_EXCEED_3_5"/>
    LMCAXIS_ACC_MAX_EXCEED_3_5,  //! <Type Comment="In Couplemode Spline 3rd order with Spline 5th order: the acceleration of the spline of 5th order exceeds its maximal allowed value" Name="_LMCAXIS_COUPLEERROR.LMCAXIS_ACC_MAX_EXCEED_3_5"/>
    LMCAXIS_JERK_MAX_SLAVE_EXCEED_3_5,  //! <Type Comment="In Couplemode Spline 3rd order with Spline 5th order: the jerk of the spline of 5th order exceeds its maximal allowed value" Name="_LMCAXIS_COUPLEERROR.LMCAXIS_JERK_MAX_SLAVE_EXCEED_3_5"/>
    LMCAXIS_ACC_ANNIHILATION_FAILED_4_1_4,  //! <Type Comment="In Couplemode Spline 3rd order with Spline 4th order with lineare Spline with Spline 4th order: The initial-acceleration / initial-deceleration can not &#13;&#10;be recuced to zero without the fact, that the maximal allowed velocity of the slave is exceeded or the velocitiy of the slave &#13;&#10;becomes negative (backdriving is not allowed)" Name="_LMCAXIS_COUPLEERROR.LMCAXIS_ACC_ANNIHILATION_FAILED_4_1_4"/>
    LMCAXIS_VEL_ACCNIHIL_NEGATIVE,  //! <Type Comment="In Couplemode Spline 3rd order with Spline 4th order with lineare Spline with Spline 4th order: the coupling-velocity of the&#13;&#10;spline of 3rd order with the spline of 4th order becomes negative (backdriving is not allowed)" Name="_LMCAXIS_COUPLEERROR.LMCAXIS_VEL_ACCNIHIL_NEGATIVE"/>
    LMCAXIS_VEL_ACCNIHIL_EXCEED,  //! <Type Comment="In Couplemode Spline 3rd order with Spline 4th order with lineare Spline with Spline 4th order: the coupling-velocity of the&#13;&#10;spline of 3rd order with the spline of 4th order exceeds its maximal allowed value" Name="_LMCAXIS_COUPLEERROR.LMCAXIS_VEL_ACCNIHIL_EXCEED"/>
    LMCAXIS_ACC_MAX_DEFINITION_ERROR,  //! <Type Comment="Maximal allowed acceleration is negative (input-error)" Name="_LMCAXIS_COUPLEERROR.LMCAXIS_ACC_MAX_DEFINITION_ERROR"/>
    LMCAXIS_VEL_COUPLE_NEGATIVE_4_1_4,  //! <Type Comment="In Couplemode Spline 3rd order with Spline 4th order with lineare Spline with Spline 4th order: the velocity of the linear spline&#13;&#10;becomes negative (backdriving is not allowed)" Name="_LMCAXIS_COUPLEERROR.LMCAXIS_VEL_COUPLE_NEGATIVE_4_1_4"/>
    LMCAXIS_VEL_COUPLE_EXCEED_4_1_4,  //! <Type Comment="In Couplemode Spline 3rd order with Spline 4th order with lineare Spline with Spline 4th order: the velocity of the linear spline&#13;&#10;exceeds its maximal allowed value" Name="_LMCAXIS_COUPLEERROR.LMCAXIS_VEL_COUPLE_EXCEED_4_1_4"/>
    LMCAXIS_PATH_SX_NEGATIVE_4_1_4,  //! <Type Comment="In Couplemode Spline 3rd order with Spline 4th order with lineare Spline with Spline 4th order: the path of the first spline of 4t order&#13;&#10;becomes negative (backdriving is not allowed)" Name="_LMCAXIS_COUPLEERROR.LMCAXIS_PATH_SX_NEGATIVE_4_1_4"/>
    LMCAXIS_PATH_SY_NEGATIVE_4_1_4,  //! <Type Comment="In Couplemode Spline 3rd order with Spline 4th order with lineare Spline with Spline 4th order: the path of the linear spline&#13;&#10;becomes negative (backdriving is not allowed)" Name="_LMCAXIS_COUPLEERROR.LMCAXIS_PATH_SY_NEGATIVE_4_1_4"/>
    LMCAXIS_PATH_SZ_NEGATIVE_4_1_4,  //! <Type Comment="In Couplemode Spline 3rd order with Spline 4th order with lineare Spline with Spline 4th order: the path of the second spline of 4th order&#13;&#10;becomes negative (backdriving is not allowed)" Name="_LMCAXIS_COUPLEERROR.LMCAXIS_PATH_SZ_NEGATIVE_4_1_4"/>
    LMCAXIS_VEL_MIN_NEGATIVE_4_1_4,  //! <Type Comment="In Couplemode Spline 3rd order with Spline 4th order with lineare Spline with Spline 4th order: the velocity of the first spline of 4th order&#13;&#10;becomes negative (has a negative extremum - backdriving is not allowed)" Name="_LMCAXIS_COUPLEERROR.LMCAXIS_VEL_MIN_NEGATIVE_4_1_4"/>
    LMCAXIS_VEL_MAX_EXCEED_4_1_4,  //! <Type Comment="In Couplemode Spline 3rd order with Spline 4th order with lineare Spline with Spline 4th order: the velocity of the first spline of 4th order&#13;&#10;overrides its masimal allowed value" Name="_LMCAXIS_COUPLEERROR.LMCAXIS_VEL_MAX_EXCEED_4_1_4"/>
    LMCAXIS_ACC_MAX_1_EXCEED_4_1_4,  //! <Type Comment="In Couplemode Spline 3rd order with Spline 4th order with lineare Spline with Spline 4th order: the acceleration of the first spline of 4th order&#13;&#10;overrides its masimal allowed value" Name="_LMCAXIS_COUPLEERROR.LMCAXIS_ACC_MAX_1_EXCEED_4_1_4"/>
    LMCAXIS_ACC_MAX_2_EXCEED_4_1_4,  //! <Type Comment="In Couplemode Spline 3rd order with Spline 4th order with lineare Spline with Spline 4th order: the acceleration of the second &#13;&#10;spline of 4th order overrides its masimal allowed value" Name="_LMCAXIS_COUPLEERROR.LMCAXIS_ACC_MAX_2_EXCEED_4_1_4"/>
    LMCAXIS_JERK_MAX_1_EXCEED_4_1_4,  //! <Type Comment="In Couplemode Spline 3rd order with Spline 4th order with lineare Spline with Spline 4th order: the jerk of the first&#13;&#10;spline of 4th order overrides its masimal allowed value" Name="_LMCAXIS_COUPLEERROR.LMCAXIS_JERK_MAX_1_EXCEED_4_1_4"/>
    LMCAXIS_JERK_MAX_2_EXCEED_4_1_4,  //! <Type Comment="In Couplemode Spline 3rd order with Spline 4th order with lineare Spline with Spline 4th order: the jerk of the second &#13;&#10;spline of 4th order overrides its masimal allowed value" Name="_LMCAXIS_COUPLEERROR.LMCAXIS_JERK_MAX_2_EXCEED_4_1_4"/>
    LMCAXIS_TRAPEZOIDSPLINE_DISABLED,  //! <Type Comment="Trapezoid-Spline is disabled (by user of by default-value)" Name="_LMCAXIS_COUPLEERROR.LMCAXIS_TRAPEZOIDSPLINE_DISABLED"/>
    LMCAXIS_VEL_COUPLE_NO_SOLUTION,  //! <Type Comment="No real solution for the coupling-velocity exist (math.: is a complex number)" Name="_LMCAXIS_COUPLEERROR.LMCAXIS_VEL_COUPLE_NO_SOLUTION"/>
    LMCAXIS_VEL_COUPLE_NEGATIVE_2_1_2,  //! <Type Comment="In Couplemode Spline 2nd order with linear Spline and Spline 2nd order: the coupling-velocity becomes negative (backdriving is not allowed)" Name="_LMCAXIS_COUPLEERROR.LMCAXIS_VEL_COUPLE_NEGATIVE_2_1_2"/>
    LMCAXIS_VEL_COUPLE_EXCEED_2_1_2,  //! <Type Comment="In Couplemode Spline 2nd order with linear Spline and Spline 2nd order: the velocity of the linear spline&#13;&#10;exceeds its maximal allowed value" Name="_LMCAXIS_COUPLEERROR.LMCAXIS_VEL_COUPLE_EXCEED_2_1_2"/>
    LMCAXIS_TIME_SX_NEGATIVE_2_1_2,  //! <Type Comment="In Couplemode Spline 2nd order with linear Spline and Spline 2nd order: the duration of the first spline of 2nd order becomes negative&#13;&#10;(mathematical inconsistent - no solution exists)" Name="_LMCAXIS_COUPLEERROR.LMCAXIS_TIME_SX_NEGATIVE_2_1_2"/>
    LMCAXIS_TIME_SY_NEGATIVE_2_1_2,  //! <Type Comment="In Couplemode Spline 2nd order with linear Spline and Spline 2nd order: the duration of the lineare spline becomes negative&#13;&#10;(mathematical inconsistent - no solution exists)" Name="_LMCAXIS_COUPLEERROR.LMCAXIS_TIME_SY_NEGATIVE_2_1_2"/>
    LMCAXIS_TIME_SZ_NEGATIVE_2_1_2,  //! <Type Comment="In Couplemode Spline 2nd order with linear Spline and Spline 2nd order: the duration of the 3rd spline of 2nd order becomes negative&#13;&#10;(mathematical inconsistent - no solution exists)" Name="_LMCAXIS_COUPLEERROR.LMCAXIS_TIME_SZ_NEGATIVE_2_1_2"/>
    LMCAXIS_PATH_SX_NEGATIVE_2_1_2,  //! <Type Comment="In Couplemode Spline 2nd order with linear Spline and Spline 2nd order: the path of the first spline of 2nd order becomes negative&#13;&#10;(mathematical inconsistent - no solution exists)" Name="_LMCAXIS_COUPLEERROR.LMCAXIS_PATH_SX_NEGATIVE_2_1_2"/>
    LMCAXIS_PATH_SY_NEGATIVE_2_1_2,  //! <Type Comment="In Couplemode Spline 2nd order with linear Spline and Spline 2nd order: the path of the lineare spline becomes negative&#13;&#10;(mathematical inconsistent - no solution exists)" Name="_LMCAXIS_COUPLEERROR.LMCAXIS_PATH_SY_NEGATIVE_2_1_2"/>
    LMCAXIS_PATH_SZ_NEGATIVE_2_1_2,  //! <Type Comment="In Couplemode Spline 2nd order with linear Spline and Spline 2nd order: the path of the 3rd spline of 2nd order becomes negative&#13;&#10;(mathematical inconsistent - no solution exists)" Name="_LMCAXIS_COUPLEERROR.LMCAXIS_PATH_SZ_NEGATIVE_2_1_2"/>
    LMCAXIS_DURATION_ERROR  //! <Type Comment="In Couplemode Spline 2nd order with linear Spline and Spline 2nd order: the duration of spline is zero&#13;&#10;(mathematical inconsistent - no solution exists)" Name="_LMCAXIS_COUPLEERROR.LMCAXIS_DURATION_ERROR"/>
  )$UDINT;
#pragma pack(push, 1)
  CurveTable : STRUCT  //! <Type Comment="Table curve points (Masterpos, Slavepos)" Name="CurveTable"/>
    MasterPos : DINT;  //! <Type Comment="Master axis position [Application units]" Name="CurveTable.MasterPos"/>
    SlavePos : DINT;  //! <Type Comment="Slave axis position [Application units]" Name="CurveTable.SlavePos"/>
  END_STRUCT;
#pragma pack(pop)
#pragma pack(push, 1)
  _LMCAXIS_CURVE : STRUCT  //! <Type Comment="Motion type curve data" Name="_LMCAXIS_CURVE"/>
    modulo : DINT;  //! <Type Comment="Lead axis modulo value" Name="_LMCAXIS_CURVE.modulo"/>
    points : DINT;  //! <Type Comment="number of curve points" Name="_LMCAXIS_CURVE.points"/>
    mul : DINT;  //! <Type Comment="Numerator of the slave axis scale factor.&#13;&#10;The scale factor is used on the slave value of the cam table." Name="_LMCAXIS_CURVE.mul"/>
    div : DINT;  //! <Type Comment="Denominator of the slave axis scale factor.&#13;&#10;The scale factor is used on the slave value of the cam table." Name="_LMCAXIS_CURVE.div"/>
    offset : DINT;  //! <Type Comment="Position offset in the slave axis of the cam definition [Internal units].&#13;&#10;Added to the slave value of the cam table." Name="_LMCAXIS_CURVE.offset"/>
    table : ARRAY [0..1023] OF CurveTable;  //! <Type Comment="Table curve points (Masterpos, Slavepos)" Name="_LMCAXIS_CURVE.table"/>
  END_STRUCT;
#pragma pack(pop)
  _LMCAXIS_CURVETABMODE : BDINT  //! <Type Comment="Slave axis operating mode" Name="_LMCAXIS_CURVETABMODE"/>
  [
    1 bStopAxisNoMod,  //! <Type Comment="Parameter of the function &quot;CoupleCurveTab&quot; / &quot;CoupleCAM&quot;&#13;&#10;0 --&gt; Normal operation. Slave follows the master over the curve definition, including a master axis position overflow.&#13;&#10;1 --&gt; Stop slave axis immediately when master axis position overflows." Name="_LMCAXIS_CURVETABMODE.bStopAxisNoMod"/>
    2 bRecoupleCamMod,  //! <Type Comment="Parameter of the function &quot;CoupleCurveTab&quot; / &quot;CoupleCAM&quot;. This parameter defines the coupling mode for a master modulo axis and a slave modulo axis,&#13;&#10;0 --&gt; Normal coupling (first coupling)&#13;&#10;1 --&gt; Recouple to a different CAM table or couple after a successfull decouple to the given CAM table." Name="_LMCAXIS_CURVETABMODE.bRecoupleCamMod"/>
  ];
  _LMCAXIS_ERROR : BDINT  //! <Type Comment="Error-Bits" Name="_LMCAXIS_ERROR"/>
  [
    1 HwError,  //! <Type Comment="Set if a general Hardware-Error occured" Name="_LMCAXIS_ERROR.HwError"/>
    2 SwMinError,  //! <Type Comment="Set if the Software-Endswitch Minimum is active" Name="_LMCAXIS_ERROR.SwMinError"/>
    3 SwMaxError,  //! <Type Comment="Set if the Software-Endswitch Maximum is active" Name="_LMCAXIS_ERROR.SwMaxError"/>
    4 HwMinError,  //! <Type Comment="Set if the Hardware-Endswitch Minimum is active" Name="_LMCAXIS_ERROR.HwMinError"/>
    5 HwMaxError,  //! <Type Comment="Set if the Hardware-Endswitch Maximum is active" Name="_LMCAXIS_ERROR.HwMaxError"/>
    6 ReferenceError,  //! <Type Comment="Set if an error occured during the reference-run" Name="_LMCAXIS_ERROR.ReferenceError"/>
    7 ContouringError,  //! <Type Comment="Set if a tracking-error occured" Name="_LMCAXIS_ERROR.ContouringError"/>
    8 ActPosError,  //! <Type Comment="Set if the Hardware-Position is invalid" Name="_LMCAXIS_ERROR.ActPosError"/>
    9 AbsOffsetError,  //! <Type Comment="Set if an Offset-Error occured" Name="_LMCAXIS_ERROR.AbsOffsetError"/>
    10 OverFlowError,  //! <Type Comment="Set if a Position-Overflow occured" Name="_LMCAXIS_ERROR.OverFlowError"/>
    11 EmergencyError,  //! <Type Comment="Set if the _LMCSafety.Emergency is active" Name="_LMCAXIS_ERROR.EmergencyError"/>
    12 ResolutionError,  //! <Type Comment="Set if the Resolution causes an overflow error&#13;&#10;" Name="_LMCAXIS_ERROR.ResolutionError"/>
    13 PowerOnError,  //! <Type Comment="Set, if the enable signal of the hardware was cleared during operation, or if after calling PowerOn() the axis has not been enabled before a timeout of 30 seconds occured." Name="_LMCAXIS_ERROR.PowerOnError"/>
    14 PowerOffError,  //! <Type Comment="Set, if after calling PowerOff() the axis has not been disabled before a timeout occured." Name="_LMCAXIS_ERROR.PowerOffError"/>
    16 GlobErr,  //! <Type Comment="Set if a global error is active" Name="_LMCAXIS_ERROR.GlobErr"/>
  ];
  _LMCAXIS_ERROR_CONFIG : BDINT  //! <Type Comment="Error-Config Bits" Name="_LMCAXIS_ERROR_CONFIG"/>
  [
    1 vError,  //! <Type Comment="when programmed speed is too high:&#13;&#10; 0 ... the speed will be limited (default)&#13;&#10; 1 ... set the vError flag in the result" Name="_LMCAXIS_ERROR_CONFIG.vError"/>
    2 aError,  //! <Type Comment="when programmed acceleration is too high:&#13;&#10; 0 ... the acceleration will be limited (default)&#13;&#10; 1 ... set the aError flag in the result" Name="_LMCAXIS_ERROR_CONFIG.aError"/>
    3 SWMinError,  //! <Type Comment="when position would be smaller than SWMinPos:&#13;&#10; 0 ... position will be limited (default)&#13;&#10; 1 ... set the SWMinError flag in the result" Name="_LMCAXIS_ERROR_CONFIG.SWMinError"/>
    4 SWMaxError,  //! <Type Comment="when position would be bigger than SWMaxPos:&#13;&#10; 0 ... position will be limited (default)&#13;&#10; 1 ... set the SWMaxError flag in the result" Name="_LMCAXIS_ERROR_CONFIG.SWMaxError"/>
    5 CommandError,  //! <Type Comment="when the deltaposition is bigger than the&#13;&#10;MaxModulo during coupling:&#13;&#10; 0 ... no check (default)&#13;&#10; 1 ... set the CommandError flag in the command result" Name="_LMCAXIS_ERROR_CONFIG.CommandError"/>
    6 EmergencyError,  //! <Type Comment="when Emergency goes to 1:&#13;&#10; 0 ... StopMove() (default)&#13;&#10; 1 ... PowerOff()&#13;&#10;" Name="_LMCAXIS_ERROR_CONFIG.EmergencyError"/>
    7 CoupleMonitoring,  //! <Type Comment="0: Monitoring the coupled axes is disabled. This axis does not recognise an error of its master axis and also does not report its own errors to the master. Furthermore, there is no reaction on errors of its slaves.&#13;&#10;1: Monitoring of all coupled master and slave axes for errors is enabled. The error handling can be configured with SetParameter with modes LMCAXIS_PAR_SET_COUPLE_MASTER_ERROR, LMCAXIS_PAR_SET_COUPLE_SLAVE_ERROR, and LMCAXIS_PAR_SET_COUPLE_MONITOR_CONFIG." Name="_LMCAXIS_ERROR_CONFIG.CoupleMonitoring"/>
    8 JError,  //! <Type Comment="when programmed jerk is too high or low:&#13;&#10; 0 ... the acceleration will be limited (default)&#13;&#10; 1 ... set the JError flag in the result" Name="_LMCAXIS_ERROR_CONFIG.JError"/>
  ];
  _LMCAXIS_FOLLOW_MODE :  //! <Type Comment="Parameter of the function &quot;SetFollowMode&quot;" Name="_LMCAXIS_FOLLOW_MODE"/>
  (
    LMCAXIS_DEACTIVATE_FOLLOW_MODE,  //! <Type Comment="Parameter of the function &quot;SetFollowMode&quot;:&#13;&#10;Deactivate the operationmode &quot;FOLLOW_LMCAXIS&quot;" Name="_LMCAXIS_FOLLOW_MODE.LMCAXIS_DEACTIVATE_FOLLOW_MODE"/>
    LMCAXIS_ACTIVATE_FOLLOW_MODE,  //! <Type Comment="Parameter of the function &quot;SetFollowMode&quot;:&#13;&#10;Activate the operationmode &quot;FOLLOW_LMCAXIS&quot;" Name="_LMCAXIS_FOLLOW_MODE.LMCAXIS_ACTIVATE_FOLLOW_MODE"/>
    LMCAXIS_ACTIVATE_FOLLOWDRAG_MODE  //! <Type Comment="Parameter of the function &quot;SetFollowMode&quot;:&#13;&#10;Activate the operationmode &quot;FOLLOW_LMCAXIS&quot; with actively keeping the actual drag at switch time." Name="_LMCAXIS_FOLLOW_MODE.LMCAXIS_ACTIVATE_FOLLOWDRAG_MODE"/>
  )$UDINT;
  _LMCAXIS_MOVE_RELATIVE_MODE :  //! <Type Comment="Parameter of the function &quot;MoveRelative&quot;" Name="_LMCAXIS_MOVE_RELATIVE_MODE"/>
  (
    LMCAXIS_MOVE_RELATIVE_TO_DESTINATION,  //! <Type Comment="Parameter of the function &quot;MoveRelative&quot;:&#13;&#10;Move relative to destination" Name="_LMCAXIS_MOVE_RELATIVE_MODE.LMCAXIS_MOVE_RELATIVE_TO_DESTINATION"/>
    LMCAXIS_MOVE_RELATIVE_TO_POSITION  //! <Type Comment="Parameter of the function &quot;MoveRelative&quot;:&#13;&#10;Move relative to position" Name="_LMCAXIS_MOVE_RELATIVE_MODE.LMCAXIS_MOVE_RELATIVE_TO_POSITION"/>
  )$UDINT;
  _LMCAXIS_MOVEDIRECTION :  //! <Type Comment="Set direction of movement for the axis&#13;&#10;" Name="_LMCAXIS_MOVEDIRECTION"/>
  (
    LMCAXIS_MOVE_ANY_WAY,  //! <Type Comment="The axis can move in any direction." Name="_LMCAXIS_MOVEDIRECTION.LMCAXIS_MOVE_ANY_WAY"/>
    LMCAXIS_MOVE_NEG_DIR,  //! <Type Comment="The axis can move in the negative direction only." Name="_LMCAXIS_MOVEDIRECTION.LMCAXIS_MOVE_NEG_DIR"/>
    LMCAXIS_MOVE_SHORTEST_WAY,  //! <Type Comment="The axis moves over the shortest distance (both directions)" Name="_LMCAXIS_MOVEDIRECTION.LMCAXIS_MOVE_SHORTEST_WAY"/>
    LMCAXIS_MOVE_POS_DIR  //! <Type Comment="The axis can move in the positive direction only." Name="_LMCAXIS_MOVEDIRECTION.LMCAXIS_MOVE_POS_DIR"/>
  )$UDINT;
  _LMCAXIS_MOVEPROFILE :  //! <Type Comment="Velocity-profile" Name="_LMCAXIS_MOVEPROFILE"/>
  (
    _RAMP_PROFILE,  //! <Type Comment="Velocity-profile resembles a linear ramp" Name="_LMCAXIS_MOVEPROFILE._RAMP_PROFILE"/>
    _SCURVE_PROFILE,  //! <Type Comment="Velocity-profile resembles a sigmoide (S-Curve)&#13;&#10;using a position filtering." Name="_LMCAXIS_MOVEPROFILE._SCURVE_PROFILE"/>
    _JERK_PROFILE:=10  //! <Type Comment="Velocity-profile resembles a sigmoide (S-Curve)&#13;&#10;using exact calculation of a trapezoide acceleration/deceleration" Name="_LMCAXIS_MOVEPROFILE._JERK_PROFILE"/>
  )$UDINT;
  _LMCAXIS_MOVINGTIMEERROR :  //! <Type Comment="Errorlist returned by the function: &quot;CalcMovingTime&quot;" Name="_LMCAXIS_MOVINGTIMEERROR"/>
  (
    LMCAXIS_NO_ERROR_,  //! <Type Comment="No Error occured - a solution is found" Name="_LMCAXIS_MOVINGTIMEERROR.LMCAXIS_NO_ERROR_"/>
    LMCAXIS_MAXVEL_NOT_POSITIV,  //! <Type Comment="Input-Error: Maximal allowed velocity &lt;= 0" Name="_LMCAXIS_MOVINGTIMEERROR.LMCAXIS_MAXVEL_NOT_POSITIV"/>
    LMCAXIS_STARTVEL_TO_BIG,  //! <Type Comment="Input-Error: Velocitiy at Startposition &gt; Maximal allowed velocity" Name="_LMCAXIS_MOVINGTIMEERROR.LMCAXIS_STARTVEL_TO_BIG"/>
    LMCAXIS_ENDVEL_TO_BIG,  //! <Type Comment="Input-Error: Velocitiy at Endposition &gt; Maximal allowed velocity" Name="_LMCAXIS_MOVINGTIMEERROR.LMCAXIS_ENDVEL_TO_BIG"/>
    LMCAXIS_PATH_IS_ZERO,  //! <Type Comment="Input-Error: Startposition is identically equal to Endposition but one velocity &lt;&gt; 0" Name="_LMCAXIS_MOVINGTIMEERROR.LMCAXIS_PATH_IS_ZERO"/>
    LMCAXIS_STARTVEL_NEGATIVE,  //! <Type Comment="Start-Velocity is negative" Name="_LMCAXIS_MOVINGTIMEERROR.LMCAXIS_STARTVEL_NEGATIVE"/>
    LMCAXIS_OVERFLOW_ERROR,  //! <Type Comment="Overflow-Error during calculation occured" Name="_LMCAXIS_MOVINGTIMEERROR.LMCAXIS_OVERFLOW_ERROR"/>
    LMCAXIS_TIME_ERROR_1,  //! <Type Comment="Time of first part of triangel/trapez is negative " Name="_LMCAXIS_MOVINGTIMEERROR.LMCAXIS_TIME_ERROR_1"/>
    LMCAXIS_TIME_ERROR_2,  //! <Type Comment="Time of second part of trapez is negative" Name="_LMCAXIS_MOVINGTIMEERROR.LMCAXIS_TIME_ERROR_2"/>
    LMCAXIS_TIME_ERROR_3,  //! <Type Comment="Time of third part of triangel/trapez is negative" Name="_LMCAXIS_MOVINGTIMEERROR.LMCAXIS_TIME_ERROR_3"/>
    LMCAXIS_POINTER_ERROR,  //! <Type Comment="Pointer to Parameter is NIL " Name="_LMCAXIS_MOVINGTIMEERROR.LMCAXIS_POINTER_ERROR"/>
    LMCAXIS_ENDVEL_NEGATIVE,  //! <Type Comment="End-Velocity is negative" Name="_LMCAXIS_MOVINGTIMEERROR.LMCAXIS_ENDVEL_NEGATIVE"/>
    LMCAXIS_ACCEL_NOT_POSITIV,  //! <Type Comment="Start-Acceleration is not positive" Name="_LMCAXIS_MOVINGTIMEERROR.LMCAXIS_ACCEL_NOT_POSITIV"/>
    LMCAXIS_DECEL_NOT_POSITIV,  //! <Type Comment="End-Deceleration is not positive" Name="_LMCAXIS_MOVINGTIMEERROR.LMCAXIS_DECEL_NOT_POSITIV"/>
    LMCAXIS_PATH_ERROR,  //! <Type Comment="Endposition cannot be reached - Parameter inconsitent" Name="_LMCAXIS_MOVINGTIMEERROR.LMCAXIS_PATH_ERROR"/>
    LMCAXIS_GLOBAL_ERROR,  //! <Type Comment="The resulting time is negative - Parameter inconsitent" Name="_LMCAXIS_MOVINGTIMEERROR.LMCAXIS_GLOBAL_ERROR"/>
    LMCAXIS_NUMERIC_ERROR,  //! <Type Comment="A numerical error has appeared" Name="_LMCAXIS_MOVINGTIMEERROR.LMCAXIS_NUMERIC_ERROR"/>
    LMCAXIS_MATH_ERROR,  //! <Type Comment="A mathematical error has appeared" Name="_LMCAXIS_MOVINGTIMEERROR.LMCAXIS_MATH_ERROR"/>
    LMCAXIS_NO_SOLUTION  //! <Type Comment="No solution found or does not exist" Name="_LMCAXIS_MOVINGTIMEERROR.LMCAXIS_NO_SOLUTION"/>
  )$UDINT;
  _LMCAXIS_OPMODE :  //! <Type Comment="Current state of the axis" Name="_LMCAXIS_OPMODE"/>
  (
    PASSIVE_LMCAXIS,  //! <Type Comment="The axis is in passive hibernation" Name="_LMCAXIS_OPMODE.PASSIVE_LMCAXIS"/>
    WAITIDLE_LMCAXIS,  //! <Type Comment="The axis is in passive waiting state until the hardware reports" Name="_LMCAXIS_OPMODE.WAITIDLE_LMCAXIS"/>
    IDLE_LMCAXIS,  //! <Type Comment="The axis is in active waiting state" Name="_LMCAXIS_OPMODE.IDLE_LMCAXIS"/>
    MOVE_LMCAXIS,  //! <Type Comment="The axis is in movement state" Name="_LMCAXIS_OPMODE.MOVE_LMCAXIS"/>
    FOLLOW_LMCAXIS,  //! <Type Comment="The axis is in state &quot;FOLLOW_LMCAXIS&quot;:&#13;&#10;Axis follows the actual position (defaulted by a controller) passively&#13;&#10;" Name="_LMCAXIS_OPMODE.FOLLOW_LMCAXIS"/>
    STOPED_LMCAXIS,  //! <Type Comment="The axis is stopping the movement (braking)" Name="_LMCAXIS_OPMODE.STOPED_LMCAXIS"/>
    LOCKED_LMCAXIS,  //! <Type Comment="The axis is coupled to a master-axis" Name="_LMCAXIS_OPMODE.LOCKED_LMCAXIS"/>
    REFRUN_LMCAXIS,  //! <Type Comment="The axis is performing a reference run" Name="_LMCAXIS_OPMODE.REFRUN_LMCAXIS"/>
    TUNEPOS_LMCAXIS,  //! <Type Comment="Movement for the purpose of optimization of the control parameters in positive direction" Name="_LMCAXIS_OPMODE.TUNEPOS_LMCAXIS"/>
    TUNENEG_LMCAXIS,  //! <Type Comment="Movement for the purpose of optimization of the control parameters in negative direction" Name="_LMCAXIS_OPMODE.TUNENEG_LMCAXIS"/>
    ERROR_LMCAXIS,  //! <Type Comment="An error occurred" Name="_LMCAXIS_OPMODE.ERROR_LMCAXIS"/>
    WAITPASSIVE_LMCAXIS,  //! <Type Comment="The axis is in idle waiting state until the hardware reports" Name="_LMCAXIS_OPMODE.WAITPASSIVE_LMCAXIS"/>
    SBT_LMCAXIS  //! <Type Comment="Operating mode while SBT is performed at power on" Name="_LMCAXIS_OPMODE.SBT_LMCAXIS"/>
  )$UDINT;
  _LMCAXIS_POSMODE :  //! <Type Comment="Positionmode" Name="_LMCAXIS_POSMODE"/>
  (
    _Positioning,  //! <Type Comment="The axis is not coupled" Name="_LMCAXIS_POSMODE._Positioning"/>
    _NCPositioning,  //! <Type Comment="The axis is controlled by a NCController" Name="_LMCAXIS_POSMODE._NCPositioning"/>
    _StdSyncPositioning,  //! <Type Comment="The axis is coupled by calling one of this functions:&#13;&#10;CoupleDeltaPos, CoupleGearAbsolute or CoupleGearRelative" Name="_LMCAXIS_POSMODE._StdSyncPositioning"/>
    _UserSyncPositioning,  //! <Type Comment="The axis is coupled by calling the function: &#13;&#10;CoupleUserPos" Name="_LMCAXIS_POSMODE._UserSyncPositioning"/>
    _CAMSyncPositioning,  //! <Type Comment="The axis is coupled by calling the function: &#13;&#10;CoupleCurveTab" Name="_LMCAXIS_POSMODE._CAMSyncPositioning"/>
    _ProfileSyncPositioning,  //! <Type Comment="The axis is coupled by calling the function: &#13;&#10;CoupleProfilePos" Name="_LMCAXIS_POSMODE._ProfileSyncPositioning"/>
    _SyncVelocity,  //! <Type Comment="The axis is coupled by calling the function: &#13;&#10;CoupleGearVelocity" Name="_LMCAXIS_POSMODE._SyncVelocity"/>
    _StartPolynomPositioning,  //! <Type Comment="The axis is coupling by calling the function: &#13;&#10;CoupleGearPolynom" Name="_LMCAXIS_POSMODE._StartPolynomPositioning"/>
    _SyncPolynomPositioning  //! <Type Comment="The axis is coupled by calling the function: &#13;&#10;CoupleGearPolynom" Name="_LMCAXIS_POSMODE._SyncPolynomPositioning"/>
  )$UDINT;
  _LMCAXIS_POWER_OFF_MODE :  //! <Type Comment="Parameter of the function: &quot;PowerOff&quot;" Name="_LMCAXIS_POWER_OFF_MODE"/>
  (
    LMCAXIS_IMMEDIATE_STOPP,  //! <Type Comment="&quot;PowerOff(IMMEDIATE_STOPP)&quot; stopps the controller by the moment&#13;&#10;" Name="_LMCAXIS_POWER_OFF_MODE.LMCAXIS_IMMEDIATE_STOPP"/>
    LMCAXIS_SMOOTH_STOPP  //! <Type Comment="&quot;PowerOff(SMOOTH_STOPP)&quot;    stopps the controller smoothly by a ramp" Name="_LMCAXIS_POWER_OFF_MODE.LMCAXIS_SMOOTH_STOPP"/>
  )$UDINT;
  _LMCAXIS_QUERY_POSITION_MODE :  //! <Type Comment="Parameter of the function &quot;InPosition&quot;" Name="_LMCAXIS_QUERY_POSITION_MODE"/>
  (
    LMCAXIS_NO_JERK_FILTER:=4294967294,  //! <Type Comment="Parameter of the function &quot;InPosition&quot;&#13;&#10;Jerkfilter remains unconsidered" Name="_LMCAXIS_QUERY_POSITION_MODE.LMCAXIS_NO_JERK_FILTER"/>
    LMCAXIS_NO_POSITIONWINDOW:=4294967295,  //! <Type Comment="Parameter of the function &quot;InPosition&quot;:&#13;&#10;Positionwindow remains unconsidered&#13;&#10;" Name="_LMCAXIS_QUERY_POSITION_MODE.LMCAXIS_NO_POSITIONWINDOW"/>
    LMCAXIS_POSITIONWINDOW_APP_UNITS,  //! <Type Comment="Parameter of the function &quot;InPosition&quot;:&#13;&#10;Positionwindow in application units" Name="_LMCAXIS_QUERY_POSITION_MODE.LMCAXIS_POSITIONWINDOW_APP_UNITS"/>
    LMCAXIS_POSITIONWINDOW_INT_UNITS,  //! <Type Comment="Parameter of the function &quot;InPosition&quot;:&#13;&#10;Positionwindow in intern units" Name="_LMCAXIS_QUERY_POSITION_MODE.LMCAXIS_POSITIONWINDOW_INT_UNITS"/>
    LMCAXIS_SETPOS_IN_WINDOW_APP_UNITS:=2,  //! <Type Comment="Checks if the distance between the set position and the target position is within the position window.&#13;&#10;The position window is given in application units." Name="_LMCAXIS_QUERY_POSITION_MODE.LMCAXIS_SETPOS_IN_WINDOW_APP_UNITS"/>
    LMCAXIS_SETPOS_IN_WINDOW_INT_UNITS:=3,  //! <Type Comment="Checks if the distance between the set position and the target position is within the position window.&#13;&#10;The position window is given in internal units." Name="_LMCAXIS_QUERY_POSITION_MODE.LMCAXIS_SETPOS_IN_WINDOW_INT_UNITS"/>
    LMCAXIS_ACTPOS_IN_WINDOW_APP_UNITS:=4,  //! <Type Comment="Checks if the distance between the actual position and the target position is within the position window.&#13;&#10;The position window is given in application units." Name="_LMCAXIS_QUERY_POSITION_MODE.LMCAXIS_ACTPOS_IN_WINDOW_APP_UNITS"/>
    LMCAXIS_ACTPOS_IN_WINDOW_INT_UNITS:=5  //! <Type Comment="Checks if the distance between the actual position and the target position is within the position window.&#13;&#10;The position window is given in internal units." Name="_LMCAXIS_QUERY_POSITION_MODE.LMCAXIS_ACTPOS_IN_WINDOW_INT_UNITS"/>
  )$DINT;
  _LMCAXIS_READPARAMETER :  //! <Type Comment="Parameter-ID" Name="_LMCAXIS_READPARAMETER"/>
  (
    LMCAXIS_PAR_RD_V_MAX,  //! <Type Comment="Read maximum axis velocity [Application units/s] or [Internal units/s] depending on mode" Name="_LMCAXIS_READPARAMETER.LMCAXIS_PAR_RD_V_MAX"/>
    LMCAXIS_PAR_RD_A_MAX,  //! <Type Comment="Read maximum axis acceleration / deceleration [Application units/s²] or [Internal units/s²] depending on mode" Name="_LMCAXIS_READPARAMETER.LMCAXIS_PAR_RD_A_MAX"/>
    LMCAXIS_PAR_RD_EXTUNITS,  //! <Type Comment="Read value of server ExUnit [Increments]" Name="_LMCAXIS_READPARAMETER.LMCAXIS_PAR_RD_EXTUNITS"/>
    LMCAXIS_PAR_RD_INTUNITS,  //! <Type Comment="Read value of server IntUnit" Name="_LMCAXIS_READPARAMETER.LMCAXIS_PAR_RD_INTUNITS"/>
    LMCAXIS_PAR_RD_RESFACT,  //! <Type Comment="Read the value of server Resolution" Name="_LMCAXIS_READPARAMETER.LMCAXIS_PAR_RD_RESFACT"/>
    LMCAXIS_PAR_RD_SEMAPHOR,  //! <Type Comment="Read the value of the command semaphore" Name="_LMCAXIS_READPARAMETER.LMCAXIS_PAR_RD_SEMAPHOR"/>
    LMCAXIS_PAR_RD_REFPOS,  //! <Type Comment="Read the reference position [Application units] or [Internal units] depending on mode" Name="_LMCAXIS_READPARAMETER.LMCAXIS_PAR_RD_REFPOS"/>
    LMCAXIS_PAR_RD_MODULO,  //! <Type Comment="Read the value of the server Modulo [Application units]" Name="_LMCAXIS_READPARAMETER.LMCAXIS_PAR_RD_MODULO"/>
    LMCAXIS_PAR_RD_MASTERLOCK_11,  //! <Type Comment="Read MasterLock, 0 = not locked to master, 1 = synchronized with master" Name="_LMCAXIS_READPARAMETER.LMCAXIS_PAR_RD_MASTERLOCK_11"/>
    LMCAXIS_PAR_RD_MASTERLOCK_12,  //! <Type Comment="If the axis is not coupled, 0 is returned. Otherwise the value of MasterLock is returned (see parameter LMCAXIS_PAR_RD_MASTERLOCK_11)" Name="_LMCAXIS_READPARAMETER.LMCAXIS_PAR_RD_MASTERLOCK_12"/>
    LMCAXIS_PAR_RD_MAX_MODULO,  //! <Type Comment="Read the internal overflow position [internal units]" Name="_LMCAXIS_READPARAMETER.LMCAXIS_PAR_RD_MAX_MODULO"/>
    LMCAXIS_PAR_RD_BINOFFSET,  //! <Type Comment="Read the binary position offset [external units] ([encoder increments])" Name="_LMCAXIS_READPARAMETER.LMCAXIS_PAR_RD_BINOFFSET"/>
    LMCAXIS_PAR_RD_POSMODE,  //! <Type Comment="Read the type of the currently active positioning (see server PosMode)" Name="_LMCAXIS_READPARAMETER.LMCAXIS_PAR_RD_POSMODE"/>
    LMCAXIS_PAR_RD_CONTROLLERTYPE,  //! <Type Comment="Read which type of controller is connected to client LMCController" Name="_LMCAXIS_READPARAMETER.LMCAXIS_PAR_RD_CONTROLLERTYPE"/>
    LMCAXIS_PAR_RD_TIMEBASE,  //! <Type Comment="Read the RtWork() cycle time&#13;&#10;in [microseconds] if the most significant bit is set&#13;&#10;or in [milliseconds] otherwise" Name="_LMCAXIS_READPARAMETER.LMCAXIS_PAR_RD_TIMEBASE"/>
    LMCAXIS_PAR_RD_CONTROLLERPAR,  //! <Type Comment="Read a parameter value from the controller connected to client LMCController.&#13;&#10;If no controller is connected, then -1 is returned.&#13;&#10;Mode contains the number of the controller parameter that should be read." Name="_LMCAXIS_READPARAMETER.LMCAXIS_PAR_RD_CONTROLLERPAR"/>
    LMCAXIS_PAR_RD_J_MAX,  //! <Type Comment="Read the maximum jerk [Application units / s² / ms] = [Application units / s^3 * 1000]" Name="_LMCAXIS_READPARAMETER.LMCAXIS_PAR_RD_J_MAX"/>
    LMCAXIS_PAR_RD_MOVETYPE,  //! <Type Comment="Read moving profile of the axis&#13;&#10;====================&#13;&#10; 0 = _RAMP_PROFILE - axis moves without jerk limitation&#13;&#10; 1 = _SCURVE_PROFILE - axis moves with jerk filter (jerk limitation through position filter)&#13;&#10;10 = _JERK_PROFILE - axis moves with jerk limitation (calculated limitation)" Name="_LMCAXIS_READPARAMETER.LMCAXIS_PAR_RD_MOVETYPE"/>
    LMCAXIS_PAR_RD_T_JERK,  //! <Type Comment="Read the jerk time (server Tjerk) [ms].&#13;&#10;This is the time for the acceleration to attain its maximum value." Name="_LMCAXIS_READPARAMETER.LMCAXIS_PAR_RD_T_JERK"/>
    LMCAXIS_PAR_RD_HARDLOCK,  //! <Type Comment="Read the HardLock flag.&#13;&#10;0: the slave always adheres to its speed, acceleration and deceleration limits&#13;&#10;1: when the slave is synchronized with the master, it may exceed its acceleration and deceleration limits but not the speed limit&#13;&#10;2: when the slave is synchronized to a _LMCProfile object the jerk limit is not monitored&#13;&#10;3: when the slave is synchronized the jerk limit is not monitored" Name="_LMCAXIS_READPARAMETER.LMCAXIS_PAR_RD_HARDLOCK"/>
    LMCAXIS_PAR_RD_SHAPE_SPLINE,  //! <Type Comment="Parameter of the function &quot;ReadParameter&quot;:&#13;&#10;Read spline-configuration (See function &quot;ReadParameter&quot;)" Name="_LMCAXIS_READPARAMETER.LMCAXIS_PAR_RD_SHAPE_SPLINE"/>
    LMCAXIS_PAR_RD_COUPLE_ERROR,  //! <Type Comment="Parameter of the function &quot;ReadParameter&quot;:&#13;&#10;Read the last Couping-Error that occured by calling &quot;CoupleGearPolynom&quot;&#13;&#10;" Name="_LMCAXIS_READPARAMETER.LMCAXIS_PAR_RD_COUPLE_ERROR"/>
    LMCAXIS_PAR_RD_MOVEDIRECTION,  //! <Type Comment="Read direction of movement for the axis&#13;&#10;0 = AXIS_MOVE_ANY_WAY axis may move in any direction&#13;&#10;1 = AXIS_MOVE_NEG_DIR axis may only move in the negative direction&#13;&#10;3 = AXIS_MOVE_POS_DIR axis may only move in the positive direction&#13;&#10;2 = AXIS_MOVE_SHORTEST_WAY axis takes the shortest way to the destination" Name="_LMCAXIS_READPARAMETER.LMCAXIS_PAR_RD_MOVEDIRECTION"/>
    LMCAXIS_PAR_RD_SWLIMWINDOW,  //! <Type Comment="Read Endpostion-Tolerance-Window [application units]" Name="_LMCAXIS_READPARAMETER.LMCAXIS_PAR_RD_SWLIMWINDOW"/>
    LMCAXIS_PAR_RD_MASTER_DELAY,  //! <Type Comment="Read the max Delay of the MasterPointer [ticks]" Name="_LMCAXIS_READPARAMETER.LMCAXIS_PAR_RD_MASTER_DELAY"/>
    LMCAXIS_PAR_RD_DEC,  //! <Type Comment="Read deceleration [Application units/s²] or [Internal units/tick²] depending on mode" Name="_LMCAXIS_READPARAMETER.LMCAXIS_PAR_RD_DEC"/>
    LMCAXIS_PAR_RD_DYN_SW_LIMIT,  //! <Type Comment="Is a min/max dynamic software limit monitored?" Name="_LMCAXIS_READPARAMETER.LMCAXIS_PAR_RD_DYN_SW_LIMIT"/>
    LMCAXIS_PAR_RD_MAX_OVERRIDE,  //! <Type Comment="Reads the maximal allowed value for the override&#13;&#10;&#13;&#10;Mode=0: absolute max override value&#13;&#10;Mode=1: max override value in a tenth of percent" Name="_LMCAXIS_READPARAMETER.LMCAXIS_PAR_RD_MAX_OVERRIDE"/>
    LMCAXIS_PAR_RD_NORM_OVERRIDE,  //! <Type Comment="Reads the override value, which represents 100%." Name="_LMCAXIS_READPARAMETER.LMCAXIS_PAR_RD_NORM_OVERRIDE"/>
    LMCAXIS_PAR_RD_OVERRIDE,  //! <Type Comment="Reads the actual override value.&#13;&#10;&#13;&#10;Mode=0: absolute override value&#13;&#10;Mode=1: override value in a tenth of percent" Name="_LMCAXIS_READPARAMETER.LMCAXIS_PAR_RD_OVERRIDE"/>
    LMCAXIS_PAR_RD_DELAYEDMASTERLOCK,  //! <Type Comment="Read DelayedMasterLock, 0 = not locked to master, 1 = synchronized with master" Name="_LMCAXIS_READPARAMETER.LMCAXIS_PAR_RD_DELAYEDMASTERLOCK"/>
    LMCAXIS_PAR_RD_OVERFLOW_POS,  //! <Type Comment="read the internal position overflow limit [Internal units]" Name="_LMCAXIS_READPARAMETER.LMCAXIS_PAR_RD_OVERFLOW_POS"/>
    LMCAXIS_PAR_RD_MIN_POSITION,  //! <Type Comment="read the minimum internal end position  [Internal units]" Name="_LMCAXIS_READPARAMETER.LMCAXIS_PAR_RD_MIN_POSITION"/>
    LMCAXIS_PAR_RD_MAX_POSITION,  //! <Type Comment="read the maximum internal end position [Internal units]" Name="_LMCAXIS_READPARAMETER.LMCAXIS_PAR_RD_MAX_POSITION"/>
    LMCAXIS_PAR_RD_ZPULSE_DIST,  //! <Type Comment="read the distance from refswitch to zpulse [application units]" Name="_LMCAXIS_READPARAMETER.LMCAXIS_PAR_RD_ZPULSE_DIST"/>
    LMCAXIS_PAR_RD_ALLOWED_ACC_JUMP,  //! <Type Comment="Read the maximal allowed accel jump for the slave. [application units / sec^2 / tick]" Name="_LMCAXIS_READPARAMETER.LMCAXIS_PAR_RD_ALLOWED_ACC_JUMP"/>
    LMCAXIS_PAR_RD_SIMULATE_MODE,  //! <Type Comment="Delivers the information if the axis is active in simulate mode." Name="_LMCAXIS_READPARAMETER.LMCAXIS_PAR_RD_SIMULATE_MODE"/>
    LMCAXIS_PAR_RD_ERROR_CONFIG,  //! <Type Comment="Set user defined error configuration&#13;&#10;" Name="_LMCAXIS_READPARAMETER.LMCAXIS_PAR_RD_ERROR_CONFIG"/>
    LMCAXIS_PAR_RD_AEMERGENCY,  //! <Type Comment="Read emergency deccelarition. If Emergency &lt;&gt; 0 [Application units / s²]&#13;&#10;if AEmergency is smaller AMax, the deceleration is AMax" Name="_LMCAXIS_READPARAMETER.LMCAXIS_PAR_RD_AEMERGENCY"/>
    LMCAXIS_PAR_RD_ABS_ENCODER,  //! <Type Comment="This parameter is used for the activation (AbsEncoder = 1) / deactivation (AbsEncoder = 0) of reading encoder-values from a motor" Name="_LMCAXIS_READPARAMETER.LMCAXIS_PAR_RD_ABS_ENCODER"/>
    LMCAXIS_PAR_RD_AXISERROR,  //! <Type Comment="Read error flags of the Axis&#13;&#10;" Name="_LMCAXIS_READPARAMETER.LMCAXIS_PAR_RD_AXISERROR"/>
    LMCAXIS_PAR_RD_REFPOSOFF,  //! <Type Comment="The position change if actual position is overwritten with the reference position." Name="_LMCAXIS_READPARAMETER.LMCAXIS_PAR_RD_REFPOSOFF"/>
    LMCAXIS_PAR_RD_CALC_BRAKE_DIST_RAMP_125,  //! <Type Comment="Brake distance of the ramp or scurve profile is calculated using the deceleration factor of 100% or 125%.&#13;&#10;125% corresponds with the actual deceleration.&#13;&#10;0 .. 100%&#13;&#10;&lt;&gt;0 .. 125%" Name="_LMCAXIS_READPARAMETER.LMCAXIS_PAR_RD_CALC_BRAKE_DIST_RAMP_125"/>
    LMCAXIS_PAR_RD_CAMCOUPLE_USELREAL,  //! <Type Comment="Read the state if a cam couple is calculated internally in LREAL, when the master and the slave is a jerk-limited axis.&#13;&#10;Result = 0 ... normal DINT calculation of couple position&#13;&#10;Result = 1 ... CAM coupling is calculated with LREAL variables internally" Name="_LMCAXIS_READPARAMETER.LMCAXIS_PAR_RD_CAMCOUPLE_USELREAL"/>
    LMCAXIS_PAR_RD_AXISBRAKINGJERK,  //! <Type Comment="The parameter returns if an axis with _JERK_PROFILE is currently braking&#13;&#10;...to its destination in case of a normal movement&#13;&#10;...to the masters trajectory when the axis is coupled" Name="_LMCAXIS_READPARAMETER.LMCAXIS_PAR_RD_AXISBRAKINGJERK"/>
    LMCAXIS_PAR_RD_VJUMP,  //! <Type Comment="Returns if velocity jumps are allowed on the axis.&#13;&#10;0 ... no velocity jumps are allowed (default)&#13;&#10;1 ... velocity jumps are allowed" Name="_LMCAXIS_READPARAMETER.LMCAXIS_PAR_RD_VJUMP"/>
    LMCAXIS_PAR_RD_COUPLE_USERESOLUTION,  //! <Type Comment="Read the state if the resolution is considered by axis coupling. This feature shall be (de)activated only at slave axis." Name="_LMCAXIS_READPARAMETER.LMCAXIS_PAR_RD_COUPLE_USERESOLUTION"/>
    LMCAXIS_PAR_RD_SBTATPOWERON,  //! <Type Comment="Returns if a SBT (safety brake test) is performed automatically, when the axis is powered on.&#13;&#10;When SBT feature is available and a SBT test should be performed the SBT test gets perfomed and the axis gets powered on afterwards. The SBT test is only triggered every LMCAXIS_PAR_SET_SBTATPOWERONTIMEOUT ms." Name="_LMCAXIS_READPARAMETER.LMCAXIS_PAR_RD_SBTATPOWERON"/>
    LMCAXIS_PAR_RD_SBTATPOWERONTIMEOUT,  //! <Type Comment="The given time defines the time between two automatic SBT tests at power on. The internal value when not externally defined is set to halve of the timeout time defined in the safety configuration." Name="_LMCAXIS_READPARAMETER.LMCAXIS_PAR_RD_SBTATPOWERONTIMEOUT"/>
    LMCAXIS_PAR_RD_SBTATPOWERONIGNORE,  //! <Type Comment="Returns if the next time doing a power on of the axis no SBT is performed even, when a test should be done (or the last one failed).&#13;&#10;This can be used, if the machine is in a non-safe position and should be moved to a safe position although the SBT fails." Name="_LMCAXIS_READPARAMETER.LMCAXIS_PAR_RD_SBTATPOWERONIGNORE"/>
    LMCAXIS_PAR_RD_SBTATPOWERONERRORREACTION,  //! <Type Comment="Returns which error reaction is used when an automatic SBT at power on is performed (Error while SBT testing, HW Error while SBT testing)&#13;&#10;Result := 0 ... The axis will not be powered in case of an error - LMCAxis is in error state&#13;&#10;Result := 1 ... The axis will be powered in case of an error regardless - LMCAxis is proceeding with powering the axis" Name="_LMCAXIS_READPARAMETER.LMCAXIS_PAR_RD_SBTATPOWERONERRORREACTION"/>
    LMCAXIS_PAR_RD_SAFEAXISSTATE,  //! <Type Comment="Returns the value of the server &quot;SafeAxisState&quot; casted to a DINT." Name="_LMCAXIS_READPARAMETER.LMCAXIS_PAR_RD_SAFEAXISSTATE"/>
    LMCAXIS_PAR_RD_AUTOMATICSS2,  //! <Type Comment="Returns if the automatic SS2 feature is active or inactive. When the applications wants to handle the SS2 by itself the automatic SS2 handling must be deactivated.&#13;&#10;0 ... no automatic SS2&#13;&#10;1 ... automatic SS2 (default)" Name="_LMCAXIS_READPARAMETER.LMCAXIS_PAR_RD_AUTOMATICSS2"/>
    LMCAXIS_PAR_RD_AXISCONTROL,  //! <Type Comment="Returns a copy of the axis control bits. Allows reacting in an external class to axis control states of _LMCAxis object." Name="_LMCAXIS_READPARAMETER.LMCAXIS_PAR_RD_AXISCONTROL"/>
    LMCAXIS_PAR_RD_DRAGDIRECTION  //! <Type Comment="Parameter to read the direction of follow drag compensation.&#13;&#10;1 ... Drag compensation is positive&#13;&#10;0 ... Drag compensation is not active / was never active&#13;&#10;-1 ... Drag compensation is negative" Name="_LMCAXIS_READPARAMETER.LMCAXIS_PAR_RD_DRAGDIRECTION"/>
  )$UDINT;
  _LMCAXIS_READPOS :  //! <Type Comment="Type of the position that should be read" Name="_LMCAXIS_READPOS"/>
  (
    LMCAXIS_SETPOS_APPUNIT,  //! <Type Comment="Set position with or without jerk limitation (depending on coupler mode), bounded by Modulo [Application units]" Name="_LMCAXIS_READPOS.LMCAXIS_SETPOS_APPUNIT"/>
    LMCAXIS_SETPOS_INTUNIT,  //! <Type Comment="Set position with or without jerk limitation (depending on coupler mode), bounded by Modulo [Internal units]" Name="_LMCAXIS_READPOS.LMCAXIS_SETPOS_INTUNIT"/>
    LMCAXIS_SETPOS_INTUNIT_WO_MOD,  //! <Type Comment="Set position without jerk limitation, NOT bounded by Modulo [Internal units]" Name="_LMCAXIS_READPOS.LMCAXIS_SETPOS_INTUNIT_WO_MOD"/>
    LMCAXIS_DESTPOS_INTUNIT,  //! <Type Comment="Actual target position [Internal units]" Name="_LMCAXIS_READPOS.LMCAXIS_DESTPOS_INTUNIT"/>
    LMCAXIS_SETPOS_INTUNIT_JERK_WO_MOD,  //! <Type Comment="Set position with or without jerk limitation (depending on coupler mode), NOT bounded by Modulo [Internal units]" Name="_LMCAXIS_READPOS.LMCAXIS_SETPOS_INTUNIT_JERK_WO_MOD"/>
    LMCAXIS_SETPOS_INTUNIT_JERK,  //! <Type Comment="Set position with jerk limitation, bounded by Modulo [Internal units]" Name="_LMCAXIS_READPOS.LMCAXIS_SETPOS_INTUNIT_JERK"/>
    LMCAXIS_SETPOS_APPUNIT_JERK,  //! <Type Comment="Set position with jerk limitation, bounded by Modulo [Application units]" Name="_LMCAXIS_READPOS.LMCAXIS_SETPOS_APPUNIT_JERK"/>
    LMCAXIS_SETPOS_APPUNIT_SPEC1,  //! <Type Comment="Set position with or without jerk limitation (see parameter LMCAXIS_PAR_SET_JERK_LIMITATION), bounded by Modulo [Application units]" Name="_LMCAXIS_READPOS.LMCAXIS_SETPOS_APPUNIT_SPEC1"/>
    LMCAXIS_ACTPOS_APPUNIT,  //! <Type Comment="Actual position, bounded by Modulo [Application units]" Name="_LMCAXIS_READPOS.LMCAXIS_ACTPOS_APPUNIT"/>
    LMCAXIS_ACTPOS_INTUNIT,  //! <Type Comment="Actual position, bounded by Modulo [Internal units]" Name="_LMCAXIS_READPOS.LMCAXIS_ACTPOS_INTUNIT"/>
    LMCAXIS_ACTPOS_INTUNIT_WO_MOD,  //! <Type Comment="Actual position, NOT bounded by Modulo [Internal units]" Name="_LMCAXIS_READPOS.LMCAXIS_ACTPOS_INTUNIT_WO_MOD"/>
    LMCAXIS_BRAKEPOS_APPUNIT,  //! <Type Comment="the position, where the axis can stop, if it starts braking immediately.[application units]" Name="_LMCAXIS_READPOS.LMCAXIS_BRAKEPOS_APPUNIT"/>
    LMCAXIS_MASTERPOS_INTUNIT,  //! <Type Comment="current position of the master axis [internal units]" Name="_LMCAXIS_READPOS.LMCAXIS_MASTERPOS_INTUNIT"/>
    LMCAXIS_XW_TO_DESTPOS_INTUNIT,  //! <Type Comment="internal mode for _LMCProfile." Name="_LMCAXIS_READPOS.LMCAXIS_XW_TO_DESTPOS_INTUNIT"/>
    LMCAXIS_DESTPOS_INTUNIT_SWLIMITED,  //! <Type Comment="The destination position of the axis which is limited by the sw limit and the dynamic sw limit." Name="_LMCAXIS_READPOS.LMCAXIS_DESTPOS_INTUNIT_SWLIMITED"/>
    LMCAXIS_ACT_XW_INTUNIT  //! <Type Comment="Parameter to read the current drag without any communication compensation. This parameter is used to read the drag error by the _LMCTorqueHandling class." Name="_LMCAXIS_READPOS.LMCAXIS_ACT_XW_INTUNIT"/>
  )$UDINT;
  _LMCAXIS_READSWENDPOS :  //! <Type Comment="Parameter of the function &quot;ReadSWEndPos&quot;" Name="_LMCAXIS_READSWENDPOS"/>
  (
    LMCAXIS_RD_SWMAX_APPUNIT,  //! <Type Comment="Parameter of the function &quot;ReadSWEndPos&quot;:&#13;&#10;Read the maximal software-endposition in application units" Name="_LMCAXIS_READSWENDPOS.LMCAXIS_RD_SWMAX_APPUNIT"/>
    LMCAXIS_RD_SWMIN_APPUNIT,  //! <Type Comment="Parameter of the function &quot;ReadSWEndPos&quot;:&#13;&#10;Read the minimal software-endposition in application units" Name="_LMCAXIS_READSWENDPOS.LMCAXIS_RD_SWMIN_APPUNIT"/>
    LMCAXIS_RD_SWMAX_INTUNIT,  //! <Type Comment="Parameter of the function &quot;ReadSWEndPos&quot;:&#13;&#10;Read the maximal software-endposition in intern units" Name="_LMCAXIS_READSWENDPOS.LMCAXIS_RD_SWMAX_INTUNIT"/>
    LMCAXIS_RD_SWMIN_INTUNIT  //! <Type Comment="Parameter of the function &quot;ReadSWEndPos&quot;:&#13;&#10;Read the minimal software-endposition in intern units" Name="_LMCAXIS_READSWENDPOS.LMCAXIS_RD_SWMIN_INTUNIT"/>
  )$UDINT;
  _LMCAXIS_READVELOCITY :  //! <Type Comment="Type of the axis velocity that should be read" Name="_LMCAXIS_READVELOCITY"/>
  (
    LMCAXIS_SETVEL_APPUNIT_SEC,  //! <Type Comment="Set velocity without jerk limitation [Application units/s]&#13;&#10;" Name="_LMCAXIS_READVELOCITY.LMCAXIS_SETVEL_APPUNIT_SEC"/>
    LMCAXIS_SETVEL_INTUNIT_SEC,  //! <Type Comment="Set velocity without jerk limitation [Internal units/s]" Name="_LMCAXIS_READVELOCITY.LMCAXIS_SETVEL_INTUNIT_SEC"/>
    LMCAXIS_SETVEL_APPUNIT_NCMODE,  //! <Type Comment="Set velocity + start velocity in NC mode [Application units/tick]" Name="_LMCAXIS_READVELOCITY.LMCAXIS_SETVEL_APPUNIT_NCMODE"/>
    LMCAXIS_SETVEL_INTUNIT_NCMODE,  //! <Type Comment="Set velocity + start velocity in NC mode [Internal units/tick]" Name="_LMCAXIS_READVELOCITY.LMCAXIS_SETVEL_INTUNIT_NCMODE"/>
    LMCAXIS_ACTVEL_APPUNIT_MS,  //! <Type Comment="Unfiltered actual velocity [Application units/ms]" Name="_LMCAXIS_READVELOCITY.LMCAXIS_ACTVEL_APPUNIT_MS"/>
    LMCAXIS_ACTVEL_INTUNIT_MS,  //! <Type Comment="Unfiltered actual velocity [Internal units/ms]" Name="_LMCAXIS_READVELOCITY.LMCAXIS_ACTVEL_INTUNIT_MS"/>
    LMCAXIS_SETVEL_INTUNIT_TICK_JERK,  //! <Type Comment="Set velocity with jerk limitation [Internal units/tick]" Name="_LMCAXIS_READVELOCITY.LMCAXIS_SETVEL_INTUNIT_TICK_JERK"/>
    LMCAXIS_SETVEL_APPUNIT_SEC_JERK,  //! <Type Comment="Set velocity with jerk limitation [Application units/s]" Name="_LMCAXIS_READVELOCITY.LMCAXIS_SETVEL_APPUNIT_SEC_JERK"/>
    LMCAXIS_SETVEL_INTUNIT_TICK,  //! <Type Comment="Set velocity without jerk limitation [Internal units/tick]" Name="_LMCAXIS_READVELOCITY.LMCAXIS_SETVEL_INTUNIT_TICK"/>
    LMCAXIS_ACTVEL_APPUNIT_SEC,  //! <Type Comment="Unfiltered actual velocity [Application units/s]" Name="_LMCAXIS_READVELOCITY.LMCAXIS_ACTVEL_APPUNIT_SEC"/>
    LMCAXIS_ACTVEL_INTUNIT_SEC,  //! <Type Comment="Unfiltered actual velocity [Internal units/s]" Name="_LMCAXIS_READVELOCITY.LMCAXIS_ACTVEL_INTUNIT_SEC"/>
    LMCAXIS_ACTVEL_APPUNIT_SEC_FILT,  //! <Type Comment="Filtered actual velocity [Application units/s]" Name="_LMCAXIS_READVELOCITY.LMCAXIS_ACTVEL_APPUNIT_SEC_FILT"/>
    LMCAXIS_ACTVEL_INTUNIT_SEC_FILT,  //! <Type Comment="Filtered actual velocity [Internal units/s]" Name="_LMCAXIS_READVELOCITY.LMCAXIS_ACTVEL_INTUNIT_SEC_FILT"/>
    LMCAXIS_CMDVEL_APPUNIT  //! <Type Comment="Maximal " Name="_LMCAXIS_READVELOCITY.LMCAXIS_CMDVEL_APPUNIT"/>
  )$UDINT;
#pragma pack(push, 1)
  _LMCAXIS_REFDATA : STRUCT  //! <Type Comment="Parameters of the functions: &#13;&#10;&quot;MoveReference&quot;, &quot;ReferenceAxis&quot; and &quot;_LMCAxisRef::control&quot;" Name="_LMCAXIS_REFDATA"/>
    Status : iprStates;
    Velocity : DINT;  //! <Type Comment="Velocity during the refernce run" Name="_LMCAXIS_REFDATA.Velocity"/>
    Acc : DINT;  //! <Type Comment="Acceleration during the refernce run" Name="_LMCAXIS_REFDATA.Acc"/>
    vSetRef1 : DINT;  //! <Type Comment="Velocity during the movement to the refernce-switch" Name="_LMCAXIS_REFDATA.vSetRef1"/>
    vSetRef2 : DINT;  //! <Type Comment="Velocity during the movement away from the refernce-switch" Name="_LMCAXIS_REFDATA.vSetRef2"/>
    PosWindow : DINT;  //! <Type Comment="Position window for the Z-Impuls" Name="_LMCAXIS_REFDATA.PosWindow"/>
    LatchPosRef : DINT;  //! <Type Comment="External position used in mode &quot;RefLatchPos&quot;" Name="_LMCAXIS_REFDATA.LatchPosRef"/>
  END_STRUCT;
#pragma pack(pop)
  _LMCAXIS_REFMODE : BDINT  //! <Type Comment="Reference mode" Name="_LMCAXIS_REFMODE"/>
  [
    1 NoZImpulse,  //! <Type Comment="0 --&gt; Referencing with referencing impulse&#13;&#10;1 --&gt; Referencing without referencing impulse" Name="_LMCAXIS_REFMODE.NoZImpulse"/>
    2 NoEndSwitch,  //! <Type Comment="0 --&gt; Referencing with endswitches&#13;&#10;1 --&gt; Referencing without endswitches" Name="_LMCAXIS_REFMODE.NoEndSwitch"/>
    3 RefDirection,  //! <Type Comment="1 --&gt; Referencing on positive direction&#13;&#10;0 --&gt; Referencing on negative direction" Name="_LMCAXIS_REFMODE.RefDirection"/>
    4 NoTurnOnSwitch,  //! <Type Comment="0 --&gt; Reverse direction at the reference switch&#13;&#10;1 --&gt; Do not reverse direction at the reference switch" Name="_LMCAXIS_REFMODE.NoTurnOnSwitch"/>
    5 ESEqualRef,  //! <Type Comment="1 --&gt; Hardware end switch is used as reference switch" Name="_LMCAXIS_REFMODE.ESEqualRef"/>
    6 NoSet,  //! <Type Comment="0 --&gt; The transmitted position is the reference position&#13;&#10;1 --&gt; The actual position is the reference position" Name="_LMCAXIS_REFMODE.NoSet"/>
    7 RefLatchPos,  //! <Type Comment="1 --&gt; Read reference position from client cLatchPos. If value changes, do a MoveAbsolute(cLatchPos) and set cLatchPos as current position." Name="_LMCAXIS_REFMODE.RefLatchPos"/>
    8 RefFirstEdge,  //! <Type Comment="1 --&gt; Go back to first edge of ref.switch or end switch" Name="_LMCAXIS_REFMODE.RefFirstEdge"/>
    9 SafeReferenceAxis,  //! <Type Comment="The axis will be perform a safety reference movement after the functional reference is finished." Name="_LMCAXIS_REFMODE.SafeReferenceAxis"/>
    10 SafeReferenceOnly,  //! <Type Comment="The axis will be perform a safety reference movement only. No functional reference movement is done.&#13;&#10;This can be used if the safe reference position is not identical to the functional reference position or when the functional reference position can not be reached (e.g. referencing via current against a block)." Name="_LMCAXIS_REFMODE.SafeReferenceOnly"/>
    11 SafeInvRefDirection,  //! <Type Comment="In the usual case the safety reference movement after setting the safe position is done in the opposite direction of the functional reference movement.&#13;&#10;When SafeInvRefDirection is set, the safety reference movement will be done with the same direction as the functional reference movement.&#13;&#10;When SafeInvRefDirection is not set, the safety reference movement will be done with the opposite direction as the functional reference movement.&#13;&#10;" Name="_LMCAXIS_REFMODE.SafeInvRefDirection"/>
  ];
  _LMCAXIS_SETPARAMETER :  //! <Type Comment="Parameter-ID" Name="_LMCAXIS_SETPARAMETER"/>
  (
    LMCAXIS_PAR_SET_COUPLING_MODE,  //! <Type Comment="Changes the coupling mode" Name="_LMCAXIS_SETPARAMETER.LMCAXIS_PAR_SET_COUPLING_MODE"/>
    LMCAXIS_PAR_SET_DESTINATION,  //! <Type Comment="Sets new target position&#13;&#10;mode  = 0: [Application units]&#13;&#10;mode &lt;&gt; 0: [Internal units]" Name="_LMCAXIS_SETPARAMETER.LMCAXIS_PAR_SET_DESTINATION"/>
    LMCAXIS_PAR_SET_OVERRIDE,  //! <Type Comment="Set new override value [0.1%]" Name="_LMCAXIS_SETPARAMETER.LMCAXIS_PAR_SET_OVERRIDE"/>
    LMCAXIS_PAR_SET_LOGMODE,  //! <Type Comment="Changes data logger settings" Name="_LMCAXIS_SETPARAMETER.LMCAXIS_PAR_SET_LOGMODE"/>
    LMCAXIS_PAR_RESET_REF_STATE,  //! <Type Comment="The reference status is reset" Name="_LMCAXIS_SETPARAMETER.LMCAXIS_PAR_RESET_REF_STATE"/>
    LMCAXIS_PAR_SET_CHANGE_SW_LIMITS,  //! <Type Comment="Change how the software limits check works" Name="_LMCAXIS_SETPARAMETER.LMCAXIS_PAR_SET_CHANGE_SW_LIMITS"/>
    LMCAXIS_PAR_SET_JERK_LIMITATION,  //! <Type Comment="Activates / deactivates jerk filter" Name="_LMCAXIS_SETPARAMETER.LMCAXIS_PAR_SET_JERK_LIMITATION"/>
    LMCAXIS_PAR_SET_SHIFT_BREAKPOS,  //! <Type Comment="Brake point shift for NC mode" Name="_LMCAXIS_SETPARAMETER.LMCAXIS_PAR_SET_SHIFT_BREAKPOS"/>
    LMCAXIS_PAR_SET_OVERFLOW_POS,  //! <Type Comment="Sets a new internal position overflow limit [Internal units]" Name="_LMCAXIS_SETPARAMETER.LMCAXIS_PAR_SET_OVERFLOW_POS"/>
    LMCAXIS_PAR_SET_MIN_POSITION,  //! <Type Comment="Sets a new minimum internal end position  [Internal units]" Name="_LMCAXIS_SETPARAMETER.LMCAXIS_PAR_SET_MIN_POSITION"/>
    LMCAXIS_PAR_SET_MAX_POSITION,  //! <Type Comment="Sets a new maximum internal end position [Internal units]" Name="_LMCAXIS_SETPARAMETER.LMCAXIS_PAR_SET_MAX_POSITION"/>
    LMCAXIS_PAR_SET_HARDLOCK,  //! <Type Comment="Change monitoring slave acceleration, deceleration, and jerk." Name="_LMCAXIS_SETPARAMETER.LMCAXIS_PAR_SET_HARDLOCK"/>
    LMCAXIS_PAR_SET_SWLIM_STANDSTILL,  //! <Type Comment="Activate/deactivate the SW end position monitor during standstill" Name="_LMCAXIS_SETPARAMETER.LMCAXIS_PAR_SET_SWLIM_STANDSTILL"/>
    LMCAXIS_PAR_SET_SWLIM_DIR_CHANGE,  //! <Type Comment="Enable/disable SW end position monitor with direction reversal" Name="_LMCAXIS_SETPARAMETER.LMCAXIS_PAR_SET_SWLIM_DIR_CHANGE"/>
    LMCAXIS_PAR_SET_SWLIM_MOVING,  //! <Type Comment="Enable/disable the set position monitor during movement toward the SW end positions" Name="_LMCAXIS_SETPARAMETER.LMCAXIS_PAR_SET_SWLIM_MOVING"/>
    LMCAXIS_PAR_SET_INIT_JERK_FILTER,  //! <Type Comment="Initialize the jerk filter with ControllerOn" Name="_LMCAXIS_SETPARAMETER.LMCAXIS_PAR_SET_INIT_JERK_FILTER"/>
    LMCAXIS_PAR_SET_BINOFFSET,  //! <Type Comment="Set BinOffset [Increments] to a new value and update the position" Name="_LMCAXIS_SETPARAMETER.LMCAXIS_PAR_SET_BINOFFSET"/>
    LMCAXIS_PAR_SET_VJUMP,  //! <Type Comment="Enable/disable a jump in speed" Name="_LMCAXIS_SETPARAMETER.LMCAXIS_PAR_SET_VJUMP"/>
    LMCAXIS_PAR_SET_SW_LIMIT_FLAGS,  //! <Type Comment="Defines when AxisError.SwMinError and SwMaxError is set" Name="_LMCAXIS_SETPARAMETER.LMCAXIS_PAR_SET_SW_LIMIT_FLAGS"/>
    LMCAXIS_PAR_SET_SW_LIM_WINDOW,  //! <Type Comment="Set tolerance window to set the SW end position monitor to idle mode" Name="_LMCAXIS_SETPARAMETER.LMCAXIS_PAR_SET_SW_LIM_WINDOW"/>
    LMCAXIS_PAR_SET_MOVE_DIR,  //! <Type Comment="Set direction of movement for the axis, if mode = 1 the MoveDirection change possibility is locked so that a following PowerOn() call &quot;mode&quot; will be ignored." Name="_LMCAXIS_SETPARAMETER.LMCAXIS_PAR_SET_MOVE_DIR"/>
    LMCAXIS_PAR_SET_TIMEBASE,  //! <Type Comment="Set RtWork cycle time of the axis and make it callable from outside the class" Name="_LMCAXIS_SETPARAMETER.LMCAXIS_PAR_SET_TIMEBASE"/>
    LMCAXIS_PAR_SET_CONTROLLERPAR,  //! <Type Comment="Set the parameters of the connected controller" Name="_LMCAXIS_SETPARAMETER.LMCAXIS_PAR_SET_CONTROLLERPAR"/>
    LMCAXIS_PAR_SET_ACTVELFILTER,  //! <Type Comment="Set whether the server ActVelocity displays the filtered or unfiltered actual velocity" Name="_LMCAXIS_SETPARAMETER.LMCAXIS_PAR_SET_ACTVELFILTER"/>
    LMCAXIS_PAR_SET_SHAPE_SPLINE,  //! <Type Comment="Modify the shapes of the splines used in CoupleGearPolynom" Name="_LMCAXIS_SETPARAMETER.LMCAXIS_PAR_SET_SHAPE_SPLINE"/>
    LMCAXIS_PAR_SET_NO_OVERFLOWERROR,  //! <Type Comment="Suppress OverflowError when a slave axis cannot follow its master axis" Name="_LMCAXIS_SETPARAMETER.LMCAXIS_PAR_SET_NO_OVERFLOWERROR"/>
    LMCAXIS_PAR_SET_MASTERPOS_OLD,  //! <Type Comment="For internal use only." Name="_LMCAXIS_SETPARAMETER.LMCAXIS_PAR_SET_MASTERPOS_OLD"/>
    LMCAXIS_PAR_SET_MASTER_DELAY,  //! <Type Comment="Set the max Delay of the MasterPointer &#13;&#10;default = 0&#13;&#10;max = 6" Name="_LMCAXIS_SETPARAMETER.LMCAXIS_PAR_SET_MASTER_DELAY"/>
    LMCAXIS_PAR_SET_MAXMODULO,  //! <Type Comment="Set the MaxModule value&#13;&#10;default = 16#06000000" Name="_LMCAXIS_SETPARAMETER.LMCAXIS_PAR_SET_MAXMODULO"/>
    LMCAXIS_PAR_SET_MAX_OVERRIDE:=29,  //! <Type Comment="Set the maximal allowed Override value." Name="_LMCAXIS_SETPARAMETER.LMCAXIS_PAR_SET_MAX_OVERRIDE"/>
    LMCAXIS_PAR_SET_NORM_OVERRIDE,  //! <Type Comment="Norm. override value. Default value = 1000" Name="_LMCAXIS_SETPARAMETER.LMCAXIS_PAR_SET_NORM_OVERRIDE"/>
    LMCAXIS_PAR_SET_MASTERLOCK_DELAYCYCLES,  //! <Type Comment="set the amount of cycles for the delayed MasterLock&#13;&#10;default = 0" Name="_LMCAXIS_SETPARAMETER.LMCAXIS_PAR_SET_MASTERLOCK_DELAYCYCLES"/>
    LMCAXIS_PAR_SET_ALLOWED_ACC_JUMP,  //! <Type Comment="Set the maximal allowed accel jump for the slave. [application units / sec^2 / tick]" Name="_LMCAXIS_SETPARAMETER.LMCAXIS_PAR_SET_ALLOWED_ACC_JUMP"/>
    LMCAXIS_PAR_SET_SIMULATE_MODE,  //! <Type Comment="Value=1: Set the simulation mode&#13;&#10;Value=0: Disable the simulation mode" Name="_LMCAXIS_SETPARAMETER.LMCAXIS_PAR_SET_SIMULATE_MODE"/>
    LMCAXIS_PAR_SET_DEACTIVATE_CALC_BRAKEPOS,  //! <Type Comment="1: Deactivates the computation of the master brake position. Software limit violations of the coupled axis may not be averted.&#13;&#10;0: Enables computation of the master brake position. Upcoming software limit violations may be detected and averted." Name="_LMCAXIS_SETPARAMETER.LMCAXIS_PAR_SET_DEACTIVATE_CALC_BRAKEPOS"/>
    LMCAXIS_PAR_SET_COUPLE_SLAVE_ERROR,  //! <Type Comment="Defines the reaction of this axis in case of an error of a coupled slave axis&#13;&#10;0: ignores the error. &#13;&#10;1: stops the axis with maximal deceleration, but does not disable it (like StopMove())&#13;&#10;2: (DEFAULT) stops with maximal deceleration and disables the axis (like PowerOff(LMCAXIS_SMOOTH_STOP))&#13;&#10;3: disables the axis immediately (like PowerOff(LMCAXIS_IMMEDIATE_STOP))&#13;&#10;&#13;&#10;" Name="_LMCAXIS_SETPARAMETER.LMCAXIS_PAR_SET_COUPLE_SLAVE_ERROR"/>
    LMCAXIS_PAR_SET_COUPLE_MASTER_ERROR,  //! <Type Comment="Defines the reaction of this axis in case of an error of its MASTER axis or some axis coupled with the master.&#13;&#10;0: ignores the error. &#13;&#10;1: stops the axis with maximal deceleration, but does not disable it (like StopMove())&#13;&#10;2: (DEFAULT) stops with maximal deceleration and disables the axis (like PowerOff(LMCAXIS_SMOOTH_STOP))&#13;&#10;3: disables the axis immediately (like PowerOff(LMCAXIS_IMMEDIATE_STOP))&#13;&#10;&#13;&#10;" Name="_LMCAXIS_SETPARAMETER.LMCAXIS_PAR_SET_COUPLE_MASTER_ERROR"/>
    LMCAXIS_PAR_SET_COUPLE_MONITOR_CONFIG,  //! <Type Comment="Extended configuration for couple monitoring&#13;&#10;Bit 1: ReportErrorToMaster&#13;&#10;Bit 2: ReportSlaveErrorToMaster&#13;&#10;Bit 3: ReportMasterErrorToSlave&#13;&#10;Bit 4: ReportSlaveErrorToSlave&#13;&#10;Bit 5: SwLimitMonitoringForMyMaster&#13;&#10;Bit 6: PowerOffMonitoringForMySlave" Name="_LMCAXIS_SETPARAMETER.LMCAXIS_PAR_SET_COUPLE_MONITOR_CONFIG"/>
    LMCAXIS_PAR_SET_DELAYEDMASTERLOCK_WINDOW,  //! <Type Comment="alternative mode for AxisStatus.DelayedMasterLock for coupled axes:&#13;&#10;If the master axis is within a position and velocity window, the DelayedMasterLock bit will be set.&#13;&#10;&#13;&#10;input parameter &quot;value&quot; defines a position window [application units]&#13;&#10;input parameter &quot;mode&quot; defines a velocity window [application units / sec]" Name="_LMCAXIS_SETPARAMETER.LMCAXIS_PAR_SET_DELAYEDMASTERLOCK_WINDOW"/>
    LMCAXIS_PAR_SET_MASTERVEL_OLD,  //! <Type Comment="For internal use only." Name="_LMCAXIS_SETPARAMETER.LMCAXIS_PAR_SET_MASTERVEL_OLD"/>
    LMCAXIS_PAR_SET_POWERON_TIMEOUT,  //! <Type Comment="After a PowerOn(), this is the maximum timeout&#13;&#10;for the hardware to be powered on. For axis with&#13;&#10;commutation-search this can take some time.&#13;&#10;90000ms (default)" Name="_LMCAXIS_SETPARAMETER.LMCAXIS_PAR_SET_POWERON_TIMEOUT"/>
    LMCAXIS_PAR_SET_CHANGECONTROLLERTYPE,  //! <Type Comment="With this parameter the controller is reinitialized with the axis pointers and returns the ControllerType of the connected controller.&#13;&#10;This parameter is only active when the axis is not powered (PASSIVE_LMCAXIS)." Name="_LMCAXIS_SETPARAMETER.LMCAXIS_PAR_SET_CHANGECONTROLLERTYPE"/>
    LMCAXIS_PAR_SET_COUPLE_SLAVEOFFSET,  //! <Type Comment="To set the slave offset of a slave coupled by a cam/curvetable." Name="_LMCAXIS_SETPARAMETER.LMCAXIS_PAR_SET_COUPLE_SLAVEOFFSET"/>
    LMCAXIS_PAR_SET_REFPOSOFF,  //! <Type Comment="The original position change created by referencing can be initialized this way." Name="_LMCAXIS_SETPARAMETER.LMCAXIS_PAR_SET_REFPOSOFF"/>
    LMCAXIS_PAR_SET_CALC_BRAKE_DIST_RAMP_125,  //! <Type Comment="Brake distance of the ramp or scurve profile will be calculated using the deceleration factor of 100% or 125%.&#13;&#10;125% corresponds with the actual deceleration." Name="_LMCAXIS_SETPARAMETER.LMCAXIS_PAR_SET_CALC_BRAKE_DIST_RAMP_125"/>
    LMCAXIS_PAR_SET_CAMCOUPLE_USELREAL,  //! <Type Comment="Activate the feature that cam coupling is calculated internally with LREAL, when the master and the slave axis is jerk-limited (MoveType = _JERK_PROFILE).&#13;&#10;This allows a tighter coupling and no loss of precision at low speed.&#13;&#10;Value = 0 ... Deactivate the feature&#13;&#10;Value = 1 ... Activate the feature " Name="_LMCAXIS_SETPARAMETER.LMCAXIS_PAR_SET_CAMCOUPLE_USELREAL"/>
    LMCAXIS_PAR_SET_COUPLE_USERESOLUTION,  //! <Type Comment="Activate the feature that resolution is considered by axis coupling. This feature shall be (de)activated only at slave axis." Name="_LMCAXIS_SETPARAMETER.LMCAXIS_PAR_SET_COUPLE_USERESOLUTION"/>
    LMCAXIS_PAR_SET_SBTATPOWERON,  //! <Type Comment="Defines if a SBT (safety brake test) is performed automatically, when the axis is powered on.&#13;&#10;When SBT feature is available and a SBT test should be performed the SBT test gets perfomed and the axis gets powered on afterwards. The SBT test is only triggered every LMCAXIS_PAR_SET_SBTATPOWERONTIMEOUT ms." Name="_LMCAXIS_SETPARAMETER.LMCAXIS_PAR_SET_SBTATPOWERON"/>
    LMCAXIS_PAR_SET_SBTATPOWERONTIMEOUT,  //! <Type Comment="The given time defines the time between two automatic SBT tests at power on. The internal value when not externally defined is set to halve of the timeout time defined in the safety configuration." Name="_LMCAXIS_SETPARAMETER.LMCAXIS_PAR_SET_SBTATPOWERONTIMEOUT"/>
    LMCAXIS_PAR_SET_SBTATPOWERONIGNORE,  //! <Type Comment="For the next time doing a power on of the axis no SBT is performed even, when a test should be done (or the last one failed).&#13;&#10;This can be used, if the machine is in a non-safe position and should be moved to a safe position although the SBT fails." Name="_LMCAXIS_SETPARAMETER.LMCAXIS_PAR_SET_SBTATPOWERONIGNORE"/>
    LMCAXIS_PAR_SET_SBTATPOWERONERRORREACTION,  //! <Type Comment="Parameter to define the error reaction in case of a failed SBT test (Error while SBT testing, HW Error while SBT testing)&#13;&#10;Value := 0 ... The axis will not be powered in case of an error - LMCAxis is in error state&#13;&#10;Value := 1 ... The axis will be powered in case of an error regardless - LMCAxis is proceeding with powering the axis" Name="_LMCAXIS_SETPARAMETER.LMCAXIS_PAR_SET_SBTATPOWERONERRORREACTION"/>
    LMCAXIS_PAR_SET_AUTOMATICSS2,  //! <Type Comment="Parameter to define if an automatic SS2 is performed or not. When the feature gets deactivated the application must handle the SS2 procedure by itself.&#13;&#10;0 ... deactivate automatic SS2&#13;&#10;1 ... activate automatic SS2" Name="_LMCAXIS_SETPARAMETER.LMCAXIS_PAR_SET_AUTOMATICSS2"/>
    LMCAXIS_PAR_SET_MASTERPOINTER,  //! <Type Comment="Internal use only!&#13;&#10;Parameter used to set the master pointer of the active coupling." Name="_LMCAXIS_SETPARAMETER.LMCAXIS_PAR_SET_MASTERPOINTER"/>
    LMCAXIS_PAR_SET_FOLLOWDRAGVELOCITY_LIMIT  //! <Type Comment="Parameter sets the velocity limit when follow drag mode is active. This parameter is used by library classes _LMCSpeedProfile and _LMCProfile." Name="_LMCAXIS_SETPARAMETER.LMCAXIS_PAR_SET_FOLLOWDRAGVELOCITY_LIMIT"/>
  )$UDINT;
  _LMCAXIS_SETPOSITION :  //! <Type Comment="Type of the position that should be set" Name="_LMCAXIS_SETPOSITION"/>
  (
    LMCAXIS_SET_ACTPOS_APPUNIT,  //! <Type Comment="Sets the external position (actual position value) to the specified position. &#13;&#10;This value is set based on &quot;Resolution&quot;, &quot;Modulo&quot; and the software limits. (New position = position * Resolution)" Name="_LMCAXIS_SETPOSITION.LMCAXIS_SET_ACTPOS_APPUNIT"/>
    LMCAXIS_SET_SETPOS_APPUNIT,  //! <Type Comment="Sets the internal position (set position value) to the given position. &#13;&#10;This value is set based on &quot;Resolution&quot; ,&quot;Modulo&quot; and the software limits. (New position = position * Resolution)&#13;&#10;" Name="_LMCAXIS_SETPOSITION.LMCAXIS_SET_SETPOS_APPUNIT"/>
    LMCAXIS_SET_ACTPOS_INTUNIT,  //! <Type Comment="Sets the external position (actual position value) to the specified position. &#13;&#10;This value is set based on &quot;Modulo&quot; and the software limits. (New position = position)" Name="_LMCAXIS_SETPOSITION.LMCAXIS_SET_ACTPOS_INTUNIT"/>
    LMCAXIS_SET_SETPOS_INTUNIT,  //! <Type Comment="Sets the internal position (set position value) to the given position. &#13;&#10;This value is set based on &quot;Modulo&quot; and the software limits. (New position = position)&#13;&#10;" Name="_LMCAXIS_SETPOSITION.LMCAXIS_SET_SETPOS_INTUNIT"/>
    LMCAXIS_SET_SETPOS_INTUNIT_SPEC,  //! <Type Comment="Sets the internal position (set position value) to the given position. &#13;&#10;This value is set based on &quot;Modulo&quot; and the software limits. &#13;&#10;With this variation, the MasterPosition is also reset. (New position = position)" Name="_LMCAXIS_SETPOSITION.LMCAXIS_SET_SETPOS_INTUNIT_SPEC"/>
    LMCAXIS_SET_ACTPOS_INTUNIT_WO_MOD,  //! <Type Comment="Sets the external position (actual position value) to the specified position.&#13;&#10;This value is set based on the software limits. (New position = position)&#13;&#10;Here, no difference is made regarding modulo axes." Name="_LMCAXIS_SETPOSITION.LMCAXIS_SET_ACTPOS_INTUNIT_WO_MOD"/>
    LMCAXIS_SET_SETPOS_INTUNIT_WO_MOD,  //! <Type Comment="Sets the internal position (set position value) to the given position. &#13;&#10;This value is set based on the software limits.(New position = position)&#13;&#10;Here, no difference is made regarding modulo axes." Name="_LMCAXIS_SETPOSITION.LMCAXIS_SET_SETPOS_INTUNIT_WO_MOD"/>
    LMCAXIS_SET_ACTPOS_INTUNIT_WO_MOD_SW,  //! <Type Comment="Sets the external position (actual position value) to the specified position (New position = position).&#13;&#10;Here, no difference is made regarding modulo axes and the software limits are not checked." Name="_LMCAXIS_SETPOSITION.LMCAXIS_SET_ACTPOS_INTUNIT_WO_MOD_SW"/>
    LMCAXIS_SET_SETPOS_INTUNIT_WO_MOD_SW,  //! <Type Comment="Sets the internal position (set position value) to the specified position (New position = position).&#13;&#10;Here, no difference is made regarding modulo axes and the software limits are not checked." Name="_LMCAXIS_SETPOSITION.LMCAXIS_SET_SETPOS_INTUNIT_WO_MOD_SW"/>
    LMCAXIS_SET_ACTPOS_APPUNIT_DEST,  //! <Type Comment="Sets the external position (actual position value) to the specified position. &#13;&#10;This value is set based on &quot;Resolution&quot;, &quot;Modulo&quot; and the software limits. (New position = position * Resolution)&#13;&#10;Sets also the destination to the specified position." Name="_LMCAXIS_SETPOSITION.LMCAXIS_SET_ACTPOS_APPUNIT_DEST"/>
    LMCAXIS_SET_SETPOS_APPUNIT_DEST,  //! <Type Comment="Sets the internal position (set position value) to the given position. &#13;&#10;This value is set based on &quot;Resolution&quot; ,&quot;Modulo&quot; and the software limits. (New position = position * Resolution)&#13;&#10;Sets also the destination to the specified position." Name="_LMCAXIS_SETPOSITION.LMCAXIS_SET_SETPOS_APPUNIT_DEST"/>
    LMCAXIS_SET_ACTPOS_APPUNIT_WO_MOD_SW,  //! <Type Comment="Sets the external position (actual position value) to the specified position. &#13;&#10;This value is set based on &quot;Resolution&quot; and &quot;Modulo&quot;.(New position = position * Resolution)&#13;&#10;Here, no difference is made regarding modulo axes and the software limits are not checked." Name="_LMCAXIS_SETPOSITION.LMCAXIS_SET_ACTPOS_APPUNIT_WO_MOD_SW"/>
    LMCAXIS_SET_SETPOS_APPUNIT_WO_MOD_SW  //! <Type Comment="Sets the internal position (set position value) to the specified position. &#13;&#10;This value is set based on &quot;Resolution&quot; and &quot;Modulo&quot;.(New position = position * Resolution)&#13;&#10;Here, no difference is made regarding modulo axes and the software limits are not checked." Name="_LMCAXIS_SETPOSITION.LMCAXIS_SET_SETPOS_APPUNIT_WO_MOD_SW"/>
  )$UDINT;
  _LMCAXIS_SETSERVER :  //! <Type Comment="Server-ID" Name="_LMCAXIS_SETSERVER"/>
  (
    LMCAXIS_SET_EXUNIT,  //! <Type Comment="Set new value for server ExUnit [Increments]" Name="_LMCAXIS_SETSERVER.LMCAXIS_SET_EXUNIT"/>
    LMCAXIS_SET_INTUNIT,  //! <Type Comment="Set new value for server IntUnit [Application units]" Name="_LMCAXIS_SETSERVER.LMCAXIS_SET_INTUNIT"/>
    LMCAXIS_SET_VMAX,  //! <Type Comment="Set new value for server VMax [Application units/s]" Name="_LMCAXIS_SETSERVER.LMCAXIS_SET_VMAX"/>
    LMCAXIS_SET_AMAX,  //! <Type Comment="Set new value for server AMax [Application units/s²]" Name="_LMCAXIS_SETSERVER.LMCAXIS_SET_AMAX"/>
    LMCAXIS_SET_SWMINPOS,  //! <Type Comment="Set new value for server SWMinPos [Application units]" Name="_LMCAXIS_SETSERVER.LMCAXIS_SET_SWMINPOS"/>
    LMCAXIS_SET_SWMAXPOS,  //! <Type Comment="Set new value for server SWMaxPos [Application units]" Name="_LMCAXIS_SETSERVER.LMCAXIS_SET_SWMAXPOS"/>
    LMCAXIS_SET_MODULO,  //! <Type Comment="Set new value for server Modulo [Application units]" Name="_LMCAXIS_SETSERVER.LMCAXIS_SET_MODULO"/>
    LMCAXIS_SET_T_JERK,  //! <Type Comment="Set new value for server Tjerk [ms]" Name="_LMCAXIS_SETSERVER.LMCAXIS_SET_T_JERK"/>
    LMCAXIS_SET_MOVETYPE,  //! <Type Comment="Set new value for server MoveType" Name="_LMCAXIS_SETSERVER.LMCAXIS_SET_MOVETYPE"/>
    LMCAXIS_SET_AEMERGENCY,  //! <Type Comment="Set new value for the server AEmergency [application units / sec²]" Name="_LMCAXIS_SETSERVER.LMCAXIS_SET_AEMERGENCY"/>
    LMCAXIS_SET_JMAX,  //! <Type Comment="Set a new value for server JMax [ApplicationUnits/sec²/ms]&#13;&#10;for MoveType = _JERK_PROFILE only." Name="_LMCAXIS_SETSERVER.LMCAXIS_SET_JMAX"/>
    LMCAXIS_SET_ERROR_CONFIG,  //! <Type Comment="Set user defined error configuration&#13;&#10;" Name="_LMCAXIS_SETSERVER.LMCAXIS_SET_ERROR_CONFIG"/>
    LMCAXIS_SET_ABS_ENCODER  //! <Type Comment="This parameter is used for the activation (AbsEncoder = 1) / deactivation (AbsEncoder = 0) of reading encoder-values from a motor" Name="_LMCAXIS_SETSERVER.LMCAXIS_SET_ABS_ENCODER"/>
  )$UDINT;
  _LMCAXIS_SETSWENDPOS :  //! <Type Comment="LMCAXIS_SET_SWMAX_APPUNIT&#13;&#10;New SW max end position = Position * Resolution&#13;&#10;This value is set based on Resolution and Modulo.&#13;&#10;&#13;&#10;LMCAXIS_SET_SWMIN_APPUNIT&#13;&#10;New SW min end position = Position * Resolution&#13;&#10;This value is set based on Resolution and Modulo.&#13;&#10;&#13;&#10;LMCAXIS_SET_SWMAX_INTUNIT&#13;&#10;New SW max end position = Position&#13;&#10;This value is set based on Modulo.&#13;&#10;&#13;&#10;LMCAXIS_SET_SWMIN_INTUNIT&#13;&#10;New SW min end position = Position &#13;&#10;This value is set based on Modulo.(new SW min end position = Position)&#13;&#10;&#13;&#10;LMCAXIS_SET_SWMAX_INTUNIT_WO_MOD&#13;&#10;New SW Max end position = Position. &#13;&#10;Here, no difference is made regarding modulo axes.&#13;&#10;&#13;&#10;LMCAXIS_SET_SWMIN_INTUNIT_WO_MOD&#13;&#10;New SW min end position = Position. &#13;&#10;Here, no difference is made regarding modulo axes." Name="_LMCAXIS_SETSWENDPOS"/>
  (
    LMCAXIS_SET_SWMAX_APPUNIT,  //! <Type Comment="New SW max end position = Position * Resolution&#13;&#10;This value is set based on Resolution and Modulo." Name="_LMCAXIS_SETSWENDPOS.LMCAXIS_SET_SWMAX_APPUNIT"/>
    LMCAXIS_SET_SWMIN_APPUNIT,  //! <Type Comment="New SW min end position = Position * Resolution&#13;&#10;This value is set based on Resolution and Modulo." Name="_LMCAXIS_SETSWENDPOS.LMCAXIS_SET_SWMIN_APPUNIT"/>
    LMCAXIS_SET_SWMAX_INTUNIT,  //! <Type Comment="New SW max end position = Position&#13;&#10;This value is set based on Modulo." Name="_LMCAXIS_SETSWENDPOS.LMCAXIS_SET_SWMAX_INTUNIT"/>
    LMCAXIS_SET_SWMIN_INTUNIT,  //! <Type Comment="New SW min end position = Position &#13;&#10;This value is set based on Modulo.(new SW min end position = Position)" Name="_LMCAXIS_SETSWENDPOS.LMCAXIS_SET_SWMIN_INTUNIT"/>
    LMCAXIS_SET_SWMAX_INTUNIT_WO_MOD,  //! <Type Comment="New SW Max end position = Position. &#13;&#10;Here, no difference is made regarding modulo axes." Name="_LMCAXIS_SETSWENDPOS.LMCAXIS_SET_SWMAX_INTUNIT_WO_MOD"/>
    LMCAXIS_SET_SWMIN_INTUNIT_WO_MOD  //! <Type Comment="New SW min end position = Position. &#13;&#10;Here, no difference is made regarding modulo axes." Name="_LMCAXIS_SETSWENDPOS.LMCAXIS_SET_SWMIN_INTUNIT_WO_MOD"/>
  )$UDINT;
  _LMCAXIS_STATUS : BDINT  //! <Type Comment="Status-Bits of the axis" Name="_LMCAXIS_STATUS"/>
  [
    1 PowerOn,  //! <Type Comment="Set if axis is activated" Name="_LMCAXIS_STATUS.PowerOn"/>
    2 IsReferenced,  //! <Type Comment="Set if axis is referenced" Name="_LMCAXIS_STATUS.IsReferenced"/>
    3 InPosition,  //! <Type Comment="Set if axis is in correct position" Name="_LMCAXIS_STATUS.InPosition"/>
    4 FiltRdy,  //! <Type Comment="Set if axis is in correct position an the jerkfilter is ready" Name="_LMCAXIS_STATUS.FiltRdy"/>
    5 Decell,  //! <Type Comment="Set if axis is braking" Name="_LMCAXIS_STATUS.Decell"/>
    6 PosLimActive,  //! <Type Comment="Set if axis has reached one of its endpositions" Name="_LMCAXIS_STATUS.PosLimActive"/>
    7 SetFlg,  //! <Type Comment="Set by calling one of the functions: SetPosition or ReferenceAxis&#13;&#10;Reset if the axis is activated" Name="_LMCAXIS_STATUS.SetFlg"/>
    8 EnLesFlg,  //! <Type Comment="Set if the axis moves endless / infinitely" Name="_LMCAXIS_STATUS.EnLesFlg"/>
    9 DirFlg,  //! <Type Comment="Set if the axis moves in negative direction - speed is negative" Name="_LMCAXIS_STATUS.DirFlg"/>
    10 EmergStop,  //! <Type Comment="Set if the axis stops because an error occured or the axis is deactivated" Name="_LMCAXIS_STATUS.EmergStop"/>
    11 Overflow,  //! <Type Comment="Set if a position-overflow occured" Name="_LMCAXIS_STATUS.Overflow"/>
    12 MasterLock,  //! <Type Comment="Set if the slave-axis is coupled onto a master-axis" Name="_LMCAXIS_STATUS.MasterLock"/>
    13 DirLock,  //! <Type Comment="the direction is locked&#13;&#10;(because of HWMin, HWMax&#13;&#10; or by PowerOnMode)" Name="_LMCAXIS_STATUS.DirLock"/>
    14 DynSwLimit,
    15 ActDirFlg,  //! <Type Comment="Set if the speed of the axis is negative" Name="_LMCAXIS_STATUS.ActDirFlg"/>
    16 HandFlg,  //! <Type Comment="Set if one of the functions: PowerOff or MoveHand is called" Name="_LMCAXIS_STATUS.HandFlg"/>
    17 ModuloFlg,  //! <Type Comment="Set if the axis is defined as a modulo-axis" Name="_LMCAXIS_STATUS.ModuloFlg"/>
    18 NCMotion,  //! <Type Comment="Set if the axis is in NC postion mode: &quot;_NCPositioning&quot;" Name="_LMCAXIS_STATUS.NCMotion"/>
    19 NoActPosMeth,  //! <Type Comment="Set if axis is in &quot;SimulateMode&quot; of the client &quot;ActPosition&quot; is not connected" Name="_LMCAXIS_STATUS.NoActPosMeth"/>
    20 NoControlMeth,  //! <Type Comment="Set if axis is in &quot;SimulateMode&quot; of the client &quot;LMCController&quot; is not connected" Name="_LMCAXIS_STATUS.NoControlMeth"/>
    21 NoRefMeth,  //! <Type Comment="Set if the client &quot;LMCReference&quot; is not connected or&#13;&#10;the function &quot;CheckConnection&quot; returns &quot;FALSE&quot; or&#13;&#10;the client &quot;ActPosition&quot; is not connected" Name="_LMCAXIS_STATUS.NoRefMeth"/>
    22 NoActPosChk,  //! <Type Comment="Set if the client LMCSafety is connected and the function &quot;ChkHWReadyConnect&quot; returns &quot;FALSE&quot; or&#13;&#10;the client LMCSafety is not connected or&#13;&#10;the SimulateMode is active" Name="_LMCAXIS_STATUS.NoActPosChk"/>
    23 NoPreRtWork,  //! <Type Comment="Set if the client &quot;LMCPreRtWorkTrigger&quot; is not connected" Name="_LMCAXIS_STATUS.NoPreRtWork"/>
    24 NoPostRtWork,  //! <Type Comment="Set if the client &quot;LMCPostRtWorkTrigger&quot; is not connected" Name="_LMCAXIS_STATUS.NoPostRtWork"/>
    25 DelayedMasterLock,  //! <Type Comment="Mode 1: Set if the slave-axis is coupled onto a master-axis and reset when the MasterLock is 0 a configurableamount of cycles&#13;&#10;Mode 2: Set if the the position and velocity is in a window within the master." Name="_LMCAXIS_STATUS.DelayedMasterLock"/>
    26 Standstill,  //! <Type Comment="Set if axis is not moving." Name="_LMCAXIS_STATUS.Standstill"/>
    27 BrakeForPowerOff,  //! <Type Comment="Set, if the axis is currently stoping for power off." Name="_LMCAXIS_STATUS.BrakeForPowerOff"/>
    28 MasterError,  //! <Type Comment="Set, if some error of the master axis occured." Name="_LMCAXIS_STATUS.MasterError"/>
    29 SlaveError,  //! <Type Comment="Set, if some error of a coupled slave axis occured." Name="_LMCAXIS_STATUS.SlaveError"/>
    30 ReadyToPowerOn,  //! <Type Comment="Set, if the axis is ready to poweron&#13;&#10; =&gt; HWReady is okay&#13;&#10; =&gt; _DriveAxis.StateWord.SwitchedOn is 1" Name="_LMCAXIS_STATUS.ReadyToPowerOn"/>
  ];
  _LMCAXIS_TUNE_MODE :  //! <Type Comment="Parameter of the function: &quot;TuneAxis&quot;&#13;&#10;Movement for the purpose of optimization of the control parameters" Name="_LMCAXIS_TUNE_MODE"/>
  (
    LMCAXIS_TUNE_POSITON_IN_NEGATIVE_DIRECTION:=4294967294,  //! <Type Comment="Parameter of the function &quot;TuneAxis&quot;:&#13;&#10;Relative movement in negative direction" Name="_LMCAXIS_TUNE_MODE.LMCAXIS_TUNE_POSITON_IN_NEGATIVE_DIRECTION"/>
    LMCAXIS_TUNE_ZERO_TO_NEGATIVE_POSITION:=4294967295,  //! <Type Comment="Parameter of the function &quot;TuneAxis&quot;:&#13;&#10;Movement in negative direction between position-input and zero-position" Name="_LMCAXIS_TUNE_MODE.LMCAXIS_TUNE_ZERO_TO_NEGATIVE_POSITION"/>
    LMCAXIS_TUNE_ACTPOSITION_POSITION,  //! <Type Comment="Parameter of the function &quot;TuneAxis&quot;:&#13;&#10;Movement between the current position and the position added to the current one" Name="_LMCAXIS_TUNE_MODE.LMCAXIS_TUNE_ACTPOSITION_POSITION"/>
    LMCAXIS_TUNE_ZERO_TO_POSITIVE_POSITION,  //! <Type Comment="Parameter of the function &quot;TuneAxis&quot;:&#13;&#10;Movement in positive direction between position-input and zero-position" Name="_LMCAXIS_TUNE_MODE.LMCAXIS_TUNE_ZERO_TO_POSITIVE_POSITION"/>
    LMCAXIS_TUNE_POSITON_IN_POSITIVE_DIRECTION  //! <Type Comment="Parameter of the function &quot;TuneAxis&quot;:&#13;&#10;Relative movement in positiv direction" Name="_LMCAXIS_TUNE_MODE.LMCAXIS_TUNE_POSITON_IN_POSITIVE_DIRECTION"/>
  )$DINT;
  _LMCCONTROLLERTYPE :
  (
    _LMCNOCONTROLLER,  //! <Type Comment="no controller" Name="_LMCCONTROLLERTYPE._LMCNOCONTROLLER"/>
    _LMCUSERCONTROLLER,  //! <Type Comment="user defined controller" Name="_LMCCONTROLLERTYPE._LMCUSERCONTROLLER"/>
    _LMCDUMMYCONTROLLER,  //! <Type Comment="DummyController" Name="_LMCCONTROLLERTYPE._LMCDUMMYCONTROLLER"/>
    _LMCHYDROCONTROLLER,  //! <Type Comment="HydroController" Name="_LMCCONTROLLERTYPE._LMCHYDROCONTROLLER"/>
    _LMCKV_CONTROLLER,  //! <Type Comment="KV_Controller" Name="_LMCCONTROLLERTYPE._LMCKV_CONTROLLER"/>
    _LMCNCCONTROLLER,  //! <Type Comment="NCController" Name="_LMCCONTROLLERTYPE._LMCNCCONTROLLER"/>
    _LMCPOSCONTROLLER,  //! <Type Comment="PosController" Name="_LMCCONTROLLERTYPE._LMCPOSCONTROLLER"/>
    _LMCDRIVEPOSONTROL,  //! <Type Comment="DrivePosController" Name="_LMCCONTROLLERTYPE._LMCDRIVEPOSONTROL"/>
    _LMCSTEPPERCONTROL:=8,  //! <Type Comment="StepperControl" Name="_LMCCONTROLLERTYPE._LMCSTEPPERCONTROL"/>
    _LMCVFDCONTROL:=9,  //! <Type Comment="VFDControl" Name="_LMCCONTROLLERTYPE._LMCVFDCONTROL"/>
    _LMCDRIVEPOSCONTROLSAFETY,  //! <Type Comment="DrivePosControlSafety" Name="_LMCCONTROLLERTYPE._LMCDRIVEPOSCONTROLSAFETY"/>
    _LMCSTEPPERCONTROLST152,  //! <Type Comment="Stepper control supporting new inst communication" Name="_LMCCONTROLLERTYPE._LMCSTEPPERCONTROLST152"/>
    _LMCUSERCONTROLLER_NEW:=101,
    _LMCKV_CONTROLLER_NEW:=104,  //! <Type Comment="_LMCKVController" Name="_LMCCONTROLLERTYPE._LMCKV_CONTROLLER_NEW"/>
    _LMCPOSCONTROLLER_NEW:=106,  //! <Type Comment="_LMCPosController" Name="_LMCCONTROLLERTYPE._LMCPOSCONTROLLER_NEW"/>
    _LMCSIGMATEKCONTROLLER:=107,  //! <Type Comment="_LMCSigController" Name="_LMCCONTROLLERTYPE._LMCSIGMATEKCONTROLLER"/>
    _LMCCALCMODEL_CONTROLLER  //! <Type Comment="_LMCVirtualPosController" Name="_LMCCONTROLLERTYPE._LMCCALCMODEL_CONTROLLER"/>
  )$UDINT;
  _POSFLAGS : BDINT
  [
    1 SetSFF,  //! <Type Comment="0 .. the set velocity isn&apos;t written to the drive axis object (SFF)&#13;&#10;1 .. default :the set velocity is written to the drive axis object (SFF)" Name="_POSFLAGS.SetSFF"/>
    2 XWCalcInt,  //! <Type Comment="0 .. default : the contouring error is read directly from the drive axis object&#13;&#10;1 .. the contouring error is calculated in the DrivePosControl object&#13;&#10;" Name="_POSFLAGS.XWCalcInt"/>
    3 WaitPowerOff,  //! <Type Comment="0 ... do not wait for the OperationEnabled-Bit of the controlword&#13;&#10;1 .. default: wait for the OperationEnabled-Bit while poweroff" Name="_POSFLAGS.WaitPowerOff"/>
  ];
  _SDDAXISSTATE : BDINT
  [
    1 NoHW,
    2 NoParameter,
    3 NotOnline,
    4 NotInitialized,
    5 SFFLimitationActive,
    6 DiagModeActive,
  ];
  _SDDUSERCMD :  //! <Type Comment="Type for user commands to the drive. See Server &apos;SDDCmdIntfc&apos; of the &apos;_DriveAxis&apos; class." Name="_SDDUSERCMD"/>
  (
    _SDDIDLE,  //! <Type Comment="default command" Name="_SDDUSERCMD._SDDIDLE"/>
    _SDDREADALL,  //! <Type Comment="read all parameters of the drive &#13;&#10;  and save the parameters in the SRAM or in the file.&#13;&#10;  If any parameter classes are connected to the class SDDMngBase,&#13;&#10;  the servers of the parameter classes are refreshed." Name="_SDDUSERCMD._SDDREADALL"/>
    _SDDINIT,  //! <Type Comment="Initialize the drive with the saved parameters." Name="_SDDUSERCMD._SDDINIT"/>
    _SDDURINIT,  //! <Type Comment="Initialize the drive with the parameters of the table.&#13;&#10;  (Lasal2 table, User Table or default table)" Name="_SDDUSERCMD._SDDURINIT"/>
    _SDDEXDATA,  //! <Type Comment="Export the actual drive parameter into an excel formatted file." Name="_SDDUSERCMD._SDDEXDATA"/>
    _SDDEXDATAXML:=6,  //! <Type Comment="Export the actual drive parameter into an xml formatted file." Name="_SDDUSERCMD._SDDEXDATAXML"/>
    _SDDIMDATAXML,  //! <Type Comment="Imports the drive parameter from an xml formatted file. User commands &quot;_SDDINIT&quot; must be called to transfer the data to the drive." Name="_SDDUSERCMD._SDDIMDATAXML"/>
    _SDDERROR,  //! <Type Comment="This value is shown, when the user commands &quot;_SDDEXDATAXML&quot;, &quot;_SDDIMDATAXML&quot;  or &quot;_SDDEXLOGFILE&quot; failed. See Log-File for details. New user commands can be set in this state." Name="_SDDUSERCMD._SDDERROR"/>
    _SDDEXLOGFILE  //! <Type Comment="Reads the Log File from the drive and writes it to the CPU under: &quot;C:\sysmsg\DriveLog&lt;Serial No&gt;.txt&quot;" Name="_SDDUSERCMD._SDDEXLOGFILE"/>
  )$UDINT;
  CncFlags : BDINT
  [
    1 HwError,  //! <Type Comment="Hardware error Flag" Name="CncFlags.HwError"/>
    2 SwMin,  //! <Type Comment="Software endswitch minimum active" Name="CncFlags.SwMin"/>
    3 SwMax,  //! <Type Comment="Software endswitch maximum active" Name="CncFlags.SwMax"/>
    4 v_error,  //! <Type Comment="velocity setting error" Name="CncFlags.v_error"/>
    5 a_error,  //! <Type Comment="Acceleration / deceleration setting error" Name="CncFlags.a_error"/>
    6 ContrOff,  //! <Type Comment="position controller off" Name="CncFlags.ContrOff"/>
    7 NoRef,  //! <Type Comment="no position reference" Name="CncFlags.NoRef"/>
    8 DragLim,  //! <Type Comment="contouring error" Name="CncFlags.DragLim"/>
    9 ComandErr,  //! <Type Comment="Command is not exepted" Name="CncFlags.ComandErr"/>
    10 ActPosError,  //! <Type Comment="invalid position of the hardware" Name="CncFlags.ActPosError"/>
    11 IsNotControlling,  //! <Type Comment="wake and shake is active" Name="CncFlags.IsNotControlling"/>
    12 Follow,
    13 OverFlowError,
    16 GlobErr,  //! <Type Comment="Any other errors is active" Name="CncFlags.GlobErr"/>
  ];
#pragma pack(push, 1)
  CNCInternalStruct : STRUCT
    ptrExt : ^DINT;
    ptrInt : ^DINT;
    ptrBinOffset : ^DINT;
    NowOverflow : DINT;
    OverflowDelta : DINT;
    SetPos : DINT;
    pExtIntRatio : ^LREAL;
  END_STRUCT;
#pragma pack(pop)
  CntrFlgs : BDINT
  [
    1 InPosition,  //! <Type Comment="Axis is in position" Name="CntrFlgs.InPosition"/>
    2 FiltRdy,  //! <Type Comment="Axis is in position and jerk filter is ready" Name="CntrFlgs.FiltRdy"/>
    3 PosLimActive,  //! <Type Comment="Position limit is active, set position is over the SW end position" Name="CntrFlgs.PosLimActive"/>
    4 Decell,  //! <Type Comment="Deceleration is active" Name="CntrFlgs.Decell"/>
    5 bDynSWLimit,  //! <Type Comment="Set if axis has reached one of its dynamic SW endpositions" Name="CntrFlgs.bDynSWLimit"/>
    7 SetFlg,  //! <Type Comment="Set by calling the SetPositon, CNCRefRun and NCRefRun functions Reset after activating the controller." Name="CntrFlgs.SetFlg"/>
    10 EnLesFlg,  //! <Type Comment="Endless positioning is active" Name="CntrFlgs.EnLesFlg"/>
    11 DirFlg,  //! <Type Comment="Commanded axis direction (0 -&gt; positive, 1 -&gt; negative)" Name="CntrFlgs.DirFlg"/>
    12 ActDirFlg,  //! <Type Comment="Actual axis direction (0 -&gt; positive, 1 -&gt; negative)" Name="CntrFlgs.ActDirFlg"/>
    13 EmergStop,  //! <Type Comment="Emergency stop is active" Name="CntrFlgs.EmergStop"/>
    14 AutoRun,  //! <Type Comment="Controller output autotuning is running" Name="CntrFlgs.AutoRun"/>
    15 AutoStop,  //! <Type Comment="Controller output autotuning is ready" Name="CntrFlgs.AutoStop"/>
    16 Test,  //! <Type Comment="Is only queried when ControllerOn is set to 0." Name="CntrFlgs.Test"/>
    17 NoActpos,  //! <Type Comment="The Client &quot;iActPosition&quot; is not connected" Name="CntrFlgs.NoActpos"/>
    18 Overflow,  //! <Type Comment="The axis has an internal position overflow." Name="CntrFlgs.Overflow"/>
    19 NoControl,  //! <Type Comment="The axis is not connected to a controller and the CNC therefore operates as a profile generator only." Name="CntrFlgs.NoControl"/>
    20 ModuloFlg,  //! <Type Comment="The axis is defined as a modulo axis." Name="CntrFlgs.ModuloFlg"/>
    21 NoActPosMeth,  //! <Type Comment="The &quot;iActPosition&quot; client is not connected to a server (axis operates without posi-tion feedback)." Name="CntrFlgs.NoActPosMeth"/>
    22 NoRefMeth,  //! <Type Comment="The &quot;iRefChannal&quot; is not connected" Name="CntrFlgs.NoRefMeth"/>
    23 NoControlMeth,  //! <Type Comment="The &quot;oSignalchannal&quot; client is not connected" Name="CntrFlgs.NoControlMeth"/>
    24 NoSpecial,  //! <Type Comment="The &quot;oPrecyclictrigger&quot; client is not connected" Name="CntrFlgs.NoSpecial"/>
    25 NCMotion,  //! <Type Comment="The CNC class is operated in NC mode" Name="CntrFlgs.NCMotion"/>
    26 NoActPosChk,
  ];
  DS402_Control : BDINT
  [
    1 SwitchOn,
    2 EnableVoltage,
    3 QuickStop,
    4 EnableOperation,
    5 OperationModeSpec1,
    6 OperationModeSpec2,
    7 OperationModeSpec3,
    8 ResetFault,
    9 Halt,
    10 Reserved1,
    11 Reserved2,
    12 ManufactureSpec1,
    13 ManufactureSpec2,
    14 ManufactureSpec3,
    15 ManufactureSpec4,
    16 ManufactureSpec5,
  ];
  DS402_State : BDINT
  [
    1 ReadyToSwitchOn,
    2 SwitchedOn,
    3 OperationEnabled,
    4 Fault,
    5 VoltageEnabled,
    6 QuickStop,
    7 SwitchOnDisabled,
    8 Warning,
    9 ManufactureSpec1,
    10 Remote,
    11 TargetReached,
    12 InternalLimitActive,
    13 OperationModeSpec1,
    14 OperationModeSpec2,
    15 ManufactureSpec2,
    16 ManufactureSpec3,
  ];
  FeSetup : BDINT
  [
    1 Valid,  //! <Type Comment="must be 1 to Start FileEx work" Name="FeSetup.Valid"/>
    2 FileorRam,  //! <Type Comment="0= work in File 1= Work File" Name="FeSetup.FileorRam"/>
    3 EnableChecksum,  //! <Type Comment="0=no Checksum; 1=Calculate Checksum, increased write access on the CF card" Name="FeSetup.EnableChecksum"/>
    4 Encrypt,  //! <Type Comment="0=no encryption; 1=encrypt file, increased write access on the CF card" Name="FeSetup.Encrypt"/>
  ];
  IO_FLAG : BINT  //! <Type Comment="Status Flag für IO Daten" Name="IO_FLAG"/>
  [
    1 WrongHW,  //! <Type Comment="Falsche Hardware verbunden" Name="IO_FLAG.WrongHW"/>
    2 NoHW,  //! <Type Comment="Keine Hardware verbunden" Name="IO_FLAG.NoHW"/>
    3 NoCalibration,  //! <Type Comment="Keine Kalibrierungsdaten im Modul-EEPROM" Name="IO_FLAG.NoCalibration"/>
    4 ParaChkWrong,  //! <Type Comment="Die Parameter-Checksumme ist falsch" Name="IO_FLAG.ParaChkWrong"/>
    5 PhysicHiLimit,  //! <Type Comment="IO ist am oberen physikalischen Limit" Name="IO_FLAG.PhysicHiLimit"/>
    6 PhysicLoLimit,  //! <Type Comment="IO ist am unteren physikalischen Limit" Name="IO_FLAG.PhysicLoLimit"/>
    7 Invert,  //! <Type Comment="Daten sind invertiert" Name="IO_FLAG.Invert"/>
    14 OnDummyMode,  //! <Type Comment="1 = Objekt ist im Dummymodus (nicht refreshed)" Name="IO_FLAG.OnDummyMode"/>
    15 NotConnected,  //! <Type Comment="1 = Objekt ist nicht verbunden" Name="IO_FLAG.NotConnected"/>
    16 PhysicAccessOff,  //! <Type Comment="1 = kein physikalischer Zugriff erlaubt" Name="IO_FLAG.PhysicAccessOff"/>
  ];
#pragma pack(push, 1)
  IO_State : STRUCT
    uiIO_Flags : IO_FLAG;
    uiChNo : UINT;
  END_STRUCT;
#pragma pack(pop)
  MasterStruct : STRUCT  //! <Type Comment="Pointers to the master axis data" Name="MasterStruct"/>
    pos : ^DINT;  //! <Type Comment="Pointer to the master axis position [internal units]" Name="MasterStruct.pos"/>
    Speed : ^DINT;  //! <Type Comment="Pointer to the master axis speed [internal units / tick]" Name="MasterStruct.Speed"/>
    ModuloMaster : ^DINT;  //! <Type Comment="Pointer to ModuloInt of master axis [internal units]" Name="MasterStruct.ModuloMaster"/>
    PosLREAL : pVoid;  //! <Type Comment="pointer to a LREAL value cointainig the master position [internal units]&#13;&#10;(this pointer is set and used only by _LMCAxis objects with MoveType=_JERK_PROFILE)" Name="MasterStruct.PosLREAL"/>
    SpeedLREAL : pVoid;  //! <Type Comment="pointer to a LREAL value cointainig the master speed [internal units /tick]&#13;&#10;(this pointer is set and used only by _LMCAxis objects with MoveType=_JERK_PROFILE)" Name="MasterStruct.SpeedLREAL"/>
    pMasterThis : pVoid;  //! <Type Comment="pointer to the _LMCAxis master object" Name="MasterStruct.pMasterThis"/>
  END_STRUCT;
  pHwBase : ^HwBase;
  pHwBaseCDIAS : ^HwBaseCDIAS;
  ProfileCommandStatus :
  (
    PassiveProfile,  //! <Type Comment="Axis are unlocked in passive mode" Name="ProfileCommandStatus.PassiveProfile"/>
    IdleProfile,  //! <Type Comment="Axis are locked in idle mode - no motion sequences are available" Name="ProfileCommandStatus.IdleProfile"/>
    RunProfile,  //! <Type Comment="Axes are in motion to generate a profile" Name="ProfileCommandStatus.RunProfile"/>
    EndProfile,  //! <Type Comment="The generated profile is finished now" Name="ProfileCommandStatus.EndProfile"/>
    ErrorProfile,  //! <Type Comment="An error occured" Name="ProfileCommandStatus.ErrorProfile"/>
    IdleProfileRestart,  //! <Type Comment="waiting for end of restart" Name="ProfileCommandStatus.IdleProfileRestart"/>
    WaitProfileRestart,  //! <Type Comment="waiting for end of delay time after calling ContinueNCProg()" Name="ProfileCommandStatus.WaitProfileRestart"/>
    WaitProfileForAxInPos  //! <Type Comment="profile is waiting for the actual axes position to be in position at an exact stop" Name="ProfileCommandStatus.WaitProfileForAxInPos"/>
  )$UDINT;
  SafetyConfigStateType :
  (
    _ModuleNotFound,
    _SafetyClassOK,
    _ReinitConfig,
    _UnsafeVarNotFound,
    _ModFromCfgNotFound,
    _MemAllocFailed,
    _ReadFWVerFailed,
    _UnknownCfgError,
    _WaitForSynchronicity,
    _AsyncComError:=9,
    _DOsIncreasedRestartApp:=10,
    _LostPowerSupply:=11,
    _WrongSafetyHW:=12
  )$UDINT;
#pragma pack(push, 1)
  SafetyDiagInfo : STRUCT
    uControllerID : USINT;  //! <Type Comment="ID of µController (0 = µC1, else µC2)" Name="SafetyDiagInfo.uControllerID"/>
    ActErrorCode : USINT;  //! <Type Comment="actual error code" Name="SafetyDiagInfo.ActErrorCode"/>
    FirstErrorCode : USINT;  //! <Type Comment="code of first error that lead to an error state" Name="SafetyDiagInfo.FirstErrorCode"/>
    ReasonCode0 : UDINT;  //! <Type Comment="reason for error (meaning depends on actual error code)" Name="SafetyDiagInfo.ReasonCode0"/>
    ReasonCode1 : UDINT;  //! <Type Comment="reason for error (meaning depends on actual error code)" Name="SafetyDiagInfo.ReasonCode1"/>
  END_STRUCT;
#pragma pack(pop)
#pragma pack(push, 1)
  SafetyDiagState : STRUCT
    RunState : USINT;  //! <Type Comment=" 1..POST&#13;&#10; 2..SERVICE&#13;&#10; 4..ERROR&#13;&#10; 8..IDLE&#13;&#10;16..CHK_CFG&#13;&#10;32..OP_TEMP&#13;&#10;64..OP" Name="SafetyDiagState.RunState"/>
    ConfigState : USINT;  //! <Type Comment=" 1..INVALID&#13;&#10; 2..NOT_CONFIGURED&#13;&#10; 4..CONFIGURED_NOT_DEPLOYED_NOT_VERIFIED&#13;&#10; 8..CONFIGURED_AND_VERIFIED&#13;&#10;16..CONFIGURED_DEPLOYED_NOT_VERIFIED&#13;&#10;36..CONFIGURED_NOT_DEPLOYED_NOT_VERIFIED_DEV&#13;&#10;48..CONFIGURED_DEPLOYED_NOT_VERIFIED_DEV" Name="SafetyDiagState.ConfigState"/>
    LoginLevel : USINT;  //! <Type Comment="0..not logged in&#13;&#10;1..debug&#13;&#10;2..configuration&#13;&#10;3..general" Name="SafetyDiagState.LoginLevel"/>
    ErrorCounterIOState : UINT;  //! <Type Comment="Is increased on change of the error state of any input or output" Name="SafetyDiagState.ErrorCounterIOState"/>
  END_STRUCT;
#pragma pack(pop)
  t_e_VaranErrors :
  (
    _ClassOk,
    _NotInitialized,  //! <Type Comment="for Varan hardwareclasses" Name="t_e_VaranErrors._NotInitialized"/>
    _CallBackError,  //! <Type Comment="for Varan hardwareclasses" Name="t_e_VaranErrors._CallBackError"/>
    _RequiredError,  //! <Type Comment="for Varan hardwareclasses" Name="t_e_VaranErrors._RequiredError"/>
    _RootError,  //! <Type Comment="for Varan hardwareclasses" Name="t_e_VaranErrors._RootError"/>
    _NoHardware,  //! <Type Comment="for Varan hardwareclasses" Name="t_e_VaranErrors._NoHardware"/>
    _WrongHardware,  //! <Type Comment="for Varan hardwareclasses" Name="t_e_VaranErrors._WrongHardware"/>
    _CreateDOFailed,  //! <Type Comment="for Varan hardwareclasses" Name="t_e_VaranErrors._CreateDOFailed"/>
    _DirectAccessFailed,  //! <Type Comment="for Varan hardwareclasses" Name="t_e_VaranErrors._DirectAccessFailed"/>
    _PllError,  //! <Type Comment="for Varan hardwareclasses" Name="t_e_VaranErrors._PllError"/>
    _TimeoutInInit,  //! <Type Comment="for Varan hardwareclasses" Name="t_e_VaranErrors._TimeoutInInit"/>
    _HardwareRequiredIRQ,  //! <Type Comment="for Varan hardwareclasses" Name="t_e_VaranErrors._HardwareRequiredIRQ"/>
    _HardwareNotRequiredIRQ,  //! <Type Comment="for Varan hardwareclasses" Name="t_e_VaranErrors._HardwareNotRequiredIRQ"/>
    _HardwareFatalErrorIRQ,  //! <Type Comment="for Varan hardwareclasses" Name="t_e_VaranErrors._HardwareFatalErrorIRQ"/>
    _ManagerError,  //! <Type Comment="for Varan hardwareclasses" Name="t_e_VaranErrors._ManagerError"/>
    _DisableError,  //! <Type Comment="for Varan hardwareclasses" Name="t_e_VaranErrors._DisableError"/>
    _EnableError,  //! <Type Comment="for Varan hardwareclasses" Name="t_e_VaranErrors._EnableError"/>
    _MultipleError,  //! <Type Comment="for Varan hardwareclasses" Name="t_e_VaranErrors._MultipleError"/>
    _SPIError,  //! <Type Comment="for Varan hardwareclasses" Name="t_e_VaranErrors._SPIError"/>
    _ErrorBootImageFPGA,  //! <Type Comment="for Varan hardwareclasses" Name="t_e_VaranErrors._ErrorBootImageFPGA"/>
    _NoCDIASInterface,  //! <Type Comment="for CIV class" Name="t_e_VaranErrors._NoCDIASInterface"/>
    _EEPromError,  //! <Type Comment="for CIV class" Name="t_e_VaranErrors._EEPromError"/>
    _NoVaranInterface,  //! <Type Comment="for VaranMaster" Name="t_e_VaranErrors._NoVaranInterface"/>
    _MemoryFault,  //! <Type Comment="for VaranMaster" Name="t_e_VaranErrors._MemoryFault"/>
    _TimesliceError,  //! <Type Comment="for VaranMaster" Name="t_e_VaranErrors._TimesliceError"/>
    _TimesliceErrorIRQ,  //! <Type Comment="for VaranMaster" Name="t_e_VaranErrors._TimesliceErrorIRQ"/>
    _WatchdogError,  //! <Type Comment="for VaranMaster" Name="t_e_VaranErrors._WatchdogError"/>
    _VaranTimeError,  //! <Type Comment="for HwControl class" Name="t_e_VaranErrors._VaranTimeError"/>
    _DiasTimeError,  //! <Type Comment="for HwControl class" Name="t_e_VaranErrors._DiasTimeError"/>
    _DORamFull,  //! <Type Comment="from VaranManager" Name="t_e_VaranErrors._DORamFull"/>
    _PortNoLink,  //! <Type Comment="from VaranManager" Name="t_e_VaranErrors._PortNoLink"/>
    _VaranDriverNotExists,  //! <Type Comment="from VaranManager" Name="t_e_VaranErrors._VaranDriverNotExists"/>
    _WrongDOLType,  //! <Type Comment="from VaranManager" Name="t_e_VaranErrors._WrongDOLType"/>
    _WrongRunStatus,  //! <Type Comment="from VaranManager" Name="t_e_VaranErrors._WrongRunStatus"/>
    _DOHandleInvalid,  //! <Type Comment="from VaranManager" Name="t_e_VaranErrors._DOHandleInvalid"/>
    _DOCmdInvalid,  //! <Type Comment="from VaranManager" Name="t_e_VaranErrors._DOCmdInvalid"/>
    _ManagerNotExists,  //! <Type Comment="from VaranManager" Name="t_e_VaranErrors._ManagerNotExists"/>
    _DOLAddressInvalid,  //! <Type Comment="from VaranManager" Name="t_e_VaranErrors._DOLAddressInvalid"/>
    _UnknownCommand,  //! <Type Comment="from VaranManager" Name="t_e_VaranErrors._UnknownCommand"/>
    _ComponentNotExists,  //! <Type Comment="from VaranManager" Name="t_e_VaranErrors._ComponentNotExists"/>
    _ClientNotExists,  //! <Type Comment="from VaranManager" Name="t_e_VaranErrors._ClientNotExists"/>
    _CdiasEEPromNotExists,  //! <Type Comment="from VaranManager" Name="t_e_VaranErrors._CdiasEEPromNotExists"/>
    _CdiasEEPromNoGrant,  //! <Type Comment="from VaranManager" Name="t_e_VaranErrors._CdiasEEPromNoGrant"/>
    _CdiasEEPromNack,  //! <Type Comment="from VaranManager" Name="t_e_VaranErrors._CdiasEEPromNack"/>
    _PortNotExists,  //! <Type Comment="from VaranManager" Name="t_e_VaranErrors._PortNotExists"/>
    _PortIsUplink,  //! <Type Comment="from VaranManager" Name="t_e_VaranErrors._PortIsUplink"/>
    _NoMutex,  //! <Type Comment="from VaranManager" Name="t_e_VaranErrors._NoMutex"/>
    _NoTask,  //! <Type Comment="from VaranManager" Name="t_e_VaranErrors._NoTask"/>
    _IDNotFound,  //! <Type Comment="from VaranManager" Name="t_e_VaranErrors._IDNotFound"/>
    _IDNotInitialized,  //! <Type Comment="from VaranManager" Name="t_e_VaranErrors._IDNotInitialized"/>
    _InvalidDeviceAddress,  //! <Type Comment="from VaranManager" Name="t_e_VaranErrors._InvalidDeviceAddress"/>
    _CallbackNotHandled,  //! <Type Comment="from VaranManager" Name="t_e_VaranErrors._CallbackNotHandled"/>
    _NoMem,  //! <Type Comment="from VaranManager" Name="t_e_VaranErrors._NoMem"/>
    _NoLegacyWd,  //! <Type Comment="from VaranManager" Name="t_e_VaranErrors._NoLegacyWd"/>
    _AdminDOLExecutionError,  //! <Type Comment="from VaranManager" Name="t_e_VaranErrors._AdminDOLExecutionError"/>
    _DADOLExecutionError,  //! <Type Comment="from VaranManager" Name="t_e_VaranErrors._DADOLExecutionError"/>
    _SPIFlashNoAccess,  //! <Type Comment="from VaranManager" Name="t_e_VaranErrors._SPIFlashNoAccess"/>
    _ClientNotready,  //! <Type Comment="from VaranManager" Name="t_e_VaranErrors._ClientNotready"/>
    _TimeoutVaran,  //! <Type Comment="from VaranManager" Name="t_e_VaranErrors._TimeoutVaran"/>
    _UnknownFault,  //! <Type Comment="from VaranManager" Name="t_e_VaranErrors._UnknownFault"/>
    _DiasError,  //! <Type Comment="for CIC/DIV with Dias" Name="t_e_VaranErrors._DiasError"/>
    _DeviceError,  //! <Type Comment="for Varan hardwareclasses" Name="t_e_VaranErrors._DeviceError"/>
    _VaranTimeWarning,
    _OnlyASYSupported,
    _InvalidSerialNo,
    _CDIASRequiredError,
    _DIASRequiredError,
    _NoCalibDataFound,
    _ModuleFoundButManagerIsOff:=68,
    _InvalidConfguration,
    _ClientDisabled,
    _ClientCantEnable,
    _CdiasAddressInvalid,
    _SPIFlashInvalid,
    _SPIDOLIDInvalid,
    _SPIDOLInvalid,
    _SPIRequiredListError,
    _SPIChksumError,
    _ParameterInvalid,
    _DOTypeNotSupported,
    _DMAError,
    _PropertyIDInvalid,
    _PropertyValueInvalid,
    _DONumberOverflow,
    _APIUsageNotAllowed,
    _NodeTypeWrong,
    _DataLengthInvalid,
    _DOTypeInvalid,
    _OperationNotAllowed,
    _NodeNumberOverflow,
    _NoHandleFound,
    _TopologyNotAllowed
  )$UDINT;
#pragma pack(push, 1)
  t_s_ModulInfo : STRUCT
    Kennung : HINT;
    p_This : ^void;
  END_STRUCT;
#pragma pack(pop)
END_TYPE
