Data type MC_AxisParameter

The MC_AxisParameter data type is used in conjunction with function blocks for reading and writing of 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 *)

(* 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

Data type MC_AxisParameter 1:

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.