MotionController Axis MultiAxis IO IOPoint NetworkNode RsiError
Sample Apps Changelog

RapidCode API

MultiAxisabstract

The MultiAxis object allows you to map two or more axes together and command synchronized motion. More...

Attributes

RapidCode Objects
MotionControllerrsiControl
 

Functions

Initialization
virtual void AxisAdd (Axis *axis)=0
 Add an Axis to a MultiAxis group. More...
 
virtual void AxesAdd (Axis **axes, int32 axisCount)=0
 
virtual void AxisRemoveAll ()=0
 Remove all axes from a MultiAxis group.s. More...
 
Information
virtual int32 AxisCountGet ()=0
 Get the number axes in the MultiAxis class. More...
 
virtual AxisAxisGet (int32 index)=0
 Get the Axis class used in this MultiAxis class. More...
 
virtual char * UserLabelGet ()=0
 Get the MultiAxis User defined Label. More...
 
virtual void UserLabelSet (char *userLabel)=0
 Set the MultiAxis User defined Label. More...
 
Coordinated Motion
virtual double VectorVelocityGet ()=0
 Get the vector velocity. More...
 
virtual void VectorVelocitySet (double velocity)=0
 Set the vector velocity. More...
 
virtual double VectorAccelerationGet ()=0
 Get the vector acceleration. More...
 
virtual void VectorAccelerationSet (double acceleration)=0
 Set the vector acceleration. More...
 
virtual double VectorDecelerationGet ()=0
 Get the vector deceleration. More...
 
virtual void VectorDecelerationSet (double deceleration)=0
 Set the vector deceleration. More...
 
virtual double VectorJerkPercentGet ()=0
 Get the vector jerk percent. More...
 
virtual void VectorJerkPercentSet (double jerkPercent)=0
 Set the jerk percent for a vector move. More...
 
virtual void MoveVector (double *position)=0
 Point-to-point vector move. More...
 
virtual void MoveVectorRelative (double *relativePosition)=0
 
Path Motion
virtual double PathTimeSliceGet ()=0
 Set the time slice for the Path. More...
 
virtual void PathTimeSliceSet (double seconds)=0
 Set the time slice for the Path. More...
 
virtual void PathRatioSet (double *ratio)=0
 Set the scale factor ratios for each axis. More...
 
virtual double PathRatioGet (int32 index)=0
 Get the ratio value for a given zero-based index. More...
 
virtual void PathBlendSet (bool blend)=0
 Set the blending attribute. More...
 
virtual void PathPlanTypeSet (RSIPathPlanType type)=0
 Set the path motion planning type. More...
 
virtual RSIPathPlanType PathPlanTypeGet ()=0
 Get the path motion planning type. More...
 
virtual void PathListStart (double *startPosition)=0
 Start a line and arc point list for path motion. More...
 
virtual void PathLineAdd (double *position)=0
 Add a line segment to the path. More...
 
virtual void PathArcAdd (double *center, double angle)=0
 Add an arc segment to the path. More...
 
virtual void PathListEnd ()=0
 End a line and arc point list for path motion. More...
 
virtual void PathMotionStart ()=0
 Start the path motion. More...
 
Point to Point Motion
virtual void MoveTrapezoidal (double *position, double *vel, double *accel, double *decel)=0
 Point-to-point trapezoidal move. More...
 
virtual void MoveTrapezoidal (double *position)=0
 Point-to-point trapezoidal move using default values from each Axis. More...
 
virtual void MoveSCurve (double *position, double *vel, double *accel, double *decel, double *jerkPct)=0
 Point-to-point S-Curve Move. More...
 
virtual void MoveSCurve (double *position)=0
 Point-to-point S-Curve motion using default Axis values. More...
 
virtual void MoveVelocity (double *velocity, double *accel)=0
 Velocity move. More...
 
virtual void MoveVelocity (double *velocity)=0
 Command a velocity move using Axis default values for acceleration and jerk percent. More...
 
virtual void MoveRelative (double *relativePosition, double *vel, double *accel, double *decel, double *jerkPct)=0
 Command a relative point-to-point S-Curve motion. More...
 
virtual void MoveRelative (double *relativePosition)=0
 Command a relative point-to-point S-Curve motion using default values from each Axis. More...
 
