MultiAxis Class Reference

The SynqNet multi-axis class (for sychronized, coordinated and path motion). More...

Inherits RapidCodeMotion.

List of all members.

Friends

class MotionController

Initialization



void AxisAdd (Axis *axis)
 Add an Axis to a MultiAxis group.
void AxisRemove (Axis *axis)
 Remove an Axis from a MultiAxis group.
void AxisRemoveAll ()
 Remove all axes from a MultiAxis group.

Info



long AxisCountGet ()
 Get the number axes in the MultiAxis class.
AxisAxisGet (long index)
 Get the Axis class used in this MultiAxis class.
long NumberGet ()
 Get the axis number.
void FeedRateSet (double rate)
 Set the feed rate for an Axis.
double FeedRateGet ()
 Get the axis feed rate.

State and Status



RSISource SourceGet ()
 Get the source of an error for the MultiAxis.
bool StatusBitGet (RSIEventType bitMask)
 Return the state of a status bit.
RSIState StateGet ()
 Get axis state.
long MotionDoneWait ()
 Waits for a move to complete.
long MotionDoneWait (long timeoutMilliseconds)
 Waits for a move to complete.
bool MotionDoneGet ()
 Check to see if motion is done and settled.

Coordinated Motion



double VectorVelocityGet ()
 Get the vector velocity.
void VectorVelocitySet (double velocity)
 Set the vector velocity.
double VectorAccelerationGet ()
 Get the vector acceleration.
void VectorAccelerationSet (double acceleration)
 Set the vector acceleration.
double VectorDecelerationGet ()
 Get the vector deceleration.
void VectorDecelerationSet (double deceleration)
 Set the vector deceleration.
double VectorJerkPercentGet ()
 Get the vector jerk percent.
void VectorJerkPercentSet (double jerkPercent)
 Set the jerk percent for a vector move.
void MoveVector (double *position)
 Point-to-point vector move.
void MoveVectorRelative (double *relativePosition)

Path Motion



double PathTimeSliceGet ()
 Set the time slice for the Path.
void PathTimeSliceSet (double seconds)
 Set the time slice for the Path.
void PathRatioSet (double *ratio)
 Set the scale factor ratios for each axis.
double PathRatioGet (long index)
void PathBlendSet (bool blend)
 Set the blending attribute.
void PathListStart (double *startPosition)
 Start a line and arc point list for path motion.
void PathLineAdd (double *position)
 Add a line segment to the path.
void PathArcAdd (double *center, double angle)
 Add an arc segment to the path.
void PathListEnd ()
 End a line and arc point list for path motion.
void PathMotionStart ()
 Start the path motion.

Point to Point Motion



void MoveTrapezoidal (double *position, double *vel, double *accel, double *decel)
 Point-to-point trapezoidal move.
void MoveTrapezoidal (double *position)
void MoveSCurve (double *position, double *vel, double *accel, double *decel, double *jerkPct)
 Point-to-point S-Curve Move.
void MoveSCurve (double *position)
void MoveVelocity (double *velocity, double *accel)
 Velocity move.
void MoveVelocity (double *velocity)
void MoveRelative (double *relativePosition, double *vel, double *accel, double *decel, double *jerkPct)
 Command a relative point-to-point S-Curve motion.
void MoveRelative (double *relativePosition)
void MoveVelocitySCurve (double *velocity, double *accel, double *jerkPct)
 Velocity move with non-constant acceleration.

Motion Configuration



void MotionDelaySet (double seconds)
 Set the time (seconds) that a motion will wait before starting.
virtual long MotionIdExecutingGet ()
double StopTimeGet ()
 Get Stop Event deceleration time.
void StopTimeSet (double seconds)
 Set the deceleration time for a Stop Event.
double EStopTimeGet ()
 Get E-Stop Event deceleration time.
void EStopTimeSet (double seconds)
 Set the deceleration time for an E-Stop Event.
double MotionDelayGet ()
 Get the delay (seconds) that will occur before motion starts.
long MotionIdGet ()
 Get the motion identifier.
void MotionIdSet (long id)
 Set the Motion identifier.
RSIMotionAttrHoldType MotionHoldTypeGet ()
 Get the motion hold attribute type.
void MotionHoldTypeSet (RSIMotionAttrHoldType type)
 Set the motion hold type.
double MotionHoldTimeoutGet ()
 Get the motion hold timeout value.
void MotionHoldTimeoutSet (double seconds)
 Set the motion hold timeout value.
bool MotionHoldGateGet ()
 Get the state of the hold gate.
void MotionHoldGateSet (bool hold)
 Set the Motion Hold Gate.
long MotionHoldAxisNumberGet ()
 Gets the Axis number.
void MotionHoldAxisNumberSet (long number)
 Sets the Axis number for Motion Hold.
