MultiAxis Class Reference

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

Inherits RapidCodeMotion.

List of all members.


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.

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.

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.

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.
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 MoveSCurve (double *position, double *vel, double *accel, double *decel, double *jerkPct)
 Point-to-point S-Curve Move.
void MoveVelocity (double *velocity, double *accel)
 Velocity move.
void MoveRelative (double *relativePosition, double *vel, double *accel, double *decel, double *jerkPct)
 Command a relative point-to-point S-Curve motion.
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.
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.
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.

Info

long NumberGet ()
 Get the axis number.
void FeedRateSet (double rate)
 Set the feed rate for an Axis.
double FeedRateGet ()
 Get the axis feed rate.

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 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.

State and Status

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.

Interrupts

void InterruptEnableSet (bool enable)
 Control interrupts for this class.
void InterruptWake ()
 Wake all threads waiting for an interrupt on this Axis.

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.

Interrupts

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.

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.

Exceptions Enabled

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

RapidCode Version

char * VersionGet ()
 Get the RSI RapidCode version.

Friends

class MotionController

Detailed Description

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

motion2.cpp, MotionHoldMultiAxisHomeSwitch.cs, path1.cpp, pvtQuad.cpp, RecordOnMotion.cs, template.cpp, template.cs, and visualBasicTemplate.cpp.