virtual void MoveVelocitySCurve (double *velocity, double *accel, double *jerkPct)=0
 Velocity move with non-constant acceleration. More...
 
virtual void MotionDelaySet (double seconds)=0
 Set the time (seconds) that a motion will wait before starting. More...
 
virtual uint16 MotionIdExecutingGet ()=0
 
virtual uint16 MotionElementIdExecutingGet ()=0
 
virtual int AxisMapCountGet ()=0
 Get the number of Axis objects in the Axis map.
 
virtual uint64 AddressGet (RSIMultiAxisAddressType addressType)=0
 Get the host address for some location on the MultiAxis. More...
 
Info
virtual int32 NumberGet ()=0
 Get the axis number. More...
 
Action
virtual void TriggeredModify ()=0
 Modify the currently execuing motion to decelerate the Axis or MultiAxis to a zero velocity IDLE state. More...
 
virtual void Stop ()=0
 Stop an axis. More...
 
virtual void Resume ()=0
 Resume an axis. More...
 
virtual void EStop ()=0
 E-Stop an axis. More...
 
virtual void EStopAbort ()=0
 E-Stop, then abort an axis. More...
 
virtual void EStopModify ()=0
 E-Stop with a deceleration rate. More...
 
virtual void EStopModifyAbort ()=0
 
virtual void Abort ()=0
 Abort an axis. More...
 
virtual void ClearFaults ()=0
 Clear all faults for an Axis or MultiAxis. More...
 
virtual void AmpEnableSet (bool enable)=0
 Enable all amplifiers. More...
 
virtual void Map ()=0
 Writes the axis mapping relationship to the Controller. More...
 
virtual void Unmap ()=0
 Removes the axis mapping relationship of the MultiAxis. More...
 
virtual void FeedRateSet (double rate)=0
 Set the feed rate for an Axis. More...
 
virtual double FeedRateGet ()=0
 Get the axis feed rate. More...
 
State and Status
virtual RSIState StateGet ()=0
 Get the Axis or MultiAxis state. More...
 
virtual RSISource SourceGet ()=0
 Get the source of an error state for an Axis or MultiAxis. More...
 
virtual char * SourceNameGet (RSISource source)=0
 Get the name (string) of the source of an error for an Axis or MultiAxis. More...
 
virtual int32 MotionDoneWait ()=0
 Waits for a move to complete. More...
 
virtual int32 MotionDoneWait (int32 timeoutMilliseconds)=0
 Waits for a move to complete. More...
 
virtual bool MotionDoneGet ()=0
 Check to see if motion is done and settled. More...
 
virtual bool StatusBitGet (RSIEventType bitMask)=0
 Return the state of a status bit. More...
 
Interrupts
virtual void InterruptEnableSet (bool enable)=0
 Control interrupts for this class. More...
 
virtual void InterruptWake ()=0
 Wake all threads waiting for an interrupt on this Axis. More...
 
Motion Configuration
virtual double StopTimeGet ()=0
 Get Stop Event deceleration time. More...
 
virtual void StopTimeSet (double seconds)=0
 Set the deceleration time for a Stop Event. More...
 
virtual double EStopTimeGet ()=0
 Get E-Stop Event deceleration time. More...
 
virtual void EStopTimeSet (double seconds)=0
 Set the deceleration time for an E-Stop Event. More...
 
virtual double MotionDelayGet ()=0
 Get the delay (seconds) that will occur before motion starts. More...
 
virtual uint16 MotionIdGet ()=0
 Get the motion identifier. More...
 
virtual void MotionIdSet (uint16 id)=0
 Set the Motion identifier. More...
 
virtual double MotionFinalVelocityGet ()=0
 Gets final velocity value.
 
virtual void MotionFinalVelocitySet (double finalVelocity)=0
 Sets final velocity value in UserUnits (!!! only used if FINAL_VEL motion attribute is used !!!) More...
 
virtual RSIMotionHoldType MotionHoldTypeGet ()=0
 Get the motion hold attribute type. More...
 
virtual void MotionHoldTypeSet (RSIMotionHoldType type)=0
 Set the motion hold type. More...
 
virtual int32 MotionHoldGateNumberGet ()=0
 Returns the Motion Hold Gate number that the axis or multiaxis is set to. More...
 