long MotionHoldAxisPositionGet ()
 Gets the Axis position.
void MotionHoldAxisPositionSet (double position)
 Sets the Axis position.
long MotionHoldUserAddressGet ()
 Gets the Motion Hold User Address.
void MotionHoldUserAddressSet (long address)
 Sets the Motion Hold User Address.
long MotionHoldUserMaskGet ()
 Gets the Motion Hold User Mask.
void MotionHoldUserMaskSet (long mask)
 Sets the Motion Hold User bit mask.
long MotionHoldUserPatternGet ()
 Gets the Motion Hold user bit pattern.
void MotionHoldUserPatternSet (long pattern)
 Sets the Motion Hold User pattern bit mask.
long MotionAttributeMaskGet ()
 Get the motion attribute mask.
void MotionAttributeMaskSet (long mask)
 Set the motion attribute mask.
void MotionAttributeMaskDefaultSet ()
bool MotionAttributeMaskOnGet (RSIMotionAttrMask maskOn)
 Check to see if a particular motion attribute mask is turned on.
void MotionAttributeMaskOnSet (RSIMotionAttrMask maskOn)
 Turn on a particular motion attribute mask.
void MotionAttributeMaskOffSet (RSIMotionAttrMask maskOff)
 Turn off a particular motion attribute mask.

Action



void Stop ()
 Stop an axis.
void Resume ()
 Resume an axis.
void EStop ()
 E-Stop an axis.
void EStopAbort ()
 E-Stop, then abort an axis.
void EStopModify ()
 E-Stop with a deceleration rate.
void Abort ()
 Abort an axis.
void ClearFaults ()
void AmpEnableSet (bool enable)
 Enable all amplifiers.
void Map ()
 Writes the axis mapping relationship to the Controller.
void Unmap ()
 Removes the axis mapping relationship of the MultiAxis.
virtual void FilterIntegratorReset (MPIMotor motor)

Interrupts



void InterruptEnableSet (bool enable)
 Control interrupts for this class.
void InterruptWake ()
 Wake all threads waiting for an interrupt on this Axis.
RSIEventType InterruptWait (long milliseconds)
 Suspend the current thread until an interrupt arrives from the controller.
char * InterruptNameGet ()
 Get the text name of an interrupt type.
long InterruptSampleTimeGet ()
 Get the sample timer value when the last interrupt was generated.
long InterruptSourceNumberGet ()
 Get the number (or index) of the object (Axis, Motor, etc) that generated the interrupt.
long InterruptMotionIdGet ()
void InterruptMaskClear ()
void InterruptMaskAllSet ()
void InterruptMaskOnSet (RSIEventType eventType)
void InterruptMaskOffSet (RSIEventType eventType)
bool InterruptMaskOnGet (RSIEventType eventType)
virtual void InterruptMaskSet ()

Motion



void MovePT (RSIMotionType type, double *position, double *time, long pointCount, long emptyCount, bool retain, bool final)
 A move commanded by a list of position and time points.
void MovePVT (double *position, double *velocity, double *time, long pointCount, long emptyCount, bool retain, bool final)
 Move commanded by list of positions, velocities, and times.
void MovePVAJT (double *position, double *velocity, double *acceleration, double *jerk, double *time, long pointCount, long emptyCount, bool retain, bool final)

Errors and Exceptions



long ErrorLogCountGet ()
 Get the number of software errors in the error log.
RsiErrorErrorLogGet ()
 Get the next RsiError in the log.
void ErrorLogClear ()
 Clear the error log.
char * RsiErrorMessageGet (RSIErrorMessage msg)
char * ErrorMessageGet (RSIErrorMessage msg)
void ErrorMsgCheck (RapidCodeObject *object, RSIErrorMessage msg, const char *function, long line)
void ErrorMsgCheck (RapidCodeObject *object, RSIErrorMessage msg, const char *text, const char *function, long line)

Exceptions Enabled



void ThrowExceptions (bool state)
 Configure a class to throw exceptions.

RapidCode Version



char * VersionGet ()
 Get the RSI RapidCode version.

Detailed Description

To initalize your multiaxis:

///  multiAxisName = controllerName->MultiAxisGet(MULTIAXIS_MOTION_SUPERVISOR_NUMBER); 
///  multiAxisName->AxisAdd(axisObjectOne);
///  multiAxisName->AxisAdd(axisObjectN);
Examples:

MotionHoldMultiAxisHomeSwitch.cs, multiaxisMotion.cpp, MultiAxisMotion.cs, pathMotion.cpp, PVT_Append.cs, pvtMotion.cpp, PVTTriggerIO.cs, RecordOnMotion.cs, and template.cpp.


The documentation for this class was generated from the following files: