MC_AxisParameter

This data type is used in conjunction with function blocks for reading and writing axis parameters.

TYPE MC_AxisParameter : (
(* PLCopen specific parameters *) (* Index-Group 0x4000 + ID*)
 CommandedPosition := 1,             (* lreal *) (* taken from NcToPlc *)
 SWLimitPos,                         (* lreal *) (* IndexOffset= 16#0001_000E *)
 SWLimitNeg,                         (* lreal *) (* IndexOffset= 16#0001_000D *)
 EnableLimitPos,                     (* bool  *) (* IndexOffset= 16#0001_000C *)
 EnableLimitNeg,                     (* bool  *) (* IndexOffset= 16#0001_000B *)
 EnablePosLagMonitoring,             (* bool  *) (* IndexOffset= 16#0002_0010 *)
 MaxPositionLag,                     (* lreal *) (* IndexOffset= 16#0002_0012 *)
 MaxVelocitySystem,                  (* lreal *) (* IndexOffset= 16#0000_0027 *)
 MaxVelocityAppl,                    (* lreal *) (* IndexOffset= 16#0000_0027 *)
 ActualVelocity,                     (* lreal *) (* taken from NcToPlc *)
 CommandedVelocity,                  (* lreal *) (* taken from NcToPlc *)
 MaxAccelerationSystem,              (* lreal *) (* IndexOffset= 16#0000_0101 *)
 MaxAccelerationAppl,                (* lreal *) (* IndexOffset= 16#0000_0101 *)
 MaxDecelerationSystem,              (* lreal *) (* IndexOffset= 16#0000_0102 *)
 MaxDecelerationAppl,                (* lreal *) (* IndexOffset= 16#0000_0102 *)
 MaxJerkSystem,                      (* lreal *) (* IndexOffset= 16#0000_0103 *)
 MaxJerkAppl,                        (* lreal *) (* IndexOffset= 16#0000_0103 *)

(* Beckhoff specific parameters *) (* Index-Group 0x4000 + ID*)
 AxisId := 1000,                     (* lreal *) (* IndexOffset= 16#0000_0001 *)
 AxisVeloManSlow,                    (* lreal *) (* IndexOffset= 16#0000_0008 *)
 AxisVeloManFast,                    (* lreal *) (* IndexOffset= 16#0000_0009 *)
 AxisVeloMax,                        (* lreal *) (* IndexOffset= 16#0000_0027 *)
 AxisAcc,                            (* lreal *) (* IndexOffset= 16#0000_0101 *)
 AxisDec,                            (* lreal *) (* IndexOffset= 16#0000_0102 *)
 AxisJerk,                           (* lreal *) (* IndexOffset= 16#0000_0103 *)
 MaxJerk,                            (* lreal *) (* IndexOffset= 16#0000_0103 *)
 AxisMaxVelocity,                    (* lreal *) (* IndexOffset= 16#0000_0027 *)
 AxisRapidTraverseVelocity,          (* lreal *) (* IndexOffset= 16#0000_000A *)
 AxisManualVelocityFast,             (* lreal *) (* IndexOffset= 16#0000_0009 *)
 AxisManualVelocitySlow,             (* lreal *) (* IndexOffset= 16#0000_0008 *)
 AxisCalibrationVelocityForward,     (* lreal *) (* IndexOffset= 16#0000_0006 *)
 AxisCalibrationVelocityBackward,    (* lreal *) (* IndexOffset= 16#0000_0007 *)
 AxisJogIncrementForward,            (* lreal *) (* IndexOffset= 16#0000_0018 *)
 AxisJogIncrementBackward,           (* lreal *) (* IndexOffset= 16#0000_0019 *)
 AxisEnMinSoftPosLimit,              (* bool  *) (* IndexOffset= 16#0001_000B *)
 AxisMinSoftPosLimit,                (* lreal *) (* IndexOffset= 16#0001_000D *)
 AxisEnMaxSoftPosLimit,              (* bool  *) (* IndexOffset= 16#0001_000C *)
 AxisMaxSoftPosLimit,                (* lreal *) (* IndexOffset= 16#0001_000E *)
 AxisEnPositionLagMonitoring,        (* bool  *) (* IndexOffset= 16#0002_0010 *)
 AxisMaxPosLagValue,                 (* lreal *) (* IndexOffset= 16#0002_0012 *)
 AxisMaxPosLagFilterTime,            (* lreal *) (* IndexOffset= 16#0002_0013 *)
 AxisEnPositionRangeMonitoring,      (* bool  *) (* IndexOffset= 16#0000_000F *)
 AxisPositionRangeWindow,            (* lreal *) (* IndexOffset= 16#0000_0010 *)
 AxisEnTargetPositionMonitoring,     (* bool  *) (* IndexOffset= 16#0000_0015 *)
 AxisTargetPositionWindow,           (* lreal *) (* IndexOffset= 16#0000_0016 *)
 AxisTargetPositionMonitoringTime,   (* lreal *) (* IndexOffset= 16#0000_0017 *)
 AxisEnInTargetTimeout,              (* bool  *) (* IndexOffset= 16#0000_0029 *)
 AxisInTargetTimeout,                (* lreal *) (* IndexOffset= 16#0000_002A *)
 AxisEnMotionMonitoring,             (* bool  *) (* IndexOffset= 16#0000_0011 *)
 AxisMotionMonitoringWindow,         (* lreal *) (* IndexOffset= 16#0000_0028 *)
 AxisMotionMonitoringTime,           (* lreal *) (* IndexOffset= 16#0000_0012 *)
 AxisDelayTimeVeloPosition,          (* lreal *) (* IndexOffset= 16#0000_0104 *)
 AxisEnLoopingDistance,              (* bool  *) (* IndexOffset= 16#0000_0013 *)
 AxisLoopingDistance,                (* lreal *) (* IndexOffset= 16#0000_0014 *)
 AxisEnBacklashCompensation,         (* bool  *) (* IndexOffset= 16#0000_002B *)
 AxisBacklash,                       (* lreal *) (* IndexOffset= 16#0000_002C *)
 AxisEnDataPersistence,              (* bool  *) (* IndexOffset= 16#0000_0030 *)
 AxisRefVeloOnRefOutput,             (* lreal *) (* IndexOffset= 16#0003_0101 *)
 AxisOverrideType,                   (* lreal *) (* IndexOffset= 16#0000_0105 *)
 (* new since 4/2007 *)
 AxisEncoderScalingFactor,           (* lreal *) (* IndexOffset= 16#0001_0006 *)
 AxisEncoderOffset,                  (* lreal *) (* IndexOffset= 16#0001_0007 *)
 AxisEncoderDirectionInverse,        (* bool  *) (* IndexOffset= 16#0001_0008 *)
 AxisEncoderMask,                    (* dword *) (* IndexOffset= 16#0001_0015 *)
 AxisEncoderModuloValue,             (* lreal *) (* IndexOffset= 16#0001_0009 *)
 AxisModuloToleranceWindow,          (* lreal *) (* IndexOffset= 16#0001_001B *)
 AxisEnablePosCorrection,            (* bool  *) (* IndexOffset= 16#0001_0016 *)
 AxisPosCorrectionFilterTime,        (* lreal *) (* IndexOffset= 16#0001_0017 *)
 (* new since 1/2010 *)
 AxisUnitInterpretation,             (* lreal *) (* IndexOffset= 16#0000_0026 *)
 AxisMotorDirectionInverse,          (* bool  *) (* IndexOffset= 16#0003_0006 *)
 (* new since 1/2011 *)
 AxisCycleTime,                      (* lreal *) (* IndexOffset= 16#0000_0004 *)
 (* new since 5/2011 *)
 AxisFastStopSignalType,             (* dword *) (* IndexOffset= 16#0000_001E *)
 AxisFastAcc,                        (* lreal *) (* IndexOffset= 16#0000_010A *)
 AxisFastDec,                        (* lreal *) (* IndexOffset= 16#0000_010B *)
 AxisFastJerk,                       (* lreal *) (* IndexOffset= 16#0000_010C *)
(* new since 1/2012 *)
 AxisEncoderScalingNumerator,        (* lreal *) (* IndexOffset= 16#0001_0023 - available in Tc3 *)
 AxisEncoderScalingDenominator,      (* lreal *) (* IndexOffset= 16#0001_0024 - available in Tc3 *)
(* new since 7/2016 *)
 AxisMaximumAcceleration,            (* lreal *) (* IndexOffset= 16#0000_00F1 - available in Tc3 *)
 AxisMaximumDeceleration,            (* lreal *) (* IndexOffset= 16#0000_00F2 - available in Tc3 *)
 AxisVeloJumpFactor,                 (* lreal *) (* IndexOffset= 16#0000_0106 *)
 AxisToleranceBallAuxAxis,           (* lreal *) (* IndexOffset= 16#0000_0108 *)
 AxisMaxPositionDeviationAuxAxis,    (* lreal *) (* IndexOffset= 16#0000_0109 *)
 AxisErrorPropagationMode,           (* dword *) (* IndexOffset= 16#0000_001A *)
 AxisErrorPropagationDelay,          (* lreal *) (* IndexOffset= 16#0000_001B *)
 AxisCoupleSlaveToActualValues,      (* bool  *) (* IndexOffset= 16#0000_001C *)
 AxisAllowMotionCmdToSlaveAxis,      (* bool  *) (* IndexOffset= 16#0000_0020 *)
 AxisAllowMotionCmdToExtSetAxis,     (* bool  *) (* IndexOffset= 16#0000_0021 *)
 AxisEncoderSubMask,                 (* dword *) (* IndexOffset= 16#0001_0108 *)
 AxisEncoderReferenceSystem,         (* dword *) (* IndexOffset= 16#0001_0019 *)
 AxisEncoderPositionFilterPT1,       (* lreal *) (* IndexOffset= 16#0001_0010 *)
 AxisEncoderVelocityFilterPT1,       (* lreal *) (* IndexOffset= 16#0001_0011 *)
 AxisEncoderAccelerationFilterPT1,   (* lreal *) (* IndexOffset= 16#0001_0012 *)
 AxisEncoderMode,                    (* dword *) (* IndexOffset= 16#0001_000A *)
 AxisEncoderHomingInvDirCamSearch,   (* bool  *) (* IndexOffset= 16#0001_0101 *)
 AxisEncoderHomingInvDirSyncSearch,  (* bool  *) (* IndexOffset= 16#0001_0102 *)
 AxisEncoderHomingCalibValue,        (* lreal *) (* IndexOffset= 16#0001_0103 *)
 AxisEncoderReferenceMode,           (* dword *) (* IndexOffset= 16#0001_0107 *)
 AxisRefVeloOutputRatio,             (* lreal *) (* IndexOffset= 16#0003_0102 *)
 AxisDrivePositionOutputScaling,     (* lreal *) (* IndexOffset= 16#0003_0109 *)
 AxisDriveVelocityOutputScaling,     (* lreal *) (* IndexOffset= 16#0003_0105 *)
 AxisDriveVelocityOutputDelay,       (* lreal *) (* IndexOffset= 16#0003_010D *)
 AxisDriveMinOutputLimitation,       (* lreal *) (* IndexOffset= 16#0003_000B *)
 AxisDriveMaxOutputLimitation,       (* lreal *) (* IndexOffset= 16#0003_000C *)
 AxisTorqueInputScaling,             (* lreal *) (* IndexOffset= 16#0003_0031 - available in Tc3 *)
 AxisTorqueInputFilterPT1,           (* lreal *) (* IndexOffset= 16#0003_0032 - available in Tc3 *)
 AxisTorqueDerivationInputFilterPT1, (* lreal *) (* IndexOffset= 16#0003_0033 - available in Tc3 *)
 AxisTorqueOutputScaling,            (* lreal *) (* IndexOffset= 16#0003_010B *)
 AxisTorqueOutputDelay,              (* lreal *) (* IndexOffset= 16#0003_010F *)
 AxisAccelerationOutputScaling,      (* lreal *) (* IndexOffset= 16#0003_010A *)
 AxisAccelerationOutputDelay,        (* lreal *) (* IndexOffset= 16#0003_010E *)
 AxisDrivePosOutputSmoothFilterType, (* dword *) (* IndexOffset= 16#0003_0110 *)
 AxisDrivePosOutputSmoothFilterTime, (* lreal *) (* IndexOffset= 16#0003_0111 *)
 AxisDrivePosOutputSmoothFilterOrder,(* dword *) (* IndexOffset= 16#0003_0112 *)
 AxisDriveMode,                      (* dword *) (* IndexOffset= 16#0003_000A *)
 AxisDriftCompensationOffset,        (* lreal *) (* IndexOffset= 16#0003_0104 *)
 AxisPositionControlKv,              (* lreal *) (* IndexOffset= 16#0002_0102 *)
 AxisCtrlVelocityPreCtrlWeight,      (* lreal *) (* IndexOffset= 16#0002_000B *)
 AxisControllerMode,                 (* dword *) (* IndexOffset= 16#0002_000A *)
 AxisCtrlAutoOffset,                 (* bool  *) (* IndexOffset= 16#0002_0110 *)
 AxisCtrlAutoOffsetTimer,            (* lreal *) (* IndexOffset= 16#0002_0115 *)
 AxisCtrlAutoOffsetLimit,            (* lreal *) (* IndexOffset= 16#0002_0114 *)
 AxisSlaveCouplingControlKcp,        (* lreal *) (* IndexOffset= 16#0002_010F *)
 AxisCtrlOutputLimit,                (* lreal *) (* IndexOffset= 16#0002_0100 *)

(* Beckhoff specific axis status information - READ ONLY *) (* Index-Group 0x4100 + ID*)
 AxisTargetPosition := 2000,         (* lreal *) (* IndexOffset= 16#0000_0013 *)
 AxisRemainingTimeToGo,              (* lreal *) (* IndexOffset= 16#0000_0014 *)
 AxisRemainingDistanceToGo,          (* lreal *) (* IndexOffset= 16#0000_0022, 16#0000_0042 *)

(* Beckhoff specific axis functions *)
 (* read/write gear ratio of a slave *)
 AxisGearRatio := 3000,              (* lreal *) (* read: IndexGroup=0x4100+ID, IdxOffset=16#0000_0022, *)
 (* write:IndexGroup=0x4200+ID, IdxOffset=16#0000_0042 *) 

(* Beckhoff specific other parameters *)
 (* new since 1/2011 *)
 NcSafCycleTime := 4000,             (* lreal *) (* IndexOffset= 16#0000_0010 *)
 NcSvbCycleTime                      (* lreal *) (* IndexOffset= 16#0000_0012 *)
);
END_TYPE

The AxisGearRatio parameter can only be read or written if the axis is coupled as a slave. During the motion only very small changes are allowed.

Requirements

Development environment

Target system type

PLC libraries to include

TwinCAT v3.0.0

PC or CX (x86 or x64)

Tc2_MC2