virtual void MotionHoldGateNumberSet (int32 gateNumber)=0
 Assigns the axis or multiaxis Motion Hold Gate number to the specified controller gate. More...
 
virtual double MotionHoldTimeoutGet ()=0
 Get the motion hold timeout value. More...
 
virtual void MotionHoldTimeoutSet (double seconds)=0
 Set the motion hold timeout value. More...
 
virtual bool MotionHoldGateGet ()=0
 Get the state of the hold gate. More...
 
virtual void MotionHoldGateSet (bool hold)=0
 Set the Motion Hold Gate. More...
 
virtual int32 MotionHoldAxisNumberGet ()=0
 Gets the Axis number. More...
 
virtual void MotionHoldAxisNumberSet (int32 number)=0
 Sets the Axis number for Motion Hold. More...
 
virtual double MotionHoldAxisPositionGet ()=0
 Gets the Axis position. More...
 
virtual void MotionHoldAxisPositionSet (double position)=0
 Sets the Axis position. More...
 
virtual RSIUserLimitLogic MotionHoldAxisLogicGet ()=0
 Get the logic when holding for Axis ActualPosition.
 
virtual void MotionHoldAxisLogicSet (RSIUserLimitLogic logic)=0
 Set the logic when holding for Axis ActualPosition.
 
virtual uint64 MotionHoldUserAddressGet ()=0
 Gets the Motion Hold User Address. More...
 
virtual void MotionHoldUserAddressSet (uint64 address)=0
 Sets the Motion Hold User Address. More...
 
virtual int32 MotionHoldUserMaskGet ()=0
 Gets the Motion Hold User Mask. More...
 
virtual void MotionHoldUserMaskSet (int32 mask)=0
 Sets the Motion Hold User bit mask. More...
 
virtual int32 MotionHoldUserPatternGet ()=0
 Gets the Motion Hold user bit pattern. More...
 
virtual void MotionHoldUserPatternSet (int32 pattern)=0
 Sets the Motion Hold User pattern bit mask. More...
 
virtual void MotionAttributeMaskDefaultSet ()=0
 Restore the motion attribute mask to the RapidCode default.
 
virtual bool MotionAttributeMaskOnGet (RSIMotionAttrMask maskOn)=0
 Check to see if a particular motion attribute mask is turned on. More...
 
virtual void MotionAttributeMaskOnSet (RSIMotionAttrMask maskOn)=0
 Turn on a particular motion attribute mask. More...
 
virtual void MotionAttributeMaskOffSet (RSIMotionAttrMask maskOff)=0
 Turn off a particular motion attribute mask. More...
 
Streaming Motion
virtual void MovePT (RSIMotionType type, double *position, double *time, int32 pointCount, int32 emptyCount, bool retain, bool final)=0
 A move commanded by a list of position and time points. More...
 
virtual void MovePVT (double *position, double *velocity, double *time, int32 pointCount, int32 emptyCount, bool retain, bool final)=0
 Move commanded by list of positions, velocities, and times. More...
 
virtual void MovePVAJT (double *position, double *velocity, double *acceleration, double *jerk, double *time, int32 pointCount, int32 emptyCount, bool retain, bool final)=0
 
virtual void StreamingOutputAdd (int32 onMask, int32 offMask, uint64 address)=0
 
virtual void StreamingOutputAdd (int32 onMask, int32 offMask, uint64 address, int ptPointIndex)=0
 Applies the on and off bitmasks to the controller's memory address when the motion reaches the specified streaming point index. Used to toggle Digital Outputs and/or memory. More...
 
virtual void StreamingOutputAdd (RapidCode::IOPoint *point, bool on)=0
 
virtual void StreamingOutputAdd (RapidCode::IOPoint *point, bool on, int ptPointIndex)=0
 Sets the state of the specified IOPoint when the motion reaches the specified streaming point index. More...
 
virtual void StreamingOutputsClear ()=0
 Clear the contents of the Streaming Output List. More...
 
virtual void StreamingOutputsEnableSet (bool enable)=0
 Sets whether Streaming Output is enabled (true) or disabled (false). More...
 
Interrupts
virtual RSIEventType InterruptWait (int32 milliseconds)=0
 Suspend the current thread until an interrupt arrives from the controller. More...
 
virtual char * InterruptNameGet ()=0
 Get the text name of an interrupt type. More...
 
