diff --git a/motorApp/AerotechSrc/EnsembleCommonStructures.h b/motorApp/AerotechSrc/EnsembleCommonStructures.h new file mode 100755 index 00000000..a94e716a --- /dev/null +++ b/motorApp/AerotechSrc/EnsembleCommonStructures.h @@ -0,0 +1,927 @@ +/// \file EnsembleCommonStructures.h +/// \brief Contains some common structures and enumerations. +/// +/// Copyright (c) Aerotech, Inc. 2010-2017. +/// + +#ifndef __Ensemble_COMMON_STRUCTURES_H__ +#define __Ensemble_COMMON_STRUCTURES_H__ + +/// \brief Represents the servo update rates +typedef enum +{ + /// \brief 1 kHz rate (1 msec update time) + SERVORATEPARAMETER_OnekHz = 0, + /// \brief 2 kHz rate (0.5 msec update time) + SERVORATEPARAMETER_TwokHz = 1, + /// \brief 4 kHz rate (0.25 msec update time) + SERVORATEPARAMETER_FourkHz = 2, + /// \brief 5 kHz rate (0.2 msec update time) + SERVORATEPARAMETER_FivekHz = 3, + /// \brief 10 kHz rate (0.1 msec update time) + SERVORATEPARAMETER_TenkHz = 4, + /// \brief 20 kHz rate (0.05 msec update time) + SERVORATEPARAMETER_TwentykHz = 5, +} SERVORATEPARAMETER; + +/// \brief This value represents information about the state of this task. +typedef enum +{ + /// \brief This task was disabled by the TaskExecutionSetup parameter. + TASKSTATE_Inactive = 0, + /// \brief No program is associated or running. + TASKSTATE_Idle = 1, + /// \brief A program is associated but not running. + TASKSTATE_ProgramReady = 2, + /// \brief A program is associated and running. + TASKSTATE_ProgramRunning = 3, + /// \brief A program is associated, was run, and was paused. + TASKSTATE_ProgramPaused = 4, + /// \brief A program is associated, was run, and completed. + TASKSTATE_ProgramComplete = 5, + /// \brief A task error occurred on this task. + TASKSTATE_Error = 6, + /// \brief A task-based plugin is running in this task. + TASKSTATE_RunningPlugin = 10, +} TASKSTATE; + +/// \brief Represents plane status +typedef enum +{ + /// \brief The plane is generating motion on one or more axes. + PLANESTATUS_MotionActive = (1u << 0), + /// \brief The plane is generating a contoured motion on one or more axes. + PLANESTATUS_VelocityProfilingActive = (1u << 1), + /// \brief The plane is accelerating to the commanded velocity. + PLANESTATUS_AccelerationPhaseActive = (1u << 2), + /// \brief The plane is decelerating to the commanded velocity. + PLANESTATUS_DecelerationPhaseActive = (1u << 3), + /// \brief The plane is decelerating to zero velocity when commanded to abort. + PLANESTATUS_MotionAborting = (1u << 4), + /// \brief The plane is waiting for the START command to begin motion. + PLANESTATUS_HoldModeActive = (1u << 5), +} PLANESTATUS; +typedef enum +{ + /// \brief The plane is generating motion on one or more axes. + PLANESTATUSBITS_MotionActiveBit = 0, + /// \brief The plane is generating a contoured motion on one or more axes. + PLANESTATUSBITS_VelocityProfilingActiveBit = 1, + /// \brief The plane is accelerating to the commanded velocity. + PLANESTATUSBITS_AccelerationPhaseActiveBit = 2, + /// \brief The plane is decelerating to the commanded velocity. + PLANESTATUSBITS_DecelerationPhaseActiveBit = 3, + /// \brief The plane is decelerating to zero velocity when commanded to abort. + PLANESTATUSBITS_MotionAbortingBit = 4, + /// \brief The plane is waiting for the START command to begin motion. + PLANESTATUSBITS_HoldModeActiveBit = 5, +} PLANESTATUSBITS; + +/// \brief Represents the debug flags on the controller +typedef enum +{ + /// \brief + DEBUGFLAGS_PrintStringCallbackPending = (1u << 0), + /// \brief + DEBUGFLAGS_CollectionTriggered = (1u << 1), + /// \brief + DEBUGFLAGS_CollectionDone = (1u << 2), + /// \brief + DEBUGFLAGS_InputBoxCallbackPending = (1u << 3), +} DEBUGFLAGS; +typedef enum +{ + /// \brief + DEBUGFLAGSBITS_PrintStringCallbackPendingBit = 0, + /// \brief + DEBUGFLAGSBITS_CollectionTriggeredBit = 1, + /// \brief + DEBUGFLAGSBITS_CollectionDoneBit = 2, + /// \brief + DEBUGFLAGSBITS_InputBoxCallbackPendingBit = 3, +} DEBUGFLAGSBITS; + +/// \brief Represents an axis status +typedef enum +{ + /// \brief The axis is enabled. + AXISSTATUS_Enabled = (1u << 0), + /// \brief The axis is homed. + AXISSTATUS_Homed = (1u << 1), + /// \brief The axis is considered to be in position as configured by the InPositionDistance and InPositionTime parameters. + AXISSTATUS_InPosition = (1u << 2), + /// \brief The axis is performing drive generated motion. + AXISSTATUS_MoveActive = (1u << 3), + /// \brief The axis is accelerating. + AXISSTATUS_AccelerationPhase = (1u << 4), + /// \brief The axis is decelerating. + AXISSTATUS_DecelerationPhase = (1u << 5), + /// \brief Position capture is armed on the axis and waiting for a trigger signal. + AXISSTATUS_PositionCaptureActive = (1u << 6), + /// \brief For piezo drives, the controller clamps the motor output to the value of the PiezoVoltageClampLow or the PiezoVoltageClampHigh parameter. For all other drives, the controller clamps the motor output to the value of the MaxCurrentClamp parameter. + AXISSTATUS_CurrentClamp = (1u << 7), + /// \brief This represents the state of the dedicated brake output. + AXISSTATUS_BrakeOutput = (1u << 8), + /// \brief Indicates the direction of the active (or last) motion. + AXISSTATUS_MotionIsCw = (1u << 9), + /// \brief Gearing or camming is currently active on the axis. + AXISSTATUS_MasterSlaveControl = (1u << 10), + /// \brief The correction table for this axis is currently being applied. + AXISSTATUS_CalibrationActive = (1u << 11), + /// \brief A calibration file contains a calibration table that corrects this axis. The state of this bit is not affected by the CALENABLE or CALDISABLE commands. + AXISSTATUS_CalibrationEnabled = (1u << 12), + /// \brief The axis is currently performing motion under control of the JOYSTICK command. + AXISSTATUS_JoystickControl = (1u << 13), + /// \brief The axis is currently performing motion as part of the home cycle. + AXISSTATUS_Homing = (1u << 14), + /// \brief The axis position lost synchronization with the master and is ignoring profiled position. + AXISSTATUS_MasterMotionSuppressed = (1u << 15), + /// \brief This gantry is actively part of a gantry pair. + AXISSTATUS_GantryModeActive = (1u << 16), + /// \brief This axis is a gantry master in a gantry pair. + AXISSTATUS_GantryMasterActive = (1u << 17), + /// \brief This axis is operating under control of the AUTOFOCUS loop. + AXISSTATUS_AutofocusActive = (1u << 18), + /// \brief The filter defined by the Command Shaping Parameters is complete. + AXISSTATUS_CommandShapingFilterDone = (1u << 19), + /// \brief The axis is considered to be in position as configured by the InPosition2Distance and InPosition2Time parameters. + AXISSTATUS_InPosition2 = (1u << 20), + /// \brief The axis is operating under servo control. + AXISSTATUS_ServoControl = (1u << 21), + /// \brief This represents the state of the CW end of travel limit input. It is not affected by the active polarity, which is configured by the EndOfTravelLimitSetup parameter. + AXISSTATUS_CwEndOfTravelLimitInput = (1u << 22), + /// \brief This represents the state of the CCW end of travel limit input. It is not affected by the active polarity, which is configured by the EndOfTravelLimitSetup parameter. + AXISSTATUS_CcwEndOfTravelLimitInput = (1u << 23), + /// \brief This represents the state of the home limit input. It is not affected by the active polarity, which is configured by the EndOfTravelLimitSetup parameter. + AXISSTATUS_HomeLimitInput = (1u << 24), + /// \brief This represents the state of the marker input. + AXISSTATUS_MarkerInput = (1u << 25), + /// \brief This represents the state of the Hall-effect sensor A input. + AXISSTATUS_HallAInput = (1u << 26), + /// \brief This represents the state of the Hall-effect sensor B input. + AXISSTATUS_HallBInput = (1u << 27), + /// \brief This represents the state of the Hall-effect sensor C input. + AXISSTATUS_HallCInput = (1u << 28), + /// \brief An error condition is present on the Sine encoder input of the position feedback device. + AXISSTATUS_SineEncoderError = (1u << 29), + /// \brief An error condition is present on the Cosine encoder input of the position feedback device. + AXISSTATUS_CosineEncoderError = (1u << 30), + /// \brief This represents the state of the emergency stop sense input. + AXISSTATUS_EmergencyStopInput = (1u << 31), +} AXISSTATUS; +typedef enum +{ + /// \brief The axis is enabled. + AXISSTATUSBITS_EnabledBit = 0, + /// \brief The axis is homed. + AXISSTATUSBITS_HomedBit = 1, + /// \brief The axis is considered to be in position as configured by the InPositionDistance and InPositionTime parameters. + AXISSTATUSBITS_InPositionBit = 2, + /// \brief The axis is performing drive generated motion. + AXISSTATUSBITS_MoveActiveBit = 3, + /// \brief The axis is accelerating. + AXISSTATUSBITS_AccelerationPhaseBit = 4, + /// \brief The axis is decelerating. + AXISSTATUSBITS_DecelerationPhaseBit = 5, + /// \brief Position capture is armed on the axis and waiting for a trigger signal. + AXISSTATUSBITS_PositionCaptureActiveBit = 6, + /// \brief For piezo drives, the controller clamps the motor output to the value of the PiezoVoltageClampLow or the PiezoVoltageClampHigh parameter. For all other drives, the controller clamps the motor output to the value of the MaxCurrentClamp parameter. + AXISSTATUSBITS_CurrentClampBit = 7, + /// \brief This represents the state of the dedicated brake output. + AXISSTATUSBITS_BrakeOutputBit = 8, + /// \brief Indicates the direction of the active (or last) motion. + AXISSTATUSBITS_MotionIsCwBit = 9, + /// \brief Gearing or camming is currently active on the axis. + AXISSTATUSBITS_MasterSlaveControlBit = 10, + /// \brief The correction table for this axis is currently being applied. + AXISSTATUSBITS_CalibrationActiveBit = 11, + /// \brief A calibration file contains a calibration table that corrects this axis. The state of this bit is not affected by the CALENABLE or CALDISABLE commands. + AXISSTATUSBITS_CalibrationEnabledBit = 12, + /// \brief The axis is currently performing motion under control of the JOYSTICK command. + AXISSTATUSBITS_JoystickControlBit = 13, + /// \brief The axis is currently performing motion as part of the home cycle. + AXISSTATUSBITS_HomingBit = 14, + /// \brief The axis position lost synchronization with the master and is ignoring profiled position. + AXISSTATUSBITS_MasterMotionSuppressedBit = 15, + /// \brief This gantry is actively part of a gantry pair. + AXISSTATUSBITS_GantryModeActiveBit = 16, + /// \brief This axis is a gantry master in a gantry pair. + AXISSTATUSBITS_GantryMasterActiveBit = 17, + /// \brief This axis is operating under control of the AUTOFOCUS loop. + AXISSTATUSBITS_AutofocusActiveBit = 18, + /// \brief The filter defined by the Command Shaping Parameters is complete. + AXISSTATUSBITS_CommandShapingFilterDoneBit = 19, + /// \brief The axis is considered to be in position as configured by the InPosition2Distance and InPosition2Time parameters. + AXISSTATUSBITS_InPosition2Bit = 20, + /// \brief The axis is operating under servo control. + AXISSTATUSBITS_ServoControlBit = 21, + /// \brief This represents the state of the CW end of travel limit input. It is not affected by the active polarity, which is configured by the EndOfTravelLimitSetup parameter. + AXISSTATUSBITS_CwEndOfTravelLimitInputBit = 22, + /// \brief This represents the state of the CCW end of travel limit input. It is not affected by the active polarity, which is configured by the EndOfTravelLimitSetup parameter. + AXISSTATUSBITS_CcwEndOfTravelLimitInputBit = 23, + /// \brief This represents the state of the home limit input. It is not affected by the active polarity, which is configured by the EndOfTravelLimitSetup parameter. + AXISSTATUSBITS_HomeLimitInputBit = 24, + /// \brief This represents the state of the marker input. + AXISSTATUSBITS_MarkerInputBit = 25, + /// \brief This represents the state of the Hall-effect sensor A input. + AXISSTATUSBITS_HallAInputBit = 26, + /// \brief This represents the state of the Hall-effect sensor B input. + AXISSTATUSBITS_HallBInputBit = 27, + /// \brief This represents the state of the Hall-effect sensor C input. + AXISSTATUSBITS_HallCInputBit = 28, + /// \brief An error condition is present on the Sine encoder input of the position feedback device. + AXISSTATUSBITS_SineEncoderErrorBit = 29, + /// \brief An error condition is present on the Cosine encoder input of the position feedback device. + AXISSTATUSBITS_CosineEncoderErrorBit = 30, + /// \brief This represents the state of the emergency stop sense input. + AXISSTATUSBITS_EmergencyStopInputBit = 31, +} AXISSTATUSBITS; + +/// \brief Represents the motor type +typedef enum +{ + /// \brief AC Brushless (Hall-Effect Switches) + MOTORTYPE_ACBrushlessHallEffect = 0, + /// \brief AC Brushless (Auto-MSET) + MOTORTYPE_ACBrushlessAutoMSET = 1, + /// \brief DC Brush + MOTORTYPE_DCBrush = 2, + /// \brief Stepper Motor + MOTORTYPE_StepperMotor = 3, + /// \brief 2-Phase AC Brushless + MOTORTYPE_TwoPhaseACBrushless = 6, + /// \brief AC Brushless (Commutation Search) + MOTORTYPE_ACBrushlessCommutationSearch = 7, + /// \brief Piezo Actuator + MOTORTYPE_PiezoActuator = 8, +} MOTORTYPE; + +/// \brief Represents the home type +typedef enum +{ + /// \brief Home Past Limit to Marker + HOMETYPE_PastLimittoMarker = 0, + /// \brief Home to Limit and Reverse to Marker + HOMETYPE_ToLimitandReversetoMarker = 1, + /// \brief Home to Marker Only + HOMETYPE_ToMarkerOnly = 2, + /// \brief Home to Limit Only + HOMETYPE_ToLimitOnly = 3, + /// \brief Home at Current Position + HOMETYPE_AtCurrentPosition = 4, + /// \brief Home at Current Position Absolute + HOMETYPE_AtCurrentPositionAbsolute = 6, +} HOMETYPE; + +/// \brief Represents the position feedback type +typedef enum +{ + /// \brief None (Open-Loop) + POSITIONFEEDBACKTYPE_None = 0, + /// \brief Local Encoder Counter + POSITIONFEEDBACKTYPE_LocalEncoderCounter = 1, + /// \brief Encoder Multiplier + POSITIONFEEDBACKTYPE_EncoderMultiplier = 2, + /// \brief Analog Input + POSITIONFEEDBACKTYPE_AnalogInput = 3, + /// \brief EnDat Absolute Encoder + POSITIONFEEDBACKTYPE_EnDatAbsoluteEncoder = 4, + /// \brief Hall-Effect Switches + POSITIONFEEDBACKTYPE_HallEffectSwitches = 5, + /// \brief Resolver + POSITIONFEEDBACKTYPE_Resolver = 6, + /// \brief Resolute Absolute Encoder + POSITIONFEEDBACKTYPE_ResoluteAbsoluteEncoder = 9, + /// \brief Capacitance Sensor + POSITIONFEEDBACKTYPE_CapacitanceSensor = 11, +} POSITIONFEEDBACKTYPE; + +/// \brief Represents the velocity feedback type +typedef enum +{ + /// \brief None (Use Position Feedback) + VELOCITYFEEDBACKTYPE_None = 0, + /// \brief Local Encoder Counter + VELOCITYFEEDBACKTYPE_LocalEncoderCounter = 1, + /// \brief Encoder Multiplier + VELOCITYFEEDBACKTYPE_EncoderMultiplier = 2, + /// \brief Analog Input + VELOCITYFEEDBACKTYPE_AnalogInput = 3, + /// \brief Resolver + VELOCITYFEEDBACKTYPE_Resolver = 6, +} VELOCITYFEEDBACKTYPE; + +/// \brief Specifies the status flags of data collection +typedef enum +{ + /// \brief Data collection was triggered + DATACOLLECTIONFLAGS_Triggered = (1u << 2), + /// \brief Data collection is done + DATACOLLECTIONFLAGS_Done = (1u << 3), + /// \brief Data collection buffer overflowed + DATACOLLECTIONFLAGS_Overflow = (1u << 5), + /// \brief Data collection was started by a SCOPETRIG + DATACOLLECTIONFLAGS_IsScopeTrigInitiated = (1u << 6), +} DATACOLLECTIONFLAGS; +typedef enum +{ + /// \brief Data collection was triggered + DATACOLLECTIONFLAGSBITS_TriggeredBit = 2, + /// \brief Data collection is done + DATACOLLECTIONFLAGSBITS_DoneBit = 3, + /// \brief Data collection buffer overflowed + DATACOLLECTIONFLAGSBITS_OverflowBit = 5, + /// \brief Data collection was started by a SCOPETRIG + DATACOLLECTIONFLAGSBITS_IsScopeTrigInitiatedBit = 6, +} DATACOLLECTIONFLAGSBITS; + +/// \brief Represents the piezo default servo state. +typedef enum +{ + /// \brief Servo Off + PIEZODEFAULTSERVOSTATE_Off = 0, + /// \brief Servo On + PIEZODEFAULTSERVOSTATE_On = 1, +} PIEZODEFAULTSERVOSTATE; + +/// \brief Specifies which status item to collect +typedef enum +{ + /// \brief Position command + STATUSITEM_PositionCommand = 0, + /// \brief Position feedback + STATUSITEM_PositionFeedback = 1, + /// \brief Position feedback auxiliary + STATUSITEM_PositionFeedbackAuxiliary = 2, + /// \brief Axis status + STATUSITEM_AxisStatus = 3, + /// \brief Axis fault + STATUSITEM_AxisFault = 4, + /// \brief Analog input #0 + STATUSITEM_AnalogInput0 = 5, + /// \brief Analog input #1 + STATUSITEM_AnalogInput1 = 6, + /// \brief Analog output #0 + STATUSITEM_AnalogOutput0 = 7, + /// \brief Analog output #1 + STATUSITEM_AnalogOutput1 = 8, + /// \brief Digital input #0 + STATUSITEM_DigitalInput0 = 9, + /// \brief Digital input #1 + STATUSITEM_DigitalInput1 = 10, + /// \brief Digital input #2 + STATUSITEM_DigitalInput2 = 11, + /// \brief Digital output #0 + STATUSITEM_DigitalOutput0 = 12, + /// \brief Digital output #1 + STATUSITEM_DigitalOutput1 = 13, + /// \brief Digital output #2 + STATUSITEM_DigitalOutput2 = 14, + /// \brief Current command + STATUSITEM_CurrentCommand = 15, + /// \brief Current feedback + STATUSITEM_CurrentFeedback = 16, + /// \brief Amplifier temperature + STATUSITEM_AmplifierTemperature = 17, + /// \brief Auxiliary flags + STATUSITEM_DebugFlags = 18, + /// \brief Program position command + STATUSITEM_ProgramPositionCommand = 19, + /// \brief Program count of library task + STATUSITEM_ProgramCountTaskLibrary = 20, + /// \brief Program count of task #1 + STATUSITEM_ProgramCountTask1 = 21, + /// \brief Program count of task #2 + STATUSITEM_ProgramCountTask2 = 22, + /// \brief Program count of task #3 + STATUSITEM_ProgramCountTask3 = 23, + /// \brief Program count of task #4 + STATUSITEM_ProgramCountTask4 = 24, + /// \brief Time of the packet retrieval in milliseconds + STATUSITEM_PacketTime = 25, + /// \brief Program position feedback + STATUSITEM_ProgramPositionFeedback = 26, + /// \brief Absolute feedback + STATUSITEM_AbsoluteFeedback = 27, + /// \brief Status of plane #0 + STATUSITEM_PlaneStatus0 = 28, + /// \brief Status of plane #1 + STATUSITEM_PlaneStatus1 = 29, + /// \brief Status of plane #2, Epaq only + STATUSITEM_PlaneStatus2 = 30, + /// \brief Status of plane #3, Epaq only + STATUSITEM_PlaneStatus3 = 31, + /// \brief State of task #1 + STATUSITEM_TaskState1 = 33, + /// \brief State of task #2 + STATUSITEM_TaskState2 = 34, + /// \brief State of task #3 + STATUSITEM_TaskState3 = 35, + /// \brief State of task #4 + STATUSITEM_TaskState4 = 36, + /// \brief Analog input #2 + STATUSITEM_AnalogInput2 = 38, + /// \brief Analog input #3 + STATUSITEM_AnalogInput3 = 39, + /// \brief Analog output #2 + STATUSITEM_AnalogOutput2 = 40, + /// \brief Analog output #3 + STATUSITEM_AnalogOutput3 = 41, + /// \brief Velocity Command + STATUSITEM_VelocityCommand = 42, + /// \brief Velocity Feedback + STATUSITEM_VelocityFeedback = 43, + /// \brief Acceleration Command + STATUSITEM_AccelerationCommand = 44, + /// \brief Velocity Error + STATUSITEM_VelocityError = 45, + /// \brief Position Error + STATUSITEM_PositionError = 46, + /// \brief Current Error + STATUSITEM_CurrentError = 47, + /// \brief Acceleration Feedback + STATUSITEM_AccelerationFeedback = 48, + /// \brief Acceleration Error + STATUSITEM_AccelerationError = 49, + /// \brief Analog output #4 + STATUSITEM_AnalogOutput4 = 50, + /// \brief Piezo Voltage Feedback + STATUSITEM_PiezoVoltageFeedback = 51, + /// \brief Piezo Voltage Command + STATUSITEM_PiezoVoltageCommand = 52, +} STATUSITEM; + +/// \brief The type of loop transmission disturbance to use +typedef enum +{ + /// \brief Turn off loop transmission + LOOPTRANSMISSIONMODE_Off = 0, + /// \brief Uses a sinusoid disturbance + LOOPTRANSMISSIONMODE_Sinusoid = 1, + /// \brief Uses a sinusoid disturbance and excites both axes of a gantry + LOOPTRANSMISSIONMODE_SinusoidGantry = 2, + /// \brief Uses a white noise disturbance + LOOPTRANSMISSIONMODE_WhiteNoise = 3, + /// \brief Use a white noise disturbance and excites both axes of a gantry + LOOPTRANSMISSIONMODE_WhiteNoiseGantry = 4, +} LOOPTRANSMISSIONMODE; + +/// \brief The loop transmission type to use +typedef enum +{ + /// \brief Open Loop + LOOPTRANSMISSIONTYPE_OpenLoop = 0, + /// \brief Closed Loop + LOOPTRANSMISSIONTYPE_ClosedLoop = 1, + /// \brief Current Loop + LOOPTRANSMISSIONTYPE_CurrentLoop = 2, + /// \brief AF Open Loop + LOOPTRANSMISSIONTYPE_AFOpenLoop = 3, + /// \brief AF Closed Loop + LOOPTRANSMISSIONTYPE_AFClosedLoop = 4, +} LOOPTRANSMISSIONTYPE; + +/// \brief Represents the OnOff mode in AeroBasic +typedef enum +{ + /// \brief Off or 0 is issued + ONOFF_Off = 0, + /// \brief On or 1 is issued + ONOFF_On = 1, +} ONOFF; + +/// \brief Represents the PSO mode in AeroBasic +typedef enum +{ + /// \brief Reset PSO + PSOMODE_Reset = 0, + /// \brief Turn off PSO + PSOMODE_Off = 1, + /// \brief Arm PSO + PSOMODE_Arm = 2, + /// \brief Fire PSO + PSOMODE_Fire = 3, + /// \brief Turn on PSO + PSOMODE_On = 4, + /// \brief Fire Continuous + PSOMODE_FireContinuous = 5, +} PSOMODE; + +/// \brief The ethernet status information +typedef enum +{ + /// \brief Whether there is data to be transmitted + ETHERNETSTATUS_DataInTransmitter = (1u << 0), + /// \brief Whether there is data to be processed + ETHERNETSTATUS_DataInReceiver = (1u << 1), +} ETHERNETSTATUS; +typedef enum +{ + /// \brief Whether there is data to be transmitted + ETHERNETSTATUSBITS_DataInTransmitterBit = 0, + /// \brief Whether there is data to be processed + ETHERNETSTATUSBITS_DataInReceiverBit = 1, +} ETHERNETSTATUSBITS; + +/// \brief Represents the semaphores in AeroBasic +typedef enum +{ + /// \brief Modbus registers semaphore + SEMAPHORES_ModbusRegisters = 0, + /// \brief Global integers semaphore + SEMAPHORES_GlobalIntegers = 1, + /// \brief Global doubles semaphore + SEMAPHORES_GlobalDoubles = 2, +} SEMAPHORES; + +/// \brief The wait option for waiting for a move to be completed +typedef enum +{ + /// \brief Wait in position + WAITOPTION_InPosition = 0, + /// \brief Wait for move done + WAITOPTION_MoveDone = 1, +} WAITOPTION; + +/// \brief Represents the wait mode in AeroBasic +typedef enum +{ + /// \brief Do not wait for motion to be done + WAITTYPE_NoWait = 0, + /// \brief Wait for motion to be done + WAITTYPE_MoveDone = 1, + /// \brief Wait for axis to be in position + WAITTYPE_InPos = 2, +} WAITTYPE; + +/// \brief The Mode types that can be retrieved by using the GETMODE immediate command. +typedef enum +{ + /// \brief Returns the Motion Mode type (absolute/incremental). + MODETYPE_MotionMode = 0, + /// \brief Returns the Wait Mode type (in position / move done / no wait). + MODETYPE_WaitMode = 1, + /// \brief Returns the Ramp Mode type (linear / SCurve). + MODETYPE_RampMode = 2, + /// \brief Returns the Velocity Mode type (profiled / not profiled). + MODETYPE_VelocityMode = 3, + /// \brief Returns the S-curve value. + MODETYPE_ScurveValue = 4, + /// \brief Returns the Timescale value. + MODETYPE_TimeScaleValue = 5, + /// \brief Returns the default velocity value. + MODETYPE_DefaultVelocityValue = 6, + /// \brief Returns the acceleration rate value. + MODETYPE_AccelRateValue = 7, + /// \brief Returns the acceleration time value. + MODETYPE_AccelTimeValue = 8, + /// \brief Returns the acceleration distance value. + MODETYPE_AccelDistValue = 9, + /// \brief Returns the deceleration rate value. + MODETYPE_DecelRateValue = 10, + /// \brief Returns the deceleration time value. + MODETYPE_DecelTimeValue = 11, + /// \brief Returns the deceleration distance value. + MODETYPE_DecelDistValue = 12, + /// \brief Returns the current plane number for the task. + MODETYPE_Plane = 14, +} MODETYPE; + +/// \brief The type of error that occured during compilation +typedef enum +{ + /// \brief The syntax does not follow AeroBasic + COMPILERERRORTYPE_Syntax = 0, + /// \brief Specific testing detected an error (ex: unknown register set) + COMPILERERRORTYPE_Process = 1, + /// \brief The operating system blocked an operation (ex: file access restriction) + COMPILERERRORTYPE_System = 2, + /// \brief An unrecoverable error occured (ex: out of memory) + COMPILERERRORTYPE_Unrecoverable = 3, + /// \brief The message given is a warning + COMPILERERRORTYPE_Warning = 4, +} COMPILERERRORTYPE; + +/// \brief +typedef enum +{ + /// \brief + DAYOFWEEK_Sunday = 0, + /// \brief + DAYOFWEEK_Monday = 1, + /// \brief + DAYOFWEEK_Tuesday = 2, + /// \brief + DAYOFWEEK_Wednesday = 3, + /// \brief + DAYOFWEEK_Thursday = 4, + /// \brief + DAYOFWEEK_Friday = 5, + /// \brief + DAYOFWEEK_Saturday = 6, +} DAYOFWEEK; + +/// \brief If this is different from , corrective measures should be taken. +typedef enum +{ + /// \brief There are no mismatches between the axes + AXISMISMATCH_None = 0, + /// \brief The version of firmware is different between the axes, update the firmware + AXISMISMATCH_FirmwareVersion = 1, + /// \brief The axes numbers are different from expected, please setup the axes that are expected + AXISMISMATCH_AxisMask = 2, +} AXISMISMATCH; + +/// \brief This is an enumeration of the Register types used when calling the Register immediate command functions found in . +typedef enum +{ + /// \brief Global Integers + REGISTERTYPE_GlobalIntegers = 0, + /// \brief Global Doubles + REGISTERTYPE_GlobalDoubles = 1, + /// \brief Conversion Registers + REGISTERTYPE_ConversionRegisters = 2, + /// \brief Modbus Master Input Registers + REGISTERTYPE_ModbusMasterInputWords = 3, + /// \brief Modbus Master Output Registers + REGISTERTYPE_ModbusMasterOutputWords = 4, + /// \brief Modbus Master Input Bit Registers + REGISTERTYPE_ModbusMasterInputBits = 5, + /// \brief Modbus Master Output Bit Registers + REGISTERTYPE_ModbusMasterOutputBits = 6, + /// \brief Modbus Master Status Registers + REGISTERTYPE_ModbusMasterStatusWords = 7, + /// \brief Modbus Master Status Bit Registers + REGISTERTYPE_ModbusMasterStatusBits = 8, + /// \brief Modbus Master Virtual Input Registers + REGISTERTYPE_ModbusMasterVirtualInputs = 9, + /// \brief Modbus Master Virtual Output Registers + REGISTERTYPE_ModbusMasterVirtualOutputs = 10, + /// \brief Modbus Slave Input Registers + REGISTERTYPE_ModbusSlaveInputWords = 11, + /// \brief Modbus Slave Output Registers + REGISTERTYPE_ModbusSlaveOutputWords = 12, + /// \brief Modbus Slave Input Bit Registers + REGISTERTYPE_ModbusSlaveInputBits = 13, + /// \brief Modbus Slave Output Bit Registers + REGISTERTYPE_ModbusSlaveOutputBits = 14, +} REGISTERTYPE; + +/// \brief The type of the component +typedef enum +{ + /// \brief Compact pulse width modulation + COMPONENTTYPE_CP = 32773, + /// \brief Micro pulse width modulation + COMPONENTTYPE_MP = 32774, + /// \brief Ensemble control board + COMPONENTTYPE_Control = 32775, + /// \brief Compact Linear + COMPONENTTYPE_CL = 32776, + /// \brief High performance pulse width modulation enhanced + COMPONENTTYPE_HPE = 32777, + /// \brief High performance linear enhanced + COMPONENTTYPE_HLE = 32778, + /// \brief Micro pulse linear + COMPONENTTYPE_ML = 32779, + /// \brief Obsolete + COMPONENTTYPE_PMT = 32780, + /// \brief Ensemble Lab controller + COMPONENTTYPE_Lab = 32781, + /// \brief Ensemble QLab controller + COMPONENTTYPE_QLab = 32782, + /// \brief High Performance Single Axis Piezo Drive + COMPONENTTYPE_QDe = 32784, + /// \brief Single Axis Piezo Drive + COMPONENTTYPE_QL = 32785, + /// \brief High Performance Single Axis Piezo Drive + COMPONENTTYPE_QLe = 32786, +} COMPONENTTYPE; + +/// \brief The communication type used to communicate with a controller +typedef enum +{ + /// \brief Communications are over ethernet + COMMUNICATIONTYPE_Ethernet = 2, + /// \brief Communications are over USB + COMMUNICATIONTYPE_Usb = 3, +} COMMUNICATIONTYPE; + +/// \brief Specifies the build result kind +typedef enum +{ + /// \brief The build result describes a warning that occurred during the compilation + BUILDRESULTKIND_Warning = 0, + /// \brief The build result describes an error that occurred during the compilation + BUILDRESULTKIND_Error = 1, +} BUILDRESULTKIND; + +/// \brief Contains information about configuration of FlashConfig in a stage. +typedef enum +{ + /// \brief Whether the FlashConfig memory is present and FlashConfig feature is supported. + FLASHCONFIGSTATUS_Supported = (1u << 0), + /// \brief FlashConfig data is valid. + FLASHCONFIGSTATUS_DataValid = (1u << 1), + /// \brief Connected Stage serial number does not match expected Stage serial number. + FLASHCONFIGSTATUS_SerialMismatch = (1u << 2), +} FLASHCONFIGSTATUS; +typedef enum +{ + /// \brief Whether the FlashConfig memory is present and FlashConfig feature is supported. + FLASHCONFIGSTATUSBITS_SupportedBit = 0, + /// \brief FlashConfig data is valid. + FLASHCONFIGSTATUSBITS_DataValidBit = 1, + /// \brief Connected Stage serial number does not match expected Stage serial number. + FLASHCONFIGSTATUSBITS_SerialMismatchBit = 2, +} FLASHCONFIGSTATUSBITS; + +/// \brief Represents the faults of an axis +typedef enum +{ + /// \brief The absolute value of the difference between the position command and the position feedback exceeded the threshold specified by the PositionErrorThreshold parameter. + AXISFAULT_PositionErrorFault = (1u << 0), + /// \brief The average motor current exceeded the threshold specified by the AverageCurrentThreshold and AverageCurrentTime parameters. + AXISFAULT_OverCurrentFault = (1u << 1), + /// \brief The axis encountered the clockwise (positive) end-of-travel limit switch. + AXISFAULT_CwEndOfTravelLimitFault = (1u << 2), + /// \brief The axis encountered the counter-clockwise (negative) end-of-travel limit switch. + AXISFAULT_CcwEndOfTravelLimitFault = (1u << 3), + /// \brief The axis was commanded to move beyond the position specified by the SoftwareLimitHigh parameter. + AXISFAULT_CwSoftwareLimitFault = (1u << 4), + /// \brief The axis was commanded to move beyond the position specified by the SoftwareLimitLow parameter. + AXISFAULT_CcwSoftwareLimitFault = (1u << 5), + /// \brief The amplifier for this axis exceeded its maximum current rating or experienced an internal error. + AXISFAULT_AmplifierFault = (1u << 6), + /// \brief The drive detected a problem with the feedback device specified by the PositionFeedbackType and PositionFeedbackChannel parameters. + AXISFAULT_PositionFeedbackFault = (1u << 7), + /// \brief The drive detected a problem with the feedback device specified by the VelocityFeedbackType and VelocityFeedbackChannel parameters. + AXISFAULT_VelocityFeedbackFault = (1u << 8), + /// \brief The drive detected an invalid state (all high or all low) for the Hall-effect sensor inputs on this axis. + AXISFAULT_HallSensorFault = (1u << 9), + /// \brief The commanded velocity is more than the velocity command threshold. Before the axis is homed, this threshold is specified by the VelocityCommandThresholdBeforeHome parameter. After the axis is homed, this threshold is specified by the VelocityCommandThreshold parameter. + AXISFAULT_MaxVelocityCommandFault = (1u << 10), + /// \brief The emergency stop sense input, specified by the ESTOPFaultInput parameter, was triggered. + AXISFAULT_EmergencyStopFault = (1u << 11), + /// \brief The absolute value of the difference between the velocity command and the velocity feedback exceeded the threshold specified by the VelocityErrorThreshold parameter. + AXISFAULT_VelocityErrorFault = (1u << 12), + /// \brief The external fault input, specified by the ExternalFaultAnalogInput or ExternalFaultDigitalInput parameters, was triggered. + AXISFAULT_ExternalFault = (1u << 15), + /// \brief The motor thermistor input was triggered, which indicates that the motor exceeded its maximum recommended operating temperature. + AXISFAULT_MotorTemperatureFault = (1u << 17), + /// \brief The amplifier exceeded its maximum recommended operating temperature. + AXISFAULT_AmplifierTemperatureFault = (1u << 18), + /// \brief The encoder fault input on the motor feedback connector was triggered. + AXISFAULT_EncoderFault = (1u << 19), + /// \brief One or more of the drives on the network lost communications with the controller. + AXISFAULT_CommunicationLostFault = (1u << 20), + /// \brief The difference between the position feedback and the scaled (adjusted by GainKv) velocity feedback exceeds the threshold specified by the PositionErrorThreshold parameter. + AXISFAULT_FeedbackScalingFault = (1u << 23), + /// \brief The distance that the axis moved while searching for the marker exceeded the threshold specified by the MarkerSearchThreshold parameter. + AXISFAULT_MarkerSearchFault = (1u << 24), + /// \brief The commanded voltage output exceeded the value of the PiezoVoltageClampLow or PiezoVoltageClampHigh parameter. + AXISFAULT_VoltageClampFault = (1u << 27), + /// \brief The power supply output has exceeded the allowable power or temperature threshold. + AXISFAULT_PowerSupplyFault = (1u << 28), + /// \brief The drive failed has encountered an internal error and had to disable. For assistance, contact Aerotech Customer Service. + AXISFAULT_InternalFault = (1u << 30), +} AXISFAULT; +typedef enum +{ + /// \brief The absolute value of the difference between the position command and the position feedback exceeded the threshold specified by the PositionErrorThreshold parameter. + AXISFAULTBITS_PositionErrorFaultBit = 0, + /// \brief The average motor current exceeded the threshold specified by the AverageCurrentThreshold and AverageCurrentTime parameters. + AXISFAULTBITS_OverCurrentFaultBit = 1, + /// \brief The axis encountered the clockwise (positive) end-of-travel limit switch. + AXISFAULTBITS_CwEndOfTravelLimitFaultBit = 2, + /// \brief The axis encountered the counter-clockwise (negative) end-of-travel limit switch. + AXISFAULTBITS_CcwEndOfTravelLimitFaultBit = 3, + /// \brief The axis was commanded to move beyond the position specified by the SoftwareLimitHigh parameter. + AXISFAULTBITS_CwSoftwareLimitFaultBit = 4, + /// \brief The axis was commanded to move beyond the position specified by the SoftwareLimitLow parameter. + AXISFAULTBITS_CcwSoftwareLimitFaultBit = 5, + /// \brief The amplifier for this axis exceeded its maximum current rating or experienced an internal error. + AXISFAULTBITS_AmplifierFaultBit = 6, + /// \brief The drive detected a problem with the feedback device specified by the PositionFeedbackType and PositionFeedbackChannel parameters. + AXISFAULTBITS_PositionFeedbackFaultBit = 7, + /// \brief The drive detected a problem with the feedback device specified by the VelocityFeedbackType and VelocityFeedbackChannel parameters. + AXISFAULTBITS_VelocityFeedbackFaultBit = 8, + /// \brief The drive detected an invalid state (all high or all low) for the Hall-effect sensor inputs on this axis. + AXISFAULTBITS_HallSensorFaultBit = 9, + /// \brief The commanded velocity is more than the velocity command threshold. Before the axis is homed, this threshold is specified by the VelocityCommandThresholdBeforeHome parameter. After the axis is homed, this threshold is specified by the VelocityCommandThreshold parameter. + AXISFAULTBITS_MaxVelocityCommandFaultBit = 10, + /// \brief The emergency stop sense input, specified by the ESTOPFaultInput parameter, was triggered. + AXISFAULTBITS_EmergencyStopFaultBit = 11, + /// \brief The absolute value of the difference between the velocity command and the velocity feedback exceeded the threshold specified by the VelocityErrorThreshold parameter. + AXISFAULTBITS_VelocityErrorFaultBit = 12, + /// \brief The external fault input, specified by the ExternalFaultAnalogInput or ExternalFaultDigitalInput parameters, was triggered. + AXISFAULTBITS_ExternalFaultBit = 15, + /// \brief The motor thermistor input was triggered, which indicates that the motor exceeded its maximum recommended operating temperature. + AXISFAULTBITS_MotorTemperatureFaultBit = 17, + /// \brief The amplifier exceeded its maximum recommended operating temperature. + AXISFAULTBITS_AmplifierTemperatureFaultBit = 18, + /// \brief The encoder fault input on the motor feedback connector was triggered. + AXISFAULTBITS_EncoderFaultBit = 19, + /// \brief One or more of the drives on the network lost communications with the controller. + AXISFAULTBITS_CommunicationLostFaultBit = 20, + /// \brief The difference between the position feedback and the scaled (adjusted by GainKv) velocity feedback exceeds the threshold specified by the PositionErrorThreshold parameter. + AXISFAULTBITS_FeedbackScalingFaultBit = 23, + /// \brief The distance that the axis moved while searching for the marker exceeded the threshold specified by the MarkerSearchThreshold parameter. + AXISFAULTBITS_MarkerSearchFaultBit = 24, + /// \brief The commanded voltage output exceeded the value of the PiezoVoltageClampLow or PiezoVoltageClampHigh parameter. + AXISFAULTBITS_VoltageClampFaultBit = 27, + /// \brief The power supply output has exceeded the allowable power or temperature threshold. + AXISFAULTBITS_PowerSupplyFaultBit = 28, + /// \brief The drive failed has encountered an internal error and had to disable. For assistance, contact Aerotech Customer Service. + AXISFAULTBITS_InternalFaultBit = 30, +} AXISFAULTBITS; + +/// \brief Represents the ramp type in AeroBasic +typedef enum +{ + /// \brief Linear-based ramp type + RAMPTYPE_Linear = 0, + /// \brief S-curve-based ramp type + RAMPTYPE_Scurve = 1, + /// \brief Sine-based ramp type + RAMPTYPE_Sine = 2, +} RAMPTYPE; + +/// \brief Represents the ramp mode in AeroBasic +typedef enum +{ + /// \brief Distance-based acceleration and deceleration + RAMPMODE_Dist = 0, + /// \brief Rate-based acceleration and deceleration + RAMPMODE_Rate = 1, + /// \brief Time-based acceleration and deceleration + RAMPMODE_Time = 2, +} RAMPMODE; + +/// \brief Represents the type of output an axis generates. +typedef enum +{ + /// \brief No output is generated. + COMMANDOUTPUTTYPE_None = 0, + /// \brief Current output is generated. + COMMANDOUTPUTTYPE_Current = 1, + /// \brief Voltage output is generated. + COMMANDOUTPUTTYPE_Voltage = 2, +} COMMANDOUTPUTTYPE; + +/// \brief Specifies the type of calibration table associated with a calibration file action. +typedef enum +{ + /// \brief 1D calibration table. + BINARYCALIBRATIONACTIONTABLETYPE_Calibration1D = 0, + /// \brief 2D calibration table. + BINARYCALIBRATIONACTIONTABLETYPE_Calibration2D = 1, +} BINARYCALIBRATIONACTIONTABLETYPE; + +/// \brief Specifies the status of a binary calibration file action. +typedef enum +{ + /// \brief The calibration table was added. + BINARYCALIBRATIONACTIONSTATUS_TableAdded = 0, + /// \brief The calibration table was removed. + BINARYCALIBRATIONACTIONSTATUS_TableRemoved = 1, + /// \brief The calibration table was not added. + BINARYCALIBRATIONACTIONSTATUS_TableNotAdded = 2, +} BINARYCALIBRATIONACTIONSTATUS; + +/// \brief Represents the position feedback channel type +typedef enum +{ + /// \brief Default + POSITIONFEEDBACKCHANNEL_Default = -1, + /// \brief Channel 0 + POSITIONFEEDBACKCHANNEL_Channel0 = 0, + /// \brief Channel 1 + POSITIONFEEDBACKCHANNEL_Channel1 = 1, + /// \brief Channel 2 + POSITIONFEEDBACKCHANNEL_Channel2 = 2, + /// \brief Channel 3 + POSITIONFEEDBACKCHANNEL_Channel3 = 3, + /// \brief Channel 4 + POSITIONFEEDBACKCHANNEL_Channel4 = 4, +} POSITIONFEEDBACKCHANNEL; + +/// \brief Represents the velocity feedback channel type +typedef enum +{ + /// \brief Default + VELOCITYFEEDBACKCHANNEL_Default = -1, + /// \brief Channel 0 + VELOCITYFEEDBACKCHANNEL_Channel0 = 0, + /// \brief Channel 1 + VELOCITYFEEDBACKCHANNEL_Channel1 = 1, + /// \brief Channel 2 + VELOCITYFEEDBACKCHANNEL_Channel2 = 2, + /// \brief Channel 3 + VELOCITYFEEDBACKCHANNEL_Channel3 = 3, + /// \brief Channel 4 + VELOCITYFEEDBACKCHANNEL_Channel4 = 4, +} VELOCITYFEEDBACKCHANNEL; + +#endif // __Ensemble_COMMON_STRUCTURES_H__ + diff --git a/motorApp/AerotechSrc/EnsembleParameterId.h b/motorApp/AerotechSrc/EnsembleParameterId.h new file mode 100755 index 00000000..f2f0aed8 --- /dev/null +++ b/motorApp/AerotechSrc/EnsembleParameterId.h @@ -0,0 +1,877 @@ +/// \file EnsembleParameterId.h +/// \brief Contains parameter identifiers +/// +/// This file is version dependent and needs to match the rest of the software +/// +/// Copyright (c) Aerotech, Inc. 2010-2017. +/// + +#ifndef __Ensemble_PARAMETER_ID_H__ +#define __Ensemble_PARAMETER_ID_H__ + + +/// \brief Represents a parameter identifier +typedef enum { + /// \brief The AxisType parameter + PARAMETERID_AxisType = ( (0 << 24) | 0 ), + /// \brief The ReverseMotionDirection parameter + PARAMETERID_ReverseMotionDirection = ( (0 << 24) | 1 ), + /// \brief The CountsPerUnit parameter + PARAMETERID_CountsPerUnit = ( (0 << 24) | 2 ), + /// \brief The ServoRate parameter + PARAMETERID_ServoRate = ( (0 << 24) | 3 ), + /// \brief The ServoSetup parameter + PARAMETERID_ServoSetup = ( (0 << 24) | 4 ), + /// \brief The GainKpos parameter + PARAMETERID_GainKpos = ( (0 << 24) | 5 ), + /// \brief The GainKi parameter + PARAMETERID_GainKi = ( (0 << 24) | 6 ), + /// \brief The GainKp parameter + PARAMETERID_GainKp = ( (0 << 24) | 7 ), + /// \brief The GainVff parameter + PARAMETERID_GainVff = ( (0 << 24) | 8 ), + /// \brief The GainAff parameter + PARAMETERID_GainAff = ( (0 << 24) | 9 ), + /// \brief The GainKv parameter + PARAMETERID_GainKv = ( (0 << 24) | 10 ), + /// \brief The GainKpi parameter + PARAMETERID_GainKpi = ( (0 << 24) | 11 ), + /// \brief The ServoFilter0CoeffN0 parameter + PARAMETERID_ServoFilter0CoeffN0 = ( (0 << 24) | 12 ), + /// \brief The ServoFilter0CoeffN1 parameter + PARAMETERID_ServoFilter0CoeffN1 = ( (0 << 24) | 13 ), + /// \brief The ServoFilter0CoeffN2 parameter + PARAMETERID_ServoFilter0CoeffN2 = ( (0 << 24) | 14 ), + /// \brief The ServoFilter0CoeffD1 parameter + PARAMETERID_ServoFilter0CoeffD1 = ( (0 << 24) | 15 ), + /// \brief The ServoFilter0CoeffD2 parameter + PARAMETERID_ServoFilter0CoeffD2 = ( (0 << 24) | 16 ), + /// \brief The ServoFilter1CoeffN0 parameter + PARAMETERID_ServoFilter1CoeffN0 = ( (0 << 24) | 17 ), + /// \brief The ServoFilter1CoeffN1 parameter + PARAMETERID_ServoFilter1CoeffN1 = ( (0 << 24) | 18 ), + /// \brief The ServoFilter1CoeffN2 parameter + PARAMETERID_ServoFilter1CoeffN2 = ( (0 << 24) | 19 ), + /// \brief The ServoFilter1CoeffD1 parameter + PARAMETERID_ServoFilter1CoeffD1 = ( (0 << 24) | 20 ), + /// \brief The ServoFilter1CoeffD2 parameter + PARAMETERID_ServoFilter1CoeffD2 = ( (0 << 24) | 21 ), + /// \brief The AmplifierDeadtime parameter + PARAMETERID_AmplifierDeadtime = ( (0 << 24) | 22 ), + /// \brief The RolloverCounts parameter + PARAMETERID_RolloverCounts = ( (0 << 24) | 23 ), + /// \brief The CurrentGainKi parameter + PARAMETERID_CurrentGainKi = ( (0 << 24) | 24 ), + /// \brief The CurrentGainKp parameter + PARAMETERID_CurrentGainKp = ( (0 << 24) | 25 ), + /// \brief The FaultMask parameter + PARAMETERID_FaultMask = ( (0 << 24) | 26 ), + /// \brief The FaultMaskDisable parameter + PARAMETERID_FaultMaskDisable = ( (0 << 24) | 27 ), + /// \brief The FaultMaskDecel parameter + PARAMETERID_FaultMaskDecel = ( (0 << 24) | 28 ), + /// \brief The EnableBrakeControl parameter + PARAMETERID_EnableBrakeControl = ( (0 << 24) | 29 ), + /// \brief The FaultMaskOutput parameter + PARAMETERID_FaultMaskOutput = ( (0 << 24) | 30 ), + /// \brief The ESTOPFaultInput parameter + PARAMETERID_ESTOPFaultInput = ( (0 << 24) | 31 ), + /// \brief The PositionErrorThreshold parameter + PARAMETERID_PositionErrorThreshold = ( (0 << 24) | 32 ), + /// \brief The AverageCurrentThreshold parameter + PARAMETERID_AverageCurrentThreshold = ( (0 << 24) | 33 ), + /// \brief The AverageCurrentTime parameter + PARAMETERID_AverageCurrentTime = ( (0 << 24) | 34 ), + /// \brief The VelocityCommandThreshold parameter + PARAMETERID_VelocityCommandThreshold = ( (0 << 24) | 35 ), + /// \brief The VelocityErrorThreshold parameter + PARAMETERID_VelocityErrorThreshold = ( (0 << 24) | 36 ), + /// \brief The SoftwareLimitLow parameter + PARAMETERID_SoftwareLimitLow = ( (0 << 24) | 37 ), + /// \brief The SoftwareLimitHigh parameter + PARAMETERID_SoftwareLimitHigh = ( (0 << 24) | 38 ), + /// \brief The MaxCurrentClamp parameter + PARAMETERID_MaxCurrentClamp = ( (0 << 24) | 39 ), + /// \brief The InPositionDistance parameter + PARAMETERID_InPositionDistance = ( (0 << 24) | 40 ), + /// \brief The MotorType parameter + PARAMETERID_MotorType = ( (0 << 24) | 41 ), + /// \brief The CyclesPerRev parameter + PARAMETERID_CyclesPerRev = ( (0 << 24) | 42 ), + /// \brief The CountsPerRev parameter + PARAMETERID_CountsPerRev = ( (0 << 24) | 43 ), + /// \brief The CommutationOffset parameter + PARAMETERID_CommutationOffset = ( (0 << 24) | 44 ), + /// \brief The AutoMsetTime parameter + PARAMETERID_AutoMsetTime = ( (0 << 24) | 45 ), + /// \brief The AutoMsetCurrent parameter + PARAMETERID_AutoMsetCurrent = ( (0 << 24) | 46 ), + /// \brief The PositionFeedbackType parameter + PARAMETERID_PositionFeedbackType = ( (0 << 24) | 47 ), + /// \brief The PositionFeedbackChannel parameter + PARAMETERID_PositionFeedbackChannel = ( (0 << 24) | 48 ), + /// \brief The VelocityFeedbackType parameter + PARAMETERID_VelocityFeedbackType = ( (0 << 24) | 49 ), + /// \brief The VelocityFeedbackChannel parameter + PARAMETERID_VelocityFeedbackChannel = ( (0 << 24) | 50 ), + /// \brief The EncoderMultiplicationFactor parameter + PARAMETERID_EncoderMultiplicationFactor = ( (0 << 24) | 51 ), + /// \brief The EncoderSineGain parameter + PARAMETERID_EncoderSineGain = ( (0 << 24) | 52 ), + /// \brief The EncoderSineOffset parameter + PARAMETERID_EncoderSineOffset = ( (0 << 24) | 53 ), + /// \brief The EncoderCosineGain parameter + PARAMETERID_EncoderCosineGain = ( (0 << 24) | 54 ), + /// \brief The EncoderCosineOffset parameter + PARAMETERID_EncoderCosineOffset = ( (0 << 24) | 55 ), + /// \brief The EncoderPhase parameter + PARAMETERID_EncoderPhase = ( (0 << 24) | 56 ), + /// \brief The GantryMasterAxis parameter + PARAMETERID_GantryMasterAxis = ( (0 << 24) | 57 ), + /// \brief The LimitDecelDistance parameter + PARAMETERID_LimitDecelDistance = ( (0 << 24) | 59 ), + /// \brief The LimitDebounceTime parameter + PARAMETERID_LimitDebounceTime = ( (0 << 24) | 60 ), + /// \brief The EndOfTravelLimitSetup parameter + PARAMETERID_EndOfTravelLimitSetup = ( (0 << 24) | 61 ), + /// \brief The BacklashDistance parameter + PARAMETERID_BacklashDistance = ( (0 << 24) | 62 ), + /// \brief The FaultOutputSetup parameter + PARAMETERID_FaultOutputSetup = ( (0 << 24) | 63 ), + /// \brief The FaultOutputState parameter + PARAMETERID_FaultOutputState = ( (0 << 24) | 64 ), + /// \brief The IOSetup parameter + PARAMETERID_IOSetup = ( (0 << 24) | 65 ), + /// \brief The BrakeOutput parameter + PARAMETERID_BrakeOutput = ( (0 << 24) | 66 ), + /// \brief The EncoderDivider parameter + PARAMETERID_EncoderDivider = ( (0 << 24) | 67 ), + /// \brief The ExternalFaultDigitalInput parameter + PARAMETERID_ExternalFaultDigitalInput = ( (0 << 24) | 68 ), + /// \brief The BrakeDisableDelay parameter + PARAMETERID_BrakeDisableDelay = ( (0 << 24) | 69 ), + /// \brief The MaxJogDistance parameter + PARAMETERID_MaxJogDistance = ( (0 << 24) | 70 ), + /// \brief The DefaultSpeed parameter + PARAMETERID_DefaultSpeed = ( (0 << 24) | 71 ), + /// \brief The DefaultRampRate parameter + PARAMETERID_DefaultRampRate = ( (0 << 24) | 72 ), + /// \brief The AbortDecelRate parameter + PARAMETERID_AbortDecelRate = ( (0 << 24) | 73 ), + /// \brief The HomeType parameter + PARAMETERID_HomeType = ( (0 << 24) | 74 ), + /// \brief The HomeSetup parameter + PARAMETERID_HomeSetup = ( (0 << 24) | 75 ), + /// \brief The HomeSpeed parameter + PARAMETERID_HomeSpeed = ( (0 << 24) | 76 ), + /// \brief The HomeOffset parameter + PARAMETERID_HomeOffset = ( (0 << 24) | 77 ), + /// \brief The HomeRampRate parameter + PARAMETERID_HomeRampRate = ( (0 << 24) | 78 ), + /// \brief The DefaultWaitMode parameter + PARAMETERID_DefaultWaitMode = ( (0 << 24) | 79 ), + /// \brief The DefaultSCurve parameter + PARAMETERID_DefaultSCurve = ( (0 << 24) | 80 ), + /// \brief The DataCollectionPoints parameter + PARAMETERID_DataCollectionPoints = ( (0 << 24) | 81 ), + /// \brief The StepperResolution parameter + PARAMETERID_StepperResolution = ( (0 << 24) | 83 ), + /// \brief The StepperRunningCurrent parameter + PARAMETERID_StepperRunningCurrent = ( (0 << 24) | 84 ), + /// \brief The StepperHoldingCurrent parameter + PARAMETERID_StepperHoldingCurrent = ( (0 << 24) | 85 ), + /// \brief The StepperVerificationSpeed parameter + PARAMETERID_StepperVerificationSpeed = ( (0 << 24) | 86 ), + /// \brief The LimitDebounceDistance parameter + PARAMETERID_LimitDebounceDistance = ( (0 << 24) | 87 ), + /// \brief The ServoFilter2CoeffN0 parameter + PARAMETERID_ServoFilter2CoeffN0 = ( (0 << 24) | 88 ), + /// \brief The ServoFilter2CoeffN1 parameter + PARAMETERID_ServoFilter2CoeffN1 = ( (0 << 24) | 89 ), + /// \brief The ServoFilter2CoeffN2 parameter + PARAMETERID_ServoFilter2CoeffN2 = ( (0 << 24) | 90 ), + /// \brief The ServoFilter2CoeffD1 parameter + PARAMETERID_ServoFilter2CoeffD1 = ( (0 << 24) | 91 ), + /// \brief The ServoFilter2CoeffD2 parameter + PARAMETERID_ServoFilter2CoeffD2 = ( (0 << 24) | 92 ), + /// \brief The ServoFilter3CoeffN0 parameter + PARAMETERID_ServoFilter3CoeffN0 = ( (0 << 24) | 93 ), + /// \brief The ServoFilter3CoeffN1 parameter + PARAMETERID_ServoFilter3CoeffN1 = ( (0 << 24) | 94 ), + /// \brief The ServoFilter3CoeffN2 parameter + PARAMETERID_ServoFilter3CoeffN2 = ( (0 << 24) | 95 ), + /// \brief The ServoFilter3CoeffD1 parameter + PARAMETERID_ServoFilter3CoeffD1 = ( (0 << 24) | 96 ), + /// \brief The ServoFilter3CoeffD2 parameter + PARAMETERID_ServoFilter3CoeffD2 = ( (0 << 24) | 97 ), + /// \brief The GearCamSource parameter + PARAMETERID_GearCamSource = ( (0 << 24) | 98 ), + /// \brief The GearCamIndex parameter + PARAMETERID_GearCamIndex = ( (0 << 24) | 99 ), + /// \brief The GearCamScaleFactor parameter + PARAMETERID_GearCamScaleFactor = ( (0 << 24) | 100 ), + /// \brief The GearCamAnalogDeadband parameter + PARAMETERID_GearCamAnalogDeadband = ( (0 << 24) | 105 ), + /// \brief The PrintBufferSize parameter + PARAMETERID_PrintBufferSize = ( (0 << 24) | 106 ), + /// \brief The SerialPort0XonCharacter parameter + PARAMETERID_SerialPort0XonCharacter = ( (0 << 24) | 109 ), + /// \brief The SerialPort0XoffCharacter parameter + PARAMETERID_SerialPort0XoffCharacter = ( (0 << 24) | 110 ), + /// \brief The SerialPort0BaudRate parameter + PARAMETERID_SerialPort0BaudRate = ( (0 << 24) | 111 ), + /// \brief The SerialPort0Setup parameter + PARAMETERID_SerialPort0Setup = ( (0 << 24) | 112 ), + /// \brief The TaskExecutionSetup parameter + PARAMETERID_TaskExecutionSetup = ( (0 << 24) | 113 ), + /// \brief The CodeSize parameter + PARAMETERID_CodeSize = ( (0 << 24) | 114 ), + /// \brief The DataSize parameter + PARAMETERID_DataSize = ( (0 << 24) | 115 ), + /// \brief The StackSize parameter + PARAMETERID_StackSize = ( (0 << 24) | 116 ), + /// \brief The AutoRunProgram parameter + PARAMETERID_AutoRunProgram = ( (0 << 24) | 118 ), + /// \brief The MaxJogSpeed parameter + PARAMETERID_MaxJogSpeed = ( (0 << 24) | 123 ), + /// \brief The GlobalIntegers parameter + PARAMETERID_GlobalIntegers = ( (0 << 24) | 124 ), + /// \brief The GlobalDoubles parameter + PARAMETERID_GlobalDoubles = ( (0 << 24) | 125 ), + /// \brief The DecimalPlaces parameter + PARAMETERID_DecimalPlaces = ( (0 << 24) | 126 ), + /// \brief The TaskErrorAbortAxes parameter + PARAMETERID_TaskErrorAbortAxes = ( (0 << 24) | 127 ), + /// \brief The CalibrationFile1D parameter + PARAMETERID_CalibrationFile1D = ( (0 << 24) | 128 ), + /// \brief The UnitsName parameter + PARAMETERID_UnitsName = ( (0 << 24) | 129 ), + /// \brief The Socket2RemoteIPAddress parameter + PARAMETERID_Socket2RemoteIPAddress = ( (0 << 24) | 130 ), + /// \brief The Socket2Port parameter + PARAMETERID_Socket2Port = ( (0 << 24) | 131 ), + /// \brief The Socket2Setup parameter + PARAMETERID_Socket2Setup = ( (0 << 24) | 132 ), + /// \brief The Socket2TransmissionSize parameter + PARAMETERID_Socket2TransmissionSize = ( (0 << 24) | 133 ), + /// \brief The Socket3RemoteIPAddress parameter + PARAMETERID_Socket3RemoteIPAddress = ( (0 << 24) | 134 ), + /// \brief The Socket3Port parameter + PARAMETERID_Socket3Port = ( (0 << 24) | 135 ), + /// \brief The Socket3Setup parameter + PARAMETERID_Socket3Setup = ( (0 << 24) | 136 ), + /// \brief The Socket3TransmissionSize parameter + PARAMETERID_Socket3TransmissionSize = ( (0 << 24) | 137 ), + /// \brief The Socket2Timeout parameter + PARAMETERID_Socket2Timeout = ( (0 << 24) | 138 ), + /// \brief The Socket3Timeout parameter + PARAMETERID_Socket3Timeout = ( (0 << 24) | 139 ), + /// \brief The AxisName parameter + PARAMETERID_AxisName = ( (0 << 24) | 140 ), + /// \brief The UserInteger0 parameter + PARAMETERID_UserInteger0 = ( (0 << 24) | 141 ), + /// \brief The UserInteger1 parameter + PARAMETERID_UserInteger1 = ( (0 << 24) | 142 ), + /// \brief The UserDouble0 parameter + PARAMETERID_UserDouble0 = ( (0 << 24) | 143 ), + /// \brief The UserDouble1 parameter + PARAMETERID_UserDouble1 = ( (0 << 24) | 144 ), + /// \brief The UserString0 parameter + PARAMETERID_UserString0 = ( (0 << 24) | 145 ), + /// \brief The UserString1 parameter + PARAMETERID_UserString1 = ( (0 << 24) | 146 ), + /// \brief The EnDatEncoderSetup parameter + PARAMETERID_EnDatEncoderSetup = ( (0 << 24) | 147 ), + /// \brief The EnDatEncoderResolution parameter + PARAMETERID_EnDatEncoderResolution = ( (0 << 24) | 148 ), + /// \brief The EnDatEncoderTurns parameter + PARAMETERID_EnDatEncoderTurns = ( (0 << 24) | 149 ), + /// \brief The CommandSetup parameter + PARAMETERID_CommandSetup = ( (0 << 24) | 150 ), + /// \brief The SerialPort1XonCharacter parameter + PARAMETERID_SerialPort1XonCharacter = ( (0 << 24) | 152 ), + /// \brief The SerialPort1XoffCharacter parameter + PARAMETERID_SerialPort1XoffCharacter = ( (0 << 24) | 153 ), + /// \brief The SerialPort1BaudRate parameter + PARAMETERID_SerialPort1BaudRate = ( (0 << 24) | 154 ), + /// \brief The SerialPort1Setup parameter + PARAMETERID_SerialPort1Setup = ( (0 << 24) | 155 ), + /// \brief The RequiredAxes parameter + PARAMETERID_RequiredAxes = ( (0 << 24) | 156 ), + /// \brief The JoystickInput1MinVoltage parameter + PARAMETERID_JoystickInput1MinVoltage = ( (0 << 24) | 157 ), + /// \brief The JoystickInput1MaxVoltage parameter + PARAMETERID_JoystickInput1MaxVoltage = ( (0 << 24) | 158 ), + /// \brief The JoystickInput1Deadband parameter + PARAMETERID_JoystickInput1Deadband = ( (0 << 24) | 159 ), + /// \brief The JoystickInput0MinVoltage parameter + PARAMETERID_JoystickInput0MinVoltage = ( (0 << 24) | 160 ), + /// \brief The JoystickInput0MaxVoltage parameter + PARAMETERID_JoystickInput0MaxVoltage = ( (0 << 24) | 161 ), + /// \brief The JoystickInput0Deadband parameter + PARAMETERID_JoystickInput0Deadband = ( (0 << 24) | 162 ), + /// \brief The JoystickLowSpeed parameter + PARAMETERID_JoystickLowSpeed = ( (0 << 24) | 163 ), + /// \brief The JoystickHighSpeed parameter + PARAMETERID_JoystickHighSpeed = ( (0 << 24) | 164 ), + /// \brief The JoystickSetup parameter + PARAMETERID_JoystickSetup = ( (0 << 24) | 165 ), + /// \brief The HomePositionSet parameter + PARAMETERID_HomePositionSet = ( (0 << 24) | 166 ), + /// \brief The TaskTerminationAxes parameter + PARAMETERID_TaskTerminationAxes = ( (0 << 24) | 167 ), + /// \brief The TaskStopAbortAxes parameter + PARAMETERID_TaskStopAbortAxes = ( (0 << 24) | 168 ), + /// \brief The CalibrationFile2D parameter + PARAMETERID_CalibrationFile2D = ( (0 << 24) | 169 ), + /// \brief The FaultMaskDisableDelay parameter + PARAMETERID_FaultMaskDisableDelay = ( (0 << 24) | 170 ), + /// \brief The DefaultCoordinatedSpeed parameter + PARAMETERID_DefaultCoordinatedSpeed = ( (0 << 24) | 171 ), + /// \brief The DefaultCoordinatedRampRate parameter + PARAMETERID_DefaultCoordinatedRampRate = ( (0 << 24) | 172 ), + /// \brief The DefaultDependentCoordinatedRampRate parameter + PARAMETERID_DefaultDependentCoordinatedRampRate = ( (0 << 24) | 173 ), + /// \brief The GpibTerminatingCharacter parameter + PARAMETERID_GpibTerminatingCharacter = ( (0 << 24) | 174 ), + /// \brief The GpibPrimaryAddress parameter + PARAMETERID_GpibPrimaryAddress = ( (0 << 24) | 175 ), + /// \brief The GpibParallelResponse parameter + PARAMETERID_GpibParallelResponse = ( (0 << 24) | 176 ), + /// \brief The CommandTerminatingCharacter parameter + PARAMETERID_CommandTerminatingCharacter = ( (0 << 24) | 177 ), + /// \brief The CommandSuccessCharacter parameter + PARAMETERID_CommandSuccessCharacter = ( (0 << 24) | 178 ), + /// \brief The CommandInvalidCharacter parameter + PARAMETERID_CommandInvalidCharacter = ( (0 << 24) | 179 ), + /// \brief The CommandFaultCharacter parameter + PARAMETERID_CommandFaultCharacter = ( (0 << 24) | 180 ), + /// \brief The FaultAbortAxes parameter + PARAMETERID_FaultAbortAxes = ( (0 << 24) | 182 ), + /// \brief The HarmonicCancellation0Type parameter + PARAMETERID_HarmonicCancellation0Type = ( (0 << 24) | 185 ), + /// \brief The HarmonicCancellation0Period parameter + PARAMETERID_HarmonicCancellation0Period = ( (0 << 24) | 186 ), + /// \brief The HarmonicCancellation0Gain parameter + PARAMETERID_HarmonicCancellation0Gain = ( (0 << 24) | 188 ), + /// \brief The HarmonicCancellation0Phase parameter + PARAMETERID_HarmonicCancellation0Phase = ( (0 << 24) | 189 ), + /// \brief The HarmonicCancellation1Type parameter + PARAMETERID_HarmonicCancellation1Type = ( (0 << 24) | 190 ), + /// \brief The HarmonicCancellation1Period parameter + PARAMETERID_HarmonicCancellation1Period = ( (0 << 24) | 191 ), + /// \brief The HarmonicCancellation1Gain parameter + PARAMETERID_HarmonicCancellation1Gain = ( (0 << 24) | 193 ), + /// \brief The HarmonicCancellation1Phase parameter + PARAMETERID_HarmonicCancellation1Phase = ( (0 << 24) | 194 ), + /// \brief The HarmonicCancellation2Type parameter + PARAMETERID_HarmonicCancellation2Type = ( (0 << 24) | 195 ), + /// \brief The HarmonicCancellation2Period parameter + PARAMETERID_HarmonicCancellation2Period = ( (0 << 24) | 196 ), + /// \brief The HarmonicCancellation2Gain parameter + PARAMETERID_HarmonicCancellation2Gain = ( (0 << 24) | 198 ), + /// \brief The HarmonicCancellation2Phase parameter + PARAMETERID_HarmonicCancellation2Phase = ( (0 << 24) | 199 ), + /// \brief The CommandTimeout parameter + PARAMETERID_CommandTimeout = ( (0 << 24) | 202 ), + /// \brief The CommandTimeoutCharacter parameter + PARAMETERID_CommandTimeoutCharacter = ( (0 << 24) | 203 ), + /// \brief The ResolverReferenceGain parameter + PARAMETERID_ResolverReferenceGain = ( (0 << 24) | 204 ), + /// \brief The ResolverSetup parameter + PARAMETERID_ResolverSetup = ( (0 << 24) | 205 ), + /// \brief The ResolverReferencePhase parameter + PARAMETERID_ResolverReferencePhase = ( (0 << 24) | 206 ), + /// \brief The SoftwareLimitSetup parameter + PARAMETERID_SoftwareLimitSetup = ( (0 << 24) | 210 ), + /// \brief The SSINet1Setup parameter + PARAMETERID_SSINet1Setup = ( (0 << 24) | 211 ), + /// \brief The SSINet2Setup parameter + PARAMETERID_SSINet2Setup = ( (0 << 24) | 212 ), + /// \brief The EmulatedQuadratureDivider parameter + PARAMETERID_EmulatedQuadratureDivider = ( (0 << 24) | 213 ), + /// \brief The HarmonicCancellation3Type parameter + PARAMETERID_HarmonicCancellation3Type = ( (0 << 24) | 214 ), + /// \brief The HarmonicCancellation3Period parameter + PARAMETERID_HarmonicCancellation3Period = ( (0 << 24) | 215 ), + /// \brief The HarmonicCancellation3Gain parameter + PARAMETERID_HarmonicCancellation3Gain = ( (0 << 24) | 217 ), + /// \brief The HarmonicCancellation3Phase parameter + PARAMETERID_HarmonicCancellation3Phase = ( (0 << 24) | 218 ), + /// \brief The HarmonicCancellation4Type parameter + PARAMETERID_HarmonicCancellation4Type = ( (0 << 24) | 219 ), + /// \brief The HarmonicCancellation4Period parameter + PARAMETERID_HarmonicCancellation4Period = ( (0 << 24) | 220 ), + /// \brief The HarmonicCancellation4Gain parameter + PARAMETERID_HarmonicCancellation4Gain = ( (0 << 24) | 222 ), + /// \brief The HarmonicCancellation4Phase parameter + PARAMETERID_HarmonicCancellation4Phase = ( (0 << 24) | 223 ), + /// \brief The EnhancedThroughputChannel parameter + PARAMETERID_EnhancedThroughputChannel = ( (0 << 24) | 224 ), + /// \brief The EnhancedThroughputGain parameter + PARAMETERID_EnhancedThroughputGain = ( (0 << 24) | 225 ), + /// \brief The HarmonicCancellationSetup parameter + PARAMETERID_HarmonicCancellationSetup = ( (0 << 24) | 226 ), + /// \brief The EnhancedThroughputCurrentClamp parameter + PARAMETERID_EnhancedThroughputCurrentClamp = ( (0 << 24) | 227 ), + /// \brief The Analog0Filter0CoeffN0 parameter + PARAMETERID_Analog0Filter0CoeffN0 = ( (0 << 24) | 228 ), + /// \brief The Analog0Filter0CoeffN1 parameter + PARAMETERID_Analog0Filter0CoeffN1 = ( (0 << 24) | 229 ), + /// \brief The Analog0Filter0CoeffN2 parameter + PARAMETERID_Analog0Filter0CoeffN2 = ( (0 << 24) | 230 ), + /// \brief The Analog0Filter0CoeffD1 parameter + PARAMETERID_Analog0Filter0CoeffD1 = ( (0 << 24) | 231 ), + /// \brief The Analog0Filter0CoeffD2 parameter + PARAMETERID_Analog0Filter0CoeffD2 = ( (0 << 24) | 232 ), + /// \brief The Analog0Filter1CoeffN0 parameter + PARAMETERID_Analog0Filter1CoeffN0 = ( (0 << 24) | 233 ), + /// \brief The Analog0Filter1CoeffN1 parameter + PARAMETERID_Analog0Filter1CoeffN1 = ( (0 << 24) | 234 ), + /// \brief The Analog0Filter1CoeffN2 parameter + PARAMETERID_Analog0Filter1CoeffN2 = ( (0 << 24) | 235 ), + /// \brief The Analog0Filter1CoeffD1 parameter + PARAMETERID_Analog0Filter1CoeffD1 = ( (0 << 24) | 236 ), + /// \brief The Analog0Filter1CoeffD2 parameter + PARAMETERID_Analog0Filter1CoeffD2 = ( (0 << 24) | 237 ), + /// \brief The Analog1Filter0CoeffN0 parameter + PARAMETERID_Analog1Filter0CoeffN0 = ( (0 << 24) | 238 ), + /// \brief The Analog1Filter0CoeffN1 parameter + PARAMETERID_Analog1Filter0CoeffN1 = ( (0 << 24) | 239 ), + /// \brief The Analog1Filter0CoeffN2 parameter + PARAMETERID_Analog1Filter0CoeffN2 = ( (0 << 24) | 240 ), + /// \brief The Analog1Filter0CoeffD1 parameter + PARAMETERID_Analog1Filter0CoeffD1 = ( (0 << 24) | 241 ), + /// \brief The Analog1Filter0CoeffD2 parameter + PARAMETERID_Analog1Filter0CoeffD2 = ( (0 << 24) | 242 ), + /// \brief The Analog1Filter1CoeffN0 parameter + PARAMETERID_Analog1Filter1CoeffN0 = ( (0 << 24) | 243 ), + /// \brief The Analog1Filter1CoeffN1 parameter + PARAMETERID_Analog1Filter1CoeffN1 = ( (0 << 24) | 244 ), + /// \brief The Analog1Filter1CoeffN2 parameter + PARAMETERID_Analog1Filter1CoeffN2 = ( (0 << 24) | 245 ), + /// \brief The Analog1Filter1CoeffD1 parameter + PARAMETERID_Analog1Filter1CoeffD1 = ( (0 << 24) | 246 ), + /// \brief The Analog1Filter1CoeffD2 parameter + PARAMETERID_Analog1Filter1CoeffD2 = ( (0 << 24) | 247 ), + /// \brief The GlobalStrings parameter + PARAMETERID_GlobalStrings = ( (0 << 24) | 248 ), + /// \brief The DefaultCoordinatedRampMode parameter + PARAMETERID_DefaultCoordinatedRampMode = ( (0 << 24) | 249 ), + /// \brief The DefaultCoordinatedRampTime parameter + PARAMETERID_DefaultCoordinatedRampTime = ( (0 << 24) | 250 ), + /// \brief The DefaultCoordinatedRampDistance parameter + PARAMETERID_DefaultCoordinatedRampDistance = ( (0 << 24) | 251 ), + /// \brief The DefaultRampMode parameter + PARAMETERID_DefaultRampMode = ( (0 << 24) | 252 ), + /// \brief The DefaultRampTime parameter + PARAMETERID_DefaultRampTime = ( (0 << 24) | 253 ), + /// \brief The DefaultRampDistance parameter + PARAMETERID_DefaultRampDistance = ( (0 << 24) | 254 ), + /// \brief The ServoFilterSetup parameter + PARAMETERID_ServoFilterSetup = ( (0 << 24) | 255 ), + /// \brief The FeedbackSetup parameter + PARAMETERID_FeedbackSetup = ( (0 << 24) | 256 ), + /// \brief The EncoderMultiplierSetup parameter + PARAMETERID_EncoderMultiplierSetup = ( (0 << 24) | 257 ), + /// \brief The FaultSetup parameter + PARAMETERID_FaultSetup = ( (0 << 24) | 258 ), + /// \brief The ThresholdScheduleSetup parameter + PARAMETERID_ThresholdScheduleSetup = ( (0 << 24) | 259 ), + /// \brief The ThresholdRegion2High parameter + PARAMETERID_ThresholdRegion2High = ( (0 << 24) | 260 ), + /// \brief The ThresholdRegion2Low parameter + PARAMETERID_ThresholdRegion2Low = ( (0 << 24) | 261 ), + /// \brief The ThresholdRegion3GainKpos parameter + PARAMETERID_ThresholdRegion3GainKpos = ( (0 << 24) | 262 ), + /// \brief The ThresholdRegion3GainKp parameter + PARAMETERID_ThresholdRegion3GainKp = ( (0 << 24) | 263 ), + /// \brief The ThresholdRegion3GainKi parameter + PARAMETERID_ThresholdRegion3GainKi = ( (0 << 24) | 264 ), + /// \brief The ThresholdRegion3GainKpi parameter + PARAMETERID_ThresholdRegion3GainKpi = ( (0 << 24) | 265 ), + /// \brief The ThresholdRegion4High parameter + PARAMETERID_ThresholdRegion4High = ( (0 << 24) | 266 ), + /// \brief The ThresholdRegion4Low parameter + PARAMETERID_ThresholdRegion4Low = ( (0 << 24) | 267 ), + /// \brief The ThresholdRegion5GainKpos parameter + PARAMETERID_ThresholdRegion5GainKpos = ( (0 << 24) | 268 ), + /// \brief The ThresholdRegion5GainKp parameter + PARAMETERID_ThresholdRegion5GainKp = ( (0 << 24) | 269 ), + /// \brief The ThresholdRegion5GainKi parameter + PARAMETERID_ThresholdRegion5GainKi = ( (0 << 24) | 270 ), + /// \brief The ThresholdRegion5GainKpi parameter + PARAMETERID_ThresholdRegion5GainKpi = ( (0 << 24) | 271 ), + /// \brief The DynamicScheduleSetup parameter + PARAMETERID_DynamicScheduleSetup = ( (0 << 24) | 272 ), + /// \brief The DynamicGainKposScale parameter + PARAMETERID_DynamicGainKposScale = ( (0 << 24) | 273 ), + /// \brief The DynamicGainKpScale parameter + PARAMETERID_DynamicGainKpScale = ( (0 << 24) | 274 ), + /// \brief The DynamicGainKiScale parameter + PARAMETERID_DynamicGainKiScale = ( (0 << 24) | 275 ), + /// \brief The ServoFilter4CoeffN0 parameter + PARAMETERID_ServoFilter4CoeffN0 = ( (0 << 24) | 276 ), + /// \brief The ServoFilter4CoeffN1 parameter + PARAMETERID_ServoFilter4CoeffN1 = ( (0 << 24) | 277 ), + /// \brief The ServoFilter4CoeffN2 parameter + PARAMETERID_ServoFilter4CoeffN2 = ( (0 << 24) | 278 ), + /// \brief The ServoFilter4CoeffD1 parameter + PARAMETERID_ServoFilter4CoeffD1 = ( (0 << 24) | 279 ), + /// \brief The ServoFilter4CoeffD2 parameter + PARAMETERID_ServoFilter4CoeffD2 = ( (0 << 24) | 280 ), + /// \brief The ServoFilter5CoeffN0 parameter + PARAMETERID_ServoFilter5CoeffN0 = ( (0 << 24) | 281 ), + /// \brief The ServoFilter5CoeffN1 parameter + PARAMETERID_ServoFilter5CoeffN1 = ( (0 << 24) | 282 ), + /// \brief The ServoFilter5CoeffN2 parameter + PARAMETERID_ServoFilter5CoeffN2 = ( (0 << 24) | 283 ), + /// \brief The ServoFilter5CoeffD1 parameter + PARAMETERID_ServoFilter5CoeffD1 = ( (0 << 24) | 284 ), + /// \brief The ServoFilter5CoeffD2 parameter + PARAMETERID_ServoFilter5CoeffD2 = ( (0 << 24) | 285 ), + /// \brief The ServoFilter6CoeffN0 parameter + PARAMETERID_ServoFilter6CoeffN0 = ( (0 << 24) | 286 ), + /// \brief The ServoFilter6CoeffN1 parameter + PARAMETERID_ServoFilter6CoeffN1 = ( (0 << 24) | 287 ), + /// \brief The ServoFilter6CoeffN2 parameter + PARAMETERID_ServoFilter6CoeffN2 = ( (0 << 24) | 288 ), + /// \brief The ServoFilter6CoeffD1 parameter + PARAMETERID_ServoFilter6CoeffD1 = ( (0 << 24) | 289 ), + /// \brief The ServoFilter6CoeffD2 parameter + PARAMETERID_ServoFilter6CoeffD2 = ( (0 << 24) | 290 ), + /// \brief The ServoFilter7CoeffN0 parameter + PARAMETERID_ServoFilter7CoeffN0 = ( (0 << 24) | 291 ), + /// \brief The ServoFilter7CoeffN1 parameter + PARAMETERID_ServoFilter7CoeffN1 = ( (0 << 24) | 292 ), + /// \brief The ServoFilter7CoeffN2 parameter + PARAMETERID_ServoFilter7CoeffN2 = ( (0 << 24) | 293 ), + /// \brief The ServoFilter7CoeffD1 parameter + PARAMETERID_ServoFilter7CoeffD1 = ( (0 << 24) | 294 ), + /// \brief The ServoFilter7CoeffD2 parameter + PARAMETERID_ServoFilter7CoeffD2 = ( (0 << 24) | 295 ), + /// \brief The LinearAmpMaxPower parameter + PARAMETERID_LinearAmpMaxPower = ( (0 << 24) | 296 ), + /// \brief The LinearAmpDeratingFactor parameter + PARAMETERID_LinearAmpDeratingFactor = ( (0 << 24) | 297 ), + /// \brief The LinearAmpBusVoltage parameter + PARAMETERID_LinearAmpBusVoltage = ( (0 << 24) | 298 ), + /// \brief The MotorResistance parameter + PARAMETERID_MotorResistance = ( (0 << 24) | 299 ), + /// \brief The MotorBackEMFConstant parameter + PARAMETERID_MotorBackEMFConstant = ( (0 << 24) | 300 ), + /// \brief The GantrySetup parameter + PARAMETERID_GantrySetup = ( (0 << 24) | 302 ), + /// \brief The RolloverMode parameter + PARAMETERID_RolloverMode = ( (0 << 24) | 303 ), + /// \brief The EmulatedQuadratureChannel parameter + PARAMETERID_EmulatedQuadratureChannel = ( (0 << 24) | 305 ), + /// \brief The ResolverCoarseChannel parameter + PARAMETERID_ResolverCoarseChannel = ( (0 << 24) | 306 ), + /// \brief The ResolverFeedbackRatio parameter + PARAMETERID_ResolverFeedbackRatio = ( (0 << 24) | 307 ), + /// \brief The ResolverFeedbackOffset parameter + PARAMETERID_ResolverFeedbackOffset = ( (0 << 24) | 308 ), + /// \brief The BrakeEnableDelay parameter + PARAMETERID_BrakeEnableDelay = ( (0 << 24) | 309 ), + /// \brief The InPositionTime parameter + PARAMETERID_InPositionTime = ( (0 << 24) | 319 ), + /// \brief The StaticFrictionCompensation parameter + PARAMETERID_StaticFrictionCompensation = ( (0 << 24) | 324 ), + /// \brief The ExternalFaultAnalogInput parameter + PARAMETERID_ExternalFaultAnalogInput = ( (0 << 24) | 424 ), + /// \brief The ExternalFaultThreshold parameter + PARAMETERID_ExternalFaultThreshold = ( (0 << 24) | 425 ), + /// \brief The DisplayAxes parameter + PARAMETERID_DisplayAxes = ( (0 << 24) | 426 ), + /// \brief The DefaultDependentCoordinatedSpeed parameter + PARAMETERID_DefaultDependentCoordinatedSpeed = ( (0 << 24) | 427 ), + /// \brief The AnalogFilterSetup parameter + PARAMETERID_AnalogFilterSetup = ( (0 << 24) | 482 ), + /// \brief The DefaultRampType parameter + PARAMETERID_DefaultRampType = ( (0 << 24) | 485 ), + /// \brief The ModbusMasterSlaveIPAddress parameter + PARAMETERID_ModbusMasterSlaveIPAddress = ( (0 << 24) | 489 ), + /// \brief The ModbusMasterSlavePort parameter + PARAMETERID_ModbusMasterSlavePort = ( (0 << 24) | 490 ), + /// \brief The ModbusMasterSlaveID parameter + PARAMETERID_ModbusMasterSlaveID = ( (0 << 24) | 491 ), + /// \brief The ModbusMasterInputWords parameter + PARAMETERID_ModbusMasterInputWords = ( (0 << 24) | 492 ), + /// \brief The ModbusMasterOutputWords parameter + PARAMETERID_ModbusMasterOutputWords = ( (0 << 24) | 493 ), + /// \brief The ModbusMasterInputBits parameter + PARAMETERID_ModbusMasterInputBits = ( (0 << 24) | 494 ), + /// \brief The ModbusMasterOutputBits parameter + PARAMETERID_ModbusMasterOutputBits = ( (0 << 24) | 495 ), + /// \brief The ModbusMasterSetup parameter + PARAMETERID_ModbusMasterSetup = ( (0 << 24) | 496 ), + /// \brief The ModbusMasterVirtualInputs parameter + PARAMETERID_ModbusMasterVirtualInputs = ( (0 << 24) | 499 ), + /// \brief The ModbusMasterVirtualOutputs parameter + PARAMETERID_ModbusMasterVirtualOutputs = ( (0 << 24) | 500 ), + /// \brief The ModbusMasterOutputWordsSections parameter + PARAMETERID_ModbusMasterOutputWordsSections = ( (0 << 24) | 501 ), + /// \brief The ModbusMasterOutputBitsSections parameter + PARAMETERID_ModbusMasterOutputBitsSections = ( (0 << 24) | 502 ), + /// \brief The ModbusMasterRWReadOffset parameter + PARAMETERID_ModbusMasterRWReadOffset = ( (0 << 24) | 503 ), + /// \brief The ModbusMasterInputWordsOffset parameter + PARAMETERID_ModbusMasterInputWordsOffset = ( (0 << 24) | 504 ), + /// \brief The ModbusMasterOutputWordsOffset parameter + PARAMETERID_ModbusMasterOutputWordsOffset = ( (0 << 24) | 505 ), + /// \brief The ModbusMasterInputBitsOffset parameter + PARAMETERID_ModbusMasterInputBitsOffset = ( (0 << 24) | 506 ), + /// \brief The ModbusMasterOutputBitsOffset parameter + PARAMETERID_ModbusMasterOutputBitsOffset = ( (0 << 24) | 507 ), + /// \brief The ModbusMasterStatusWordsOffset parameter + PARAMETERID_ModbusMasterStatusWordsOffset = ( (0 << 24) | 508 ), + /// \brief The ModbusMasterStatusBitsOffset parameter + PARAMETERID_ModbusMasterStatusBitsOffset = ( (0 << 24) | 509 ), + /// \brief The ModbusMasterVirtualInputsOffset parameter + PARAMETERID_ModbusMasterVirtualInputsOffset = ( (0 << 24) | 510 ), + /// \brief The ModbusMasterVirtualOutputsOffset parameter + PARAMETERID_ModbusMasterVirtualOutputsOffset = ( (0 << 24) | 511 ), + /// \brief The ModbusMasterRWWriteOffset parameter + PARAMETERID_ModbusMasterRWWriteOffset = ( (0 << 24) | 512 ), + /// \brief The ModbusMasterFunctions parameter + PARAMETERID_ModbusMasterFunctions = ( (0 << 24) | 513 ), + /// \brief The ModbusMasterSlaveType parameter + PARAMETERID_ModbusMasterSlaveType = ( (0 << 24) | 514 ), + /// \brief The ModbusSlaveUnitID parameter + PARAMETERID_ModbusSlaveUnitID = ( (0 << 24) | 516 ), + /// \brief The ModbusSlaveInputWords parameter + PARAMETERID_ModbusSlaveInputWords = ( (0 << 24) | 517 ), + /// \brief The ModbusSlaveOutputWords parameter + PARAMETERID_ModbusSlaveOutputWords = ( (0 << 24) | 518 ), + /// \brief The ModbusSlaveInputBits parameter + PARAMETERID_ModbusSlaveInputBits = ( (0 << 24) | 519 ), + /// \brief The ModbusSlaveOutputBits parameter + PARAMETERID_ModbusSlaveOutputBits = ( (0 << 24) | 520 ), + /// \brief The ModbusSlaveInputWordsOffset parameter + PARAMETERID_ModbusSlaveInputWordsOffset = ( (0 << 24) | 521 ), + /// \brief The ModbusSlaveOutputWordsOffset parameter + PARAMETERID_ModbusSlaveOutputWordsOffset = ( (0 << 24) | 522 ), + /// \brief The ModbusSlaveInputBitsOffset parameter + PARAMETERID_ModbusSlaveInputBitsOffset = ( (0 << 24) | 523 ), + /// \brief The ModbusSlaveOutputBitsOffset parameter + PARAMETERID_ModbusSlaveOutputBitsOffset = ( (0 << 24) | 524 ), + /// \brief The ModbusSlaveRWReadOffset parameter + PARAMETERID_ModbusSlaveRWReadOffset = ( (0 << 24) | 525 ), + /// \brief The ModbusSlaveRWWriteOffset parameter + PARAMETERID_ModbusSlaveRWWriteOffset = ( (0 << 24) | 526 ), + /// \brief The CurrentOffsetA parameter + PARAMETERID_CurrentOffsetA = ( (0 << 24) | 662 ), + /// \brief The CurrentOffsetB parameter + PARAMETERID_CurrentOffsetB = ( (0 << 24) | 663 ), + /// \brief The FaultAckMoveOutOfLimit parameter + PARAMETERID_FaultAckMoveOutOfLimit = ( (0 << 24) | 665 ), + /// \brief The CommandShaperSetup parameter + PARAMETERID_CommandShaperSetup = ( (0 << 24) | 666 ), + /// \brief The CommandShaperTime00 parameter + PARAMETERID_CommandShaperTime00 = ( (0 << 24) | 667 ), + /// \brief The CommandShaperTime01 parameter + PARAMETERID_CommandShaperTime01 = ( (0 << 24) | 668 ), + /// \brief The CommandShaperTime02 parameter + PARAMETERID_CommandShaperTime02 = ( (0 << 24) | 669 ), + /// \brief The CommandShaperTime03 parameter + PARAMETERID_CommandShaperTime03 = ( (0 << 24) | 670 ), + /// \brief The CommandShaperTime04 parameter + PARAMETERID_CommandShaperTime04 = ( (0 << 24) | 671 ), + /// \brief The CommandShaperTime05 parameter + PARAMETERID_CommandShaperTime05 = ( (0 << 24) | 672 ), + /// \brief The CommandShaperTime06 parameter + PARAMETERID_CommandShaperTime06 = ( (0 << 24) | 673 ), + /// \brief The CommandShaperTime07 parameter + PARAMETERID_CommandShaperTime07 = ( (0 << 24) | 674 ), + /// \brief The CommandShaperTime08 parameter + PARAMETERID_CommandShaperTime08 = ( (0 << 24) | 675 ), + /// \brief The CommandShaperTime09 parameter + PARAMETERID_CommandShaperTime09 = ( (0 << 24) | 676 ), + /// \brief The CommandShaperTime10 parameter + PARAMETERID_CommandShaperTime10 = ( (0 << 24) | 677 ), + /// \brief The CommandShaperTime11 parameter + PARAMETERID_CommandShaperTime11 = ( (0 << 24) | 678 ), + /// \brief The CommandShaperTime12 parameter + PARAMETERID_CommandShaperTime12 = ( (0 << 24) | 679 ), + /// \brief The CommandShaperTime13 parameter + PARAMETERID_CommandShaperTime13 = ( (0 << 24) | 680 ), + /// \brief The CommandShaperTime14 parameter + PARAMETERID_CommandShaperTime14 = ( (0 << 24) | 681 ), + /// \brief The CommandShaperTime15 parameter + PARAMETERID_CommandShaperTime15 = ( (0 << 24) | 682 ), + /// \brief The CommandShaperCoeff00 parameter + PARAMETERID_CommandShaperCoeff00 = ( (0 << 24) | 683 ), + /// \brief The CommandShaperCoeff01 parameter + PARAMETERID_CommandShaperCoeff01 = ( (0 << 24) | 684 ), + /// \brief The CommandShaperCoeff02 parameter + PARAMETERID_CommandShaperCoeff02 = ( (0 << 24) | 685 ), + /// \brief The CommandShaperCoeff03 parameter + PARAMETERID_CommandShaperCoeff03 = ( (0 << 24) | 686 ), + /// \brief The CommandShaperCoeff04 parameter + PARAMETERID_CommandShaperCoeff04 = ( (0 << 24) | 687 ), + /// \brief The CommandShaperCoeff05 parameter + PARAMETERID_CommandShaperCoeff05 = ( (0 << 24) | 688 ), + /// \brief The CommandShaperCoeff06 parameter + PARAMETERID_CommandShaperCoeff06 = ( (0 << 24) | 689 ), + /// \brief The CommandShaperCoeff07 parameter + PARAMETERID_CommandShaperCoeff07 = ( (0 << 24) | 690 ), + /// \brief The CommandShaperCoeff08 parameter + PARAMETERID_CommandShaperCoeff08 = ( (0 << 24) | 691 ), + /// \brief The CommandShaperCoeff09 parameter + PARAMETERID_CommandShaperCoeff09 = ( (0 << 24) | 692 ), + /// \brief The CommandShaperCoeff10 parameter + PARAMETERID_CommandShaperCoeff10 = ( (0 << 24) | 693 ), + /// \brief The CommandShaperCoeff11 parameter + PARAMETERID_CommandShaperCoeff11 = ( (0 << 24) | 694 ), + /// \brief The CommandShaperCoeff12 parameter + PARAMETERID_CommandShaperCoeff12 = ( (0 << 24) | 695 ), + /// \brief The CommandShaperCoeff13 parameter + PARAMETERID_CommandShaperCoeff13 = ( (0 << 24) | 696 ), + /// \brief The CommandShaperCoeff14 parameter + PARAMETERID_CommandShaperCoeff14 = ( (0 << 24) | 697 ), + /// \brief The CommandShaperCoeff15 parameter + PARAMETERID_CommandShaperCoeff15 = ( (0 << 24) | 698 ), + /// \brief The CommandShaper0Type parameter + PARAMETERID_CommandShaper0Type = ( (0 << 24) | 703 ), + /// \brief The CommandShaper0Frequency parameter + PARAMETERID_CommandShaper0Frequency = ( (0 << 24) | 704 ), + /// \brief The CommandShaper0Damping parameter + PARAMETERID_CommandShaper0Damping = ( (0 << 24) | 705 ), + /// \brief The CommandShaper1Type parameter + PARAMETERID_CommandShaper1Type = ( (0 << 24) | 706 ), + /// \brief The CommandShaper1Frequency parameter + PARAMETERID_CommandShaper1Frequency = ( (0 << 24) | 707 ), + /// \brief The CommandShaper1Damping parameter + PARAMETERID_CommandShaper1Damping = ( (0 << 24) | 708 ), + /// \brief The ResoluteEncoderSetup parameter + PARAMETERID_ResoluteEncoderSetup = ( (0 << 24) | 715 ), + /// \brief The ResoluteEncoderResolution parameter + PARAMETERID_ResoluteEncoderResolution = ( (0 << 24) | 716 ), + /// \brief The ResoluteEncoderUserResolution parameter + PARAMETERID_ResoluteEncoderUserResolution = ( (0 << 24) | 717 ), + /// \brief The AutofocusInput parameter + PARAMETERID_AutofocusInput = ( (0 << 24) | 721 ), + /// \brief The AutofocusTarget parameter + PARAMETERID_AutofocusTarget = ( (0 << 24) | 722 ), + /// \brief The AutofocusDeadband parameter + PARAMETERID_AutofocusDeadband = ( (0 << 24) | 723 ), + /// \brief The AutofocusGainKi parameter + PARAMETERID_AutofocusGainKi = ( (0 << 24) | 724 ), + /// \brief The AutofocusGainKp parameter + PARAMETERID_AutofocusGainKp = ( (0 << 24) | 725 ), + /// \brief The AutofocusLimitLow parameter + PARAMETERID_AutofocusLimitLow = ( (0 << 24) | 726 ), + /// \brief The AutofocusLimitHigh parameter + PARAMETERID_AutofocusLimitHigh = ( (0 << 24) | 727 ), + /// \brief The AutofocusSpeedClamp parameter + PARAMETERID_AutofocusSpeedClamp = ( (0 << 24) | 728 ), + /// \brief The AutofocusHoldInput parameter + PARAMETERID_AutofocusHoldInput = ( (0 << 24) | 729 ), + /// \brief The AutofocusSetup parameter + PARAMETERID_AutofocusSetup = ( (0 << 24) | 730 ), + /// \brief The ExternalSyncFrequency parameter + PARAMETERID_ExternalSyncFrequency = ( (0 << 24) | 731 ), + /// \brief The GainPff parameter + PARAMETERID_GainPff = ( (0 << 24) | 762 ), + /// \brief The AutofocusInitialRampTime parameter + PARAMETERID_AutofocusInitialRampTime = ( (0 << 24) | 763 ), + /// \brief The SoftwareExternalFaultInput parameter + PARAMETERID_SoftwareExternalFaultInput = ( (0 << 24) | 765 ), + /// \brief The AutofocusGainKi2 parameter + PARAMETERID_AutofocusGainKi2 = ( (0 << 24) | 769 ), + /// \brief The EnDatEncoderIncrementalResolution parameter + PARAMETERID_EnDatEncoderIncrementalResolution = ( (0 << 24) | 770 ), + /// \brief The MarkerSearchThreshold parameter + PARAMETERID_MarkerSearchThreshold = ( (0 << 24) | 771 ), + /// \brief The GainKd1 parameter + PARAMETERID_GainKd1 = ( (0 << 24) | 779 ), + /// \brief The GainKp1 parameter + PARAMETERID_GainKp1 = ( (0 << 24) | 780 ), + /// \brief The VelocityCommandThresholdBeforeHome parameter + PARAMETERID_VelocityCommandThresholdBeforeHome = ( (0 << 24) | 781 ), + /// \brief The InPosition2Distance parameter + PARAMETERID_InPosition2Distance = ( (0 << 24) | 789 ), + /// \brief The InPosition2Time parameter + PARAMETERID_InPosition2Time = ( (0 << 24) | 790 ), + /// \brief The StepperRunningCurrentDelay parameter + PARAMETERID_StepperRunningCurrentDelay = ( (0 << 24) | 791 ), + /// \brief The ExternalVelocityAverageTime parameter + PARAMETERID_ExternalVelocityAverageTime = ( (0 << 24) | 792 ), + /// \brief The Class1InputIntegers parameter + PARAMETERID_Class1InputIntegers = ( (0 << 24) | 794 ), + /// \brief The Class1InputIntegersOffset parameter + PARAMETERID_Class1InputIntegersOffset = ( (0 << 24) | 795 ), + /// \brief The Class1OutputIntegers parameter + PARAMETERID_Class1OutputIntegers = ( (0 << 24) | 796 ), + /// \brief The Class1OutputIntegersOffset parameter + PARAMETERID_Class1OutputIntegersOffset = ( (0 << 24) | 797 ), + /// \brief The Class1InputDoubles parameter + PARAMETERID_Class1InputDoubles = ( (0 << 24) | 798 ), + /// \brief The Class1InputDoublesOffset parameter + PARAMETERID_Class1InputDoublesOffset = ( (0 << 24) | 799 ), + /// \brief The Class1OutputDoubles parameter + PARAMETERID_Class1OutputDoubles = ( (0 << 24) | 800 ), + /// \brief The Class1OutputDoublesOffset parameter + PARAMETERID_Class1OutputDoublesOffset = ( (0 << 24) | 801 ), + /// \brief The AbsoluteFeedbackOffset parameter + PARAMETERID_AbsoluteFeedbackOffset = ( (0 << 24) | 802 ), + /// \brief The PiezoSetup parameter + PARAMETERID_PiezoSetup = ( (0 << 24) | 803 ), + /// \brief The CapSensorFilterLength parameter + PARAMETERID_CapSensorFilterLength = ( (0 << 24) | 804 ), + /// \brief The EnhancedTrackingScale parameter + PARAMETERID_EnhancedTrackingScale = ( (0 << 24) | 805 ), + /// \brief The EnhancedTrackingBandwidth parameter + PARAMETERID_EnhancedTrackingBandwidth = ( (0 << 24) | 806 ), + /// \brief The Analog0InputOffset parameter + PARAMETERID_Analog0InputOffset = ( (0 << 24) | 807 ), + /// \brief The Analog1InputOffset parameter + PARAMETERID_Analog1InputOffset = ( (0 << 24) | 808 ), + /// \brief The Analog2InputOffset parameter + PARAMETERID_Analog2InputOffset = ( (0 << 24) | 809 ), + /// \brief The Analog3InputOffset parameter + PARAMETERID_Analog3InputOffset = ( (0 << 24) | 810 ), + /// \brief The EnhancedTrackingSetup parameter + PARAMETERID_EnhancedTrackingSetup = ( (0 << 24) | 811 ), + /// \brief The WebServerSetup parameter + PARAMETERID_WebServerSetup = ( (0 << 24) | 812 ), + /// \brief The WebServerPort parameter + PARAMETERID_WebServerPort = ( (0 << 24) | 813 ), + /// \brief The EncoderMarkerAlignment parameter + PARAMETERID_EncoderMarkerAlignment = ( (0 << 24) | 814 ), + /// \brief The EncoderRadiusThresholdLow parameter + PARAMETERID_EncoderRadiusThresholdLow = ( (0 << 24) | 815 ), + /// \brief The EncoderRadiusThresholdHigh parameter + PARAMETERID_EncoderRadiusThresholdHigh = ( (0 << 24) | 816 ), + /// \brief The GainKsi1 parameter + PARAMETERID_GainKsi1 = ( (0 << 24) | 817 ), + /// \brief The GainKsi2 parameter + PARAMETERID_GainKsi2 = ( (0 << 24) | 818 ), + /// \brief The PiezoVoltsPerUnit parameter + PARAMETERID_PiezoVoltsPerUnit = ( (0 << 24) | 819 ), + /// \brief The PiezoVoltageClampLow parameter + PARAMETERID_PiezoVoltageClampLow = ( (0 << 24) | 820 ), + /// \brief The PiezoVoltageClampHigh parameter + PARAMETERID_PiezoVoltageClampHigh = ( (0 << 24) | 821 ), + /// \brief The PiezoSlewRateClamp parameter + PARAMETERID_PiezoSlewRateClamp = ( (0 << 24) | 822 ), + /// \brief The PiezoDefaultServoState parameter + PARAMETERID_PiezoDefaultServoState = ( (0 << 24) | 823 ), + /// \brief The FeedforwardAdvance parameter + PARAMETERID_FeedforwardAdvance = ( (0 << 24) | 824 ), + /// \brief The CapSensorSetup parameter + PARAMETERID_CapSensorSetup = ( (0 << 24) | 826 ), + /// \brief The CapSensorThresholdLow parameter + PARAMETERID_CapSensorThresholdLow = ( (0 << 24) | 828 ), + /// \brief The CapSensorThresholdHigh parameter + PARAMETERID_CapSensorThresholdHigh = ( (0 << 24) | 829 ), + /// \brief The RequiredStageSerialNumber parameter + PARAMETERID_RequiredStageSerialNumber = ( (0 << 24) | 832 ), + /// \brief The StepperDampingGain parameter + PARAMETERID_StepperDampingGain = ( (0 << 24) | 848 ), + /// \brief The StepperDampingCutoffFrequency parameter + PARAMETERID_StepperDampingCutoffFrequency = ( (0 << 24) | 849 ), +} PARAMETERID; + +#endif // __Ensemble_PARAMETER_ID_H__ diff --git a/motorApp/AerotechSrc/drvEnsembleAsyn.cc b/motorApp/AerotechSrc/drvEnsembleAsyn.cc index 861fce60..92941bc4 100644 --- a/motorApp/AerotechSrc/drvEnsembleAsyn.cc +++ b/motorApp/AerotechSrc/drvEnsembleAsyn.cc @@ -66,7 +66,9 @@ in file LICENSE that is included with this distribution. * where torque is enabled/disabled. * .21 10-14-15 rls - Use "ReverseDirec" parameter to set "HomeSetup" parameter. * .22 05-29-18 rls - To avoid EPICS IOC reboots after parameter file changes, update -* CountsPerUnit everytime torque is enabled. +* CountsPerUnit everytime torque is enabled. +* .23 06-28-18 rls - If disabling torque due to a fault, clear motorAxisProblem so that +* user can Jog off limit switch. */ @@ -95,9 +97,13 @@ in file LICENSE that is included with this distribution. #include "paramLib.h" #include "drvEnsembleAsyn.h" -#include "ParameterId.h" #include "epicsExport.h" +/* NOTE: The following two files are copied from the Ensemble C library include files. +* If changing the driver to target a different version of the Ensemble, copy the following two files from that version's C library include files */ +#include "EnsembleCommonStructures.h" +#include "EnsembleParameterId.h" + motorAxisDrvSET_t motorEnsemble = { 14, @@ -421,7 +427,12 @@ static int motorAxisSetInteger(AXIS_HDL pAxis, motorAxisParam_t function, int va { case motorAxisClosedLoop: if (value == 0) + { + int TravelLimitFaultMask = (1 << AXISFAULTBITS_CwEndOfTravelLimitFaultBit) | (1 << AXISFAULTBITS_CcwEndOfTravelLimitFaultBit); sprintf(outputBuff, "DISABLE @%d", pAxis->axis); + if ((pAxis->lastFault & TravelLimitFaultMask) != 0 ) /* If disabled due to a Travel Limit fault, clear motorAxisProblem. */ + motorParam->setInteger(pAxis->params, motorAxisProblem, 0); + } else { sprintf(outputBuff, getparamstr, pAxis->axis, PARAMETERID_CountsPerUnit);