#!/usr/bin/env python from enum import * class E_AxisParameters(Enum): # PLCopen specific parameters Index-Group 0x4000 + ID CommandedPosition = 1 # lreal taken from NcToPlc SWLimitFwd = 2 # lreal IndexOffset= 16#0001_000E SWLimitBwd = 3 # lreal IndexOffset= 16#0001_000D EnableLimitFwd = 4 # bool IndexOffset= 16#0001_000C EnableLimitBwd = 5 # bool IndexOffset= 16#0001_000B EnablePosLagMonitoring = 6 # bool IndexOffset= 16#0002_0010 MaxPositionLag = 7 # lreal IndexOffset= 16#0002_0012 AxisMaxVelocity = 8 # lreal IndexOffset= 16#0000_0027 ActualVelocity = 10 # lreal taken from NcToPlc CommandedVelocity = 11 # lreal taken from NcToPlc AxisDefaultAcceleration = 12 # lreal IndexOffset= 16#0000_0101 AxisDefaultDeceleration = 14 # lreal IndexOffset= 16#0000_0102 AxisDefaultJerk = 16 # lreal IndexOffset= 16#0000_0103 # Beckhoff specific parameters Index-Group 0x4000 + ID AxisId = 1000 # lreal IndexOffset= 16#0000_0001 AxisManVelSlow = 1001 # lreal IndexOffset= 16#0000_0008 AxisManVelFast = 1002 # lreal IndexOffset= 16#0000_0009 AxisRapidTraverseVelocity = 1009 # lreal IndexOffset= 16#0000_000A AxisVelocityToCam = 1012 # lreal IndexOffset= 16#0000_0006 AxisVelocityFromCam = 1013 # lreal IndexOffset= 16#0000_0007 AxisJogIncrementForward = 1014 # lreal IndexOffset= 16#0000_0018 AxisJogIncrementBackward = 1015 # lreal IndexOffset= 16#0000_0019 AxisMaxPosLagFilterTime = 1022 # lreal IndexOffset= 16#0002_0013 AxisEnPositionRangeMonitoring = 1023 # bool IndexOffset= 16#0000_000F AxisPositionRangeWindow = 1024 # lreal IndexOffset= 16#0000_0010 AxisEnTargetPositionMonitoring = 1025 # bool IndexOffset= 16#0000_0015 AxisTargetPositionWindow = 1026 # lreal IndexOffset= 16#0000_0016 AxisTargetPositionMonitoringTime = 1027 # lreal IndexOffset= 16#0000_0017 AxisEnInTargetTimeout = 1028 # bool IndexOffset= 16#0000_0029 AxisInTargetTimeout = 1029 # lreal IndexOffset= 16#0000_002A AxisEnMotionMonitoring = 1030 # bool IndexOffset= 16#0000_0011 AxisMotionMonitoringWindow = 1031 # lreal IndexOffset= 16#0000_0028 AxisMotionMonitoringTime = 1032 # lreal IndexOffset= 16#0000_0012 AxisDelayTimeVeloPosition = 1033 # lreal IndexOffset= 16#0000_0104 AxisEnLoopingDistance = 1034 # bool IndexOffset= 16#0000_0013 AxisLoopingDistance = 1035 # lreal IndexOffset= 16#0000_0014 AxisEnBacklashCompensation = 1036 # bool IndexOffset= 16#0000_002B AxisBacklash = 1037 # lreal IndexOffset= 16#0000_002C AxisEnDataPersistence = 1038 # bool IndexOffset= 16#0000_0030 AxisRefVeloOnRefOutput = 1039 # lreal IndexOffset= 16#0003_0101 AxisOverrideType = 1040 # lreal IndexOffset= 16#0000_0105 # new since 4/2007 AxisEncoderOffset = 1042 # lreal IndexOffset= 16#0001_0007 AxisEncoderDirectionInverse = 1043 # bool IndexOffset= 16#0001_0008 AxisEncoderMask = 1044 # dword IndexOffset= 16#0001_0015 AxisEncoderModuloValue = 1045 # lreal IndexOffset= 16#0001_0009 AxisModuloToleranceWindow = 1046 # lreal IndexOffset= 16#0001_001B AxisEnablePosCorrection = 1047 # bool IndexOffset= 16#0001_0016 AxisPosCorrectionFilterTime = 1048 # lreal IndexOffset= 16#0001_0017 # new since 1/2010 AxisUnitInterpretation = 1049 # lreal IndexOffset= 16#0000_0026 AxisMotorDirectionInverse = 1050 # bool IndexOffset= 16#0003_0006 # new since 1/2011 AxisCycleTime = 1051 # lreal IndexOffset= 16#0000_0004 # new since 5/2011 AxisFastStopSignalType = 1052 # dword IndexOffset= 16#0000_001E AxisFastAcc = 1053 # lreal IndexOffset= 16#0000_010A AxisFastDec = 1054 # lreal IndexOffset= 16#0000_010B AxisFastJerk = 1055 # lreal IndexOffset= 16#0000_010C # new since 1/2012 *) AxisEncoderScalingNumerator = 1056 # lreal IndexOffset= 16#0001_0023 - available in Tc3 AxisEncoderScalingDenominator = 1057 # lreal IndexOffset= 16#0001_0024 - available in Tc3 # new since 7/2016 AxisMaximumAcceleration = 1058 # lreal IndexOffset= 16#0000_00F1 AxisMaximumDeceleration = 1059 # lreal IndexOffset= 16#0000_00F2 AxisVeloJumpFactor = 1060 # lreal IndexOffset= 16#0000_0106 AxisToleranceBallAuxAxis = 1061 # lreal IndexOffset= 16#0000_0108 AxisMaxPositionDeviationAuxAxis = 1062 # lreal IndexOffset= 16#0000_0109 AxisErrorPropagationMode = 1063 # dword IndexOffset= 16#0000_001A AxisErrorPropagationDelay = 1064 # lreal IndexOffset= 16#0000_001B AxisCoupleSlaveToActualValues = 1065 # bool IndexOffset= 16#0000_001C AxisAllowMotionCmdToSlaveAxis = 1066 # bool IndexOffset= 16#0000_0020 AxisAllowMotionCmdToExtSetAxis = 1067 # bool IndexOffset= 16#0000_0021 AxisEncoderSubMask = 1068 # dword IndexOffset= 16#0001_0108 AxisEncoderReferenceSystem = 1069 # dword IndexOffset= 16#0001_0019 AxisEncoderPositionFilterPT1 = 1070 # lreal IndexOffset= 16#0001_0010 AxisEncoderVelocityFilterPT1 = 1071 # lreal IndexOffset= 16#0001_0011 AxisEncoderAccelerationFilterPT1 = 1072 # lreal IndexOffset= 16#0001_0012 AxisEncoderMode = 1073 # dword IndexOffset= 16#0001_000A AxisEncoderHomingInvDirCamSearch = 1074 # bool IndexOffset= 16#0001_0101 AxisEncoderHomingInvDirSyncSearch = 1075 # bool IndexOffset= 16#0001_0102 AxisEncoderHomingCalibValue = 1076 # lreal IndexOffset= 16#0001_0103 AxisEncoderReferenceMode = 1077 # dword IndexOffset= 16#0001_0107 AxisRefVeloOutputRatio = 1078 # lreal IndexOffset= 16#0003_0102 AxisDrivePositionOutputScaling = 1079 # lreal IndexOffset= 16#0003_0109 AxisDriveVelocityOutputScaling = 1080 # lreal IndexOffset= 16#0003_0105 AxisDriveVelocityOutputDelay = 1081 # lreal IndexOffset= 16#0003_010D AxisDriveMinOutputLimitation = 1082 # lreal IndexOffset= 16#0003_000B AxisDriveMaxOutputLimitation = 1083 # lreal IndexOffset= 16#0003_000C AxisTorqueInputScaling = 1084 # lreal IndexOffset= 16#0003_0031 - available in Tc3 AxisTorqueInputFilterPT1 = 1085 # lreal IndexOffset= 16#0003_0032 - available in Tc3 AxisTorqueDerivationInputFilterPT1 = 1086 # lreal IndexOffset= 16#0003_0033 - available in Tc3 AxisTorqueOutputScaling = 1087 # lreal IndexOffset= 16#0003_010B AxisTorqueOutputDelay = 1088 # lreal IndexOffset= 16#0003_010F AxisAccelerationOutputScaling = 1089 # lreal IndexOffset= 16#0003_010A AxisAccelerationOutputDelay = 1090 # lreal IndexOffset= 16#0003_010E AxisDrivePositionOutputSmoothFilterType = 1091 # dword IndexOffset= 16#0003_0110 AxisDrivePositionOutputSmoothFilterTime = 1092 # lreal IndexOffset= 16#0003_0111 AxisDrivePositionOutputSmoothFilterOrder = 1093 # dword IndexOffset= 16#0003_0112 AxisDriveMode = 1094 # dword IndexOffset= 16#0003_000A AxisDriftCompensationOffset = 1095 # lreal IndexOffset= 16#0003_0104 AxisPositionControlKv = 1096 # lreal IndexOffset= 16#0002_0102 AxisCtrlVelocityPreCtrlWeight = 1097 # lreal IndexOffset= 16#0002_000B AxisControllerMode = 1098 # dword IndexOffset= 16#0002_000A AxisCtrlAutoOffset = 1099 # bool IndexOffset= 16#0002_0110 AxisCtrlAutoOffsetTimer = 1100 # lreal IndexOffset= 16#0002_0115 AxisCtrlAutoOffsetLimit = 1101 # lreal IndexOffset= 16#0002_0114 AxisSlaveCouplingControlKcp = 1102 # lreal IndexOffset= 16#0002_010F AxisCtrlOutputLimit = 1103 # lreal IndexOffset= 16#0002_0100 # Beckhoff specific axis status information - READ ONLY Index-Group 0x4100 + ID AxisTargetPosition = 2000 # lreal IndexOffset= 16#0000_0013 AxisRemainingTimeToGo = 2001 # lreal IndexOffset= 16#0000_0014 AxisRemainingDistanceToGo = 2002 # 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 = 4001 # lreal IndexOffset= 16#0000_0012