virtual int32 InterruptSampleTimeGet ()=0
 Get the sample timer value when the last interrupt was generated. More...
 
virtual int32 InterruptSourceNumberGet ()=0
 Get the number (or index) of the object (Axis, Motor, etc) that generated the interrupt. More...
 
virtual uint16 InterruptMotionIdGet ()=0
 Get the 16-bit MotionId - only valid if RSIEventType == MOTION_DONE.
 
virtual void InterruptMaskClear ()=0
 Clear the interrupt mask so no interrupts will be generated.
 
virtual void InterruptMaskAllSet ()=0
 Set all the bits of the interrupt mask to get interrupts for ALL sources.
 
virtual void InterruptMaskOnSet (RSIEventType eventType)=0
 Set a bit in the interrupt mask so you will get interrupts for the given RSIEventType.
 
virtual void InterruptMaskOffSet (RSIEventType eventType)=0
 Clear a bit in the interrupt mask so you won't get interrupts for the given RSIEventType.
 
virtual bool InterruptMaskOnGet (RSIEventType eventType)=0
 Get the status of the interrupt mask for the given RSIEventType.
 
virtual uint64 InterruptUserDataGet (uint32 index)=0
 Get the user data associated with the interrupt. More...
 
Version
virtual char * VersionGet ()=0
 Get the RSI RapidCode version. More...
 
virtual int32 MpiVersionMajor ()=0
 Get the major version number of the MPI library.
 
virtual int32 MpiVersionMinor ()=0
 Get the minor version number of the MPI library.
 
virtual int32 MpiVersionRelease ()=0
 Get the release version number of the MPI library.
 
virtual int32 RSIVersionMajor ()=0
 Get the major version number of the RSI library.
 
virtual int32 RSIVersionMinor ()=0
 Get the minor version number of the RSI library.
 
virtual int32 RSIVersionMicro ()=0
 Get the micro version number of the RSI library.
 
Errors and Exceptions
virtual int32 ErrorLogCountGet ()=0
 Get the number of software errors in the error log. More...
 
virtual RsiErrorErrorLogGet ()=0
 Get the next RsiError in the log. More...
 
virtual void ErrorLogClear ()=0
 Clear the error log. More...
 
virtual void ThrowExceptions (bool state)=0
 Configure a class to throw exceptions. More...
 
virtual void CacheEnableSet (RSICacheObject cache, bool enable, uint32 expirationMilliseconds)=0
 Configure a class to cache data for specified time. More...
 
virtual char * RsiErrorMessageGet (RSIErrorMessage msg)=0
 Get the RSI-specific error message text for a specific RSIErrorMessage.
 
virtual char * ErrorMessageGet (RSIErrorMessage msg)=0
 Get the detailed text message for an RSIErrorMessage.
 
virtual bool WarningMsgCheck (RSIErrorMessage msg)=0
 Check to see if an RSIErrorMessage is a warning (true) or not (false).
 
Tracing
virtual void Trace (bool state)=0
 Enables/Disables trace output. More...
 
virtual void TraceMaskOnSet (RSITrace maskOn)=0
 Turn on a particular trace output mask. More...
 
virtual bool TraceMaskOnGet (RSITrace maskOn)=0
 Check to see if a particular trace output mask is turned on. More...
 
virtual void TraceMaskOffSet (RSITrace maskOff)=0
 Turn off a particular trace output mask. More...
 
virtual void TraceMaskClear ()=0
 Clear the trace output mask. More...
 
virtual void TraceFileSet (const char *fileName)=0
 Channels Tracing messages to specified file. More...
 
virtual void TraceFileClose ()=0
 Stops Logging to the file. More...
 
virtual void TraceInjectMessage (RSITrace traceLevel, const char *msg)=0
 Add a message to the Trace Log. More...
 

Description

The MultiAxis object allows you to map two or more axes together and command synchronized motion.

This class provides an interface to a group or collection of axes. When axes are mapped together it is easir to command synchronized, coordinated, and/or with path motion.

Examples
MultiaxisMotion.cpp, MultiAxisVelocityMotion.cs, PathMotion.cpp, PointToPointMultiaxisMotion.cpp, PointToPointMultiaxisMotion.cs, PVTmotionMultiAxis.cpp, SyncOutputWithMotion.cpp, Template.cpp, and UpdateBufferPoints.cpp.