MotionController Axis MultiAxis IO IOPoint NetworkNode RsiError
Sample Apps Changelog

RapidCode API

MotionControllerabstract

The MotionController object represents the RMP INtime soft motion controller. More...

Attributes

RapidCode Objects
RapidCodeOSOS
 

Static Functions

Creation Methods
static MotionControllerCreateFromSoftware ()
 Initialize and start the RMP EtherCAT controller. More...
 
static MotionControllerCreateFromSoftware (char *RtaPath)
 
static MotionControllerCreate ()
 Initialize and start the RMP EtherCAT controller. More...
 
static MotionControllerCreateFromServer (char *server, int32 serverPort)
 Initialize a SynqNet controller in another computer on a TCP/IP network. More...
 

Functions

Create and Initialize RapidCode Objects
virtual IOIOGet (int32 nodeNumber)=0
 IOGet returns a pointer to an IO object using its node number and initializes its internals. More...
 
virtual AxisAxisGet (int32 axisNumber)=0
 AxisGet returns a pointer to an Axis object and initializes its internals. More...
 
virtual MultiAxisMultiAxisGet (int32 motionSupervisorNumber)=0
 MultiAxisGet returns a pointer to a MultiAxis object and initializes its internals. More...
 
virtual MultiAxisLoadExistingMultiAxis (int32 motionSupervisorNumber)=0
 Get/Create a MultiAxis object from one that already exists (previously setup) on the RMP motion controller firmware.
 
virtual void Delete (void)=0
 Delete the MotionController and all its objects. More...
 
Action
virtual void Reset ()=0
 Reset (power cycle) the controller. More...
 
virtual void Refresh ()=0
 
virtual void Shutdown ()=0
 Shutdown the controller. EtherCAT only – this stops the RMP process.
 
Information
virtual int32 SerialNumberGet (void)=0
 Get the controller's serial number. More...
 
virtual int32 SampleCounterGet ()=0
 Get the current value of the controller's processor's sample counter. More...
 
virtual void SampleWait (uint32 samples)=0
 Wait for controller firmware to execute samples. More...
 
virtual RSIControllerType ControllerTypeGet ()=0
 Get the type of motion controller.
 
virtual char * ServerNameGet ()=0
 Get the name of the server. (Valid if controller type is CLIENT.)
 
virtual int32 ServerPortGet ()=0
 Get the TCP port of the server. (Valid if controller type is CLIENT.)
 
virtual int32 NumberGet ()=0
 Get the zero-based index of this object. More...
 
virtual RSIProcessorType ProcessorTypeGet ()=0
 Get the processor type. More...
 
virtual double ProcessorUsageGet ()=0
 Get the processor usage percent. More...
 
virtual void ProcessorUsageClear ()=0
 Clear the processor usage percent. More...
 
virtual void SampleRateSet (double sampleRate)=0
 
virtual double SampleRateGet ()=0
 
virtual int32 AxisCountGet ()=0
 Get the number of axes processing. More...
 
virtual void AxisCountSet (int32 axisCount)=0
 Set the number of allocated and processed axes in the controller. More...
 
virtual void AxisCountSet (int32 axisCount, bool setMotorFilterSupervisor)=0
 
virtual int32 AxisLicenseCountGet ()=0
 Get the number of licensed Axis objects on this motion controller. If you need more, call RSI.
 
virtual bool MechaWareLicenseGet ()=0
 Returns true if this motion controller is licensed to run MechaWare.
 
virtual int32 MotionCountGet ()=0
 Get the number of Motion Supervisors available in the firmware. More...
 
virtual void MotionCountSet (int32 motionCount)=0
 Set the number of processed Motion Supervisors in the controller. More...
 
virtual int32 UserVersionGet ()=0
 Get a customer designated Version for the application. More...
 
virtual void UserVersionSet (int32 version)=0
 Sets a customer designed Version for the application. More...
 
virtual int32 ExternalMemorySizeGet ()=0
 
virtual void AxisFrameBufferSizeSet (int32 axisNumber, int32 frameBufferSize)=0
 Set Frame buffer size for the axis. More...
 
virtual int32 AxisFrameBufferSizeGet (int32 axisNumber)=0
 Get Frame buffer size for the axis. More...
 
Firmware
virtual char * MpiVersionGet ()=0
 Get the MPI version. More...
 
virtual int32 MpiFirmwareVersionGet ()=0
 Get firwmare version required by this MPI version. More...
 
virtual int32 FirmwareVersionGet ()=0
 Get the firmware version. More...
 
virtual char FirmwareRevisionGet ()=0
 Get the firmware revision. More...
 
virtual int32 FirmwareSubRevisionGet ()=0
 Get the subrevision number of the firmware. More...
 
virtual int32 FirmwareDevelopmentIDGet ()=0
 Get the development ID of the firmware. More...
 
virtual int32 FirmwareOptionGet ()=0
 Get the firmware option number. More...
 
virtual bool HasMechaWare ()=0
 Returns true if this RMP firmware supports MechaWare.
 
virtual int32 MemoryGet (uint64 address)=0
 Read controller memory. More...
 
virtual double MemoryDoubleGet (uint64 address)=0
 Read a 64-bit double value from controller memory. More...
 
virtual void MemoryBlockGet (uint64 address, void *data, int32 size)=0
 Read controller memory. More...
 
virtual void MemorySet (uint64 address, int32 data)=0
 Write a value to controller memory. More...
 
virtual void MemoryDoubleSet (uint64 address, double data)=0
 Write a 64-bit double value to controller memory. More...
 
virtual void MemoryBlockSet (uint64 address, void *data, int32 size)=0
 Set controller memory. More...
 
virtual uint32 FirmwareAddressGet (uint64 hostAddress)=0
 Convert a host controller address to a firmware address. More...
 
virtual uint64 HostAddressGet (uint32 firmwareAddress)=0
 Convert a firmware address to a host controller address. More...
 
virtual int32 SequencerCountGet ()=0
 Get the number of Sequencer available in the firmware. More...
 
virtual void SequencerCountSet (int32 sequencerCount)=0
 Set the number of processed Sequencers in the controller. More...
 
virtual int32 BackgroundCycleCounterGet ()=0
 Get the current value of the controller's processor's background cycle counter. More...
 
virtual uint64 AddressFromStringGet (char *addressName)=0
 Get a controller memory address from string. More...
 
virtual char * StringFromAddressGet (uint64 hostAddress)=0
 Get a human-readable string from a memory address. More...
 
virtual uint64 AddressGet (RSIControllerAddressType type)=0
 Get the an address for some location on the MotionController. More...
 
virtual uint64 AddressGet (RSIControllerAddressType type, int32 objectIndex)=0
 Get the an address for some location on the MotionController. More...
 
virtual bool MotionHoldGateGet (int32 gateNumber)=0
 Get the state of the hold gate. More...
 
virtual void MotionHoldGateSet (int32 gateNumber, bool hold)=0
 Set the Motion Hold Gate. More...
 
Network Interface
virtual RSINetworkTechnologyType NetworkTechnologyTypeGet ()=0
 Get the network technology type EtherCAT.
 
virtual RSINetworkType NetworkTypeGet ()=0
 Returns network type. (Currently only STRING type is supported.)
 
virtual int32 NetworkNodeCountGet ()=0
 
virtual void NetworkStart ()=0
 Start the network with RSINetworkStartupMethodNORMAL.
 
virtual void NetworkStart (RSINetworkStartupMethod startupMethod)=0
 
virtual void NetworkStart (RSINetworkStartMode startMode, RSINetworkStartupMethod startupMethod)=0
 
virtual void NetworkStart (RSINetworkStartMode startMode, RSINetworkStartupMethod startupMethod, uint32 timeoutMilliseconds)=0
 
virtual void NetworkShutdown ()=0
 Shutdown the network. For EtherCAT, this will kill the RMPNetwork process.
 
virtual RSINetworkState NetworkStateGet ()=0
 
virtual int32 NetworkCounterGet ()=0
 Read the network counter. This increments by one for each cycle of the network.
 
virtual int32 NetworkInputCountGet ()=0
 Get the number of PDO inputs found on the network.
 
virtual int32 NetworkInputBitSizeGet (int32 index)=0
 Get the size (in bits) of a network input.
 
virtual int32 NetworkInputBitOffsetGet (int32 index)=0
 
virtual char * NetworkInputNameGet (int32 index)=0
 Get the name of a PDO network input.
 
virtual uint64 NetworkInputValueGet (int32 index)=0
 
virtual uint64 NetworkInputAddressGet (int32 index)=0
 Get the host address for a PDO input.
 
virtual int32 NetworkOutputCountGet ()=0
 Get the number of PDO outputs.
 
virtual int32 NetworkOutputBitSizeGet (int32 index)=0
 Get the size (in bits) of a PDO output.
 
virtual int32 NetworkOutputBitOffsetGet (int32 index)=0
 Get the raw PDO offest for an output.
 
virtual char * NetworkOutputNameGet (int32 index)=0
 Get the name of a PDO output.
 
virtual uint64 NetworkOutputValueGet (int32 index)=0
 Gets the value sent out over EtherCAT. More...
 
virtual void NetworkOutputValueSet (int32 index, uint64 value)=0
 Sets a PDO output directly. More...
 
virtual uint64 NetworkOutputAddressGet (int32 index)=0
 Returns an Address of a Network Output. More...
 
virtual uint64 NetworkOutputAddressGet (int32 index, RSINetworkOutputAddressType type)=0
 Get the network output address for a given output address type.
 
virtual uint64 NetworkOutputIntendedValueGet (int32 index)=0
 Gets the value set by the cyclic RMP processes. More...
 
virtual void NetworkOutputOverrideSet (int32 index, bool outputOverride)=0
 Set NetworkOutputValue to override RMP cyclic value. More...
 
virtual bool NetworkOutputOverrideGet (int32 index)=0
 Gets if the NetworkOutputValue or the RMP cyclic value is exchanged over EtherCAT. More...
 
virtual void NetworkOutputOverrideValueSet (int32 index, uint64 value)=0
 Sets a PDO output directly. More...
 
virtual uint64 NetworkOutputOverrideValueGet (int32 index)=0
 Sets a PDO output directly. More...
 
virtual uint64 NetworkOutputSentValueGet (int32 index)=0
 Gets the value sent out over EtherCAT. More...
 
virtual int32 NetworkLogMessageCountGet ()=0
 
virtual RSINetworkStartError LastNetworkStartErrorGet ()=0
 Get the last (most recent) network start error.
 
virtual char * NetworkLogMessageGet (int32 messageIndex)=0
 
virtual void NetworkTimingEnableSet (bool enable)=0
 Enable or disable the firmware to start timing the network packets.
 
virtual void NetworkTimingClear ()=0
 Clear all the network timing values.
 
virtual uint32 NetworkTimingDeltaGet ()=0
 Get the number of microseconds since the previous network packet was sent.
 
virtual uint32 NetworkTimingMinGet ()=0
 Get the minimum microseconds recorded between network packets.
 
virtual uint32 NetworkTimingMaxGet ()=0
 Get the maximum microseconds recorded between consecutive network packets.
 
virtual void NetworkTimingThresholdLowSet (uint32 microseconds)=0
 Set a low threshold. The RMP will count the number of network packets sent below this threshold (too short between packets).
 
virtual void NetworkTimingThresholdHighSet (uint32 microseconds)=0
 Set a high threshold. The RMP will count the number of network packets sent above this threshold (too long between packets).
 
virtual uint32 NetworkTimingThresholdLowCountGet ()=0
 Get the number of network packets that were sent to quickly (below the low threshold).
 
virtual uint32 NetworkTimingThresholdHighCountGet ()=0
 Get the number of network packets that were sent to slowly (above the high threshold).
 
virtual bool NetworkSynchronizedGet ()=0
 Returns true if the network is synchronized with distributed clocks.
 
Interrupts
virtual void InterruptEnableSet (bool enable)=0
 Control interrupts for this class. More...
 
virtual void InterruptWake ()=0
 Wake all threads waiting for a controller interrupt. More...
 
virtual void SyncInterruptEnableSet (bool enable)=0
 Configure Sync (periodic) interrupts for the controller. More...
 
virtual void SyncInterruptPeriodSet (int32 samples)=0
 Configure the period for the Sync Interrupt on the controller. More...
 
virtual int32 SyncInterruptWait ()=0
 Suspend the current thread until an interrupt arrives from the controller. More...
 
virtual bool ServiceThreadStateGet ()=0
 Returns true if the service thread was started.
 
virtual int32 SyncInterruptHostProcessTimeGet ()=0
 Get the total number of microseconds availble for host processing. More...
 
virtual int32 SyncInterruptHostProcessFlagGet ()=0
 Get the host process flag.
 
virtual void SyncInterruptHostProcessFlagSet (bool value)=0
 Set the Host Process flag. More...
 
virtual bool SyncInterruptHostProcessStatusBitGet ()=0
 See if the host was processing too int32 on previous Sync Interrupt. More...
 
virtual void SyncInterruptHostProcessStatusClear ()=0
 Clear the Host Process status bit. More...
 
virtual void ServiceThreadEnableSet (bool enable)=0
 Enable or disable the service thread. More...
 
Recorder
virtual int32 RecorderCountGet ()=0
 Get the number of Recorder available in the firmware. More...
 
virtual void RecorderCountSet (int32 recorderCount)=0
 Set the number of processed Recorders in the controller. More...
 
virtual void RecorderPeriodSet (int32 samples)=0
 Set the number of samples between records. More...
 
virtual void RecorderPeriodSet (int32 recorderNumber, int32 samples)=0
 
virtual void RecorderCircularBufferSet (bool enable)=0
 Configure recorder as circular buffer (or not). More...
 
virtual void RecorderCircularBufferSet (int32 recorderNumber, bool enable)=0
 
virtual void RecorderDataCountSet (int32 count)=0
 Set the number of data values to be recorded. More...
 
virtual void RecorderDataCountSet (int32 recorderNumber, int32 count)=0
 
virtual void RecorderDataAddressSet (int32 index, uint64 address)=0
 Setup the addresses to be recorded. More...
 
virtual void RecorderDataAddressSet (int32 recorderNumber, int32 index, uint64 address)=0
 
virtual void RecorderConfigureToTriggerOnMotion (Axis *axis, bool triggerOnMotion)=0
 Setup the recorder to trigger on motion. More...
 
virtual void RecorderConfigureToTriggerOnMotion (int32 recorderNumber, Axis *axis, bool triggerOnMotion)=0
 
virtual void RecorderConfigureToTriggerOnMotion (MultiAxis *multiAxis, bool triggerOnMotion)=0
 
virtual void RecorderConfigureToTriggerOnMotion (int32 recorderNumber, MultiAxis *multiAxis, bool triggerOnMotion)=0
 
virtual bool RecorderEnabledGet ()=0
 Determine if the recorder is recording. More...
 
virtual bool RecorderEnabledGet (int32 recorderNumber)=0
 
virtual int32 RecorderRecordCountGet ()=0
 Get the number of records that are stored and ready for reading. More...
 
virtual int32 RecorderRecordCountGet (int32 recorderNumber)=0
 
virtual int32 RecorderRecordMaxCountGet ()=0
 Get the maximum number of records the recorder can store. More...
 
virtual int32 RecorderRecordMaxCountGet (int32 recorderNumber)=0
 
virtual void RecorderStart ()=0
 Start recording data. More...
 
virtual void RecorderStart (int32 recorderNumber)=0
 
virtual void RecorderStop ()=0
 Stop recording data. More...
 
virtual void RecorderStop (int32 recorderNumber)=0
 
virtual int32 * RecorderRecordDataGet ()=0
 Get one record of recorded data. More...
 
virtual int32 * RecorderRecordDataGet (int32 recorderNumber)=0
 
virtual void RecorderRecordDataRetrieve ()=0
 Retrieve one record of recorded data. More...
 
virtual int32 RecorderRecordDataRetrieveBulk (int32 recorderNumber, int32 recordCount)=0
 Retrieve a group of records of recorded data. More...
 
virtual void RecorderRecordDataRetrieve (int32 recorderNumber)=0
 
virtual int32 RecorderRecordDataValueGet (int32 index)=0
 Get one value from a retrieved record. More...
 
virtual int32 RecorderRecordDataValueGet (int32 recorderNumber, int32 index)=0
 
virtual int32 RecorderRecordDataValueGet (int32 recorderNumber, int32 recordIndex, int32 dataIndex)=0
 Get one indexed data value from collected data. More...
 
virtual double RecorderRecordDataDoubleGet (int32 index)=0
 
virtual double RecorderRecordDataDoubleGet (int32 recorderNumber, int32 index)=0
 
virtual double RecorderRecordDataDoubleGet (int32 recorderNumber, int32 recordIndex, int32 dataIndex)=0
 Get one indexed double value from collected data. More...
 
virtual void RecorderBufferHighCountSet (int32 bufferHighCount)=0
 Set the high count for the recording buffer. More...
 
virtual void RecorderBufferHighCountSet (int32 recorderNumber, int32 bufferHighCount)=0
 
virtual void RecorderReset ()=0
 Reset the recorder. More...
 
virtual void RecorderReset (int32 recorderNumber)=0
 
virtual int32 RecorderBufferSizeGet (int32 recorderNumber)=0
 Get Frame buffer size for the Recorder. More...
 
virtual void RecorderBufferSizeSet (int32 recorderNumber, int32 bufferSize)=0
 Set buffer size for the Recorder. More...
 
Compensator
virtual int32 CompensatorCountGet ()=0
 Get the number of Compensators available in the firmware. More...
 
virtual void CompensatorCountSet (int32 compensatorCount)=0
 Set the number of Compensators available in the firmware. More...
 
virtual int32 CompensatorPointCountGet (int32 compensatorNumber)=0
 Get the number of points for use with a Compensator. More...
 
virtual void CompensatorPointCountSet (int32 compensatorNumber, int32 pointCount)=0
 Set the number of points for use with a Compensator. More...
 
virtual int32 CompensatorDimensionGet (int32 compensatorNumber)=0
 Get the dimension of the compensator. More...
 
virtual void CompensatorConfigSet (int32 compensatorNumber, int32 firstInputAxisNumber, RSIAxisMasterType firstInputAxisType, double firstInputAxisMinimum, double firstInputAxisMaximum, double firstInputAxisDelta, int32 secondInputAxisNumber, RSIAxisMasterType secondInputAxisType, double secondInputAxisMinimum, double secondInputAxisMaximum, double secondInputAxisDelta, int32 outputAxisNumber, RSICompensatorOutputType outputType, double *table)=0
 Configure a 2D compensator. More...
 
virtual void CompensatorConfigSet (int32 compensatorNumber, Axis *firstInputAxis, RSIAxisMasterType firstInputAxisType, double firstInputAxisMinimum, double firstInputAxisMaximum, double firstInputAxisDelta, Axis *secondInputAxis, RSIAxisMasterType secondInputAxisType, double secondInputAxisMinimum, double secondInputAxisMaximum, double secondInputAxisDelta, Axis *outputAxis, RSICompensatorOutputType outputType, double *table)=0
 Configure a 2D compensator. More...
 
virtual void CompensatorConfigSet (int32 compensatorNumber, int32 inputAxisNumber, RSIAxisMasterType inputAxisType, double inputAxisMinimum, double inputAxisMaximum, double inputAxisDelta, int32 outputAxisNumber, RSICompensatorOutputType outputType, double *table)=0
 Configure a 1D compensator. More...
 
virtual void CompensatorConfigSet (int32 compensatorNumber, Axis *inputAxis, RSIAxisMasterType inputAxisType, double inputAxisMinimum, double inputAxisMaximum, double inputAxisDelta, Axis *outputAxis, RSICompensatorOutputType outputType, double *table)=0
 Configure a 1D compensator. More...
 
virtual void CompensatorTableSet (int32 compensatorNumber, double *table)=0
 Override the table for a configured compensator. More...
 
virtual void CompensatorTableGet (int32 compensatorNumber, double *table)=0
 Read the table for a configured compensator. More...
 
virtual double CompensatorPositionGet (int32 compensatorNumber)=0
 Get the compensator position. More...
 
virtual void CompensatorTableClear (int32 compensatorNumber)=0
 Sets all values in the compensator table to 0. More...
 
virtual void CompensatorDisable (int32 compensatorNumber)=0
 Disables the compensator only if it will not cause errors. More...
 
virtual void CompensatorDisable (int32 compensatorNumber, bool force)=0
 Disable a compensator with the option to force the action. More...
 
virtual void CompensatorEnable (int32 compensatorNumber)=0
 Enables the compensator only if it will cause no errors. More...
 
User Limits
virtual int32 UserLimitCountGet ()=0
 Get the number of UserLimits processing in the firmware. More...
 
virtual void UserLimitCountSet (int32 userLimitCount)=0
 Set the number of processed UserLimits in the MotionController. More...
 
virtual void UserLimitConfigSet (int32 number, RSIUserLimitTriggerType triggerType, RSIAction action, int32 actionAxis, double duration)=0
 
virtual void UserLimitConfigSet (int32 number, RSIUserLimitTriggerType triggerType, RSIAction action, int32 actionAxis, double duration, bool singleShot)=0
 Configure a User Limit. More...
 
virtual RSIUserLimitTriggerType UserLimitTriggerTypeGet (int32 number)=0
 Get the user limit trigger type.
 
virtual RSIAction UserLimitActionGet (int32 number)=0
 Get the user limit action.
 
virtual int32 UserLimitAxisNumberGet (int32 number)=0
 Get the user limit axis number.
 
virtual double UserLimitDurationGet (int32 number)=0
 Get the user limit duration (seconds).
 
virtual bool UserLimitSingleShotGet (int32 number)=0
 Returns true if the user limit is configured for single-shot.
 
virtual void UserLimitConditionSet (int32 number, int32 conditionNumber, RSIUserLimitLogic logic, uint64 address, uint32 mask, uint32 limitValue)=0
 Set the conditions for a User Limit. More...
 
virtual void UserLimitConditionSet (int32 number, int32 conditionNumber, RSIUserLimitLogic logic, uint64 address, double limitValue)=0
 Set the conditions for a User Limit. More...
 
virtual RSIDataType UserLimitConditionDataTypeGet (int32 number, int32 conditionNumber)=0
 Get the user limit condition data type.
 
virtual RSIUserLimitLogic UserLimitConditionLogicGet (int32 number, int32 conditionNumber)=0
 Get the user limit condition logic.
 
virtual uint64 UserLimitConditionAddressGet (int32 number, int32 conditionNumber)=0
 Get the user limit condition address.
 
virtual uint32 UserLimitConditionMaskGet (int32 number, int32 conditionNumber)=0
 Get the user limit condition mask.
 
virtual int32 UserLimitConditionLimitValueGet (int32 number, int32 conditionNumber)=0
 Get the user limit condition value.
 
virtual double UserLimitConditionLimitValueDoubleGet (int32 number, int32 conditionNumber)=0
 Get the user limit condition limit value (as 64-bit double).
 
virtual void UserLimitOutputSet (int32 number, uint32 andMask, uint32 orMask, uint64 outputPtr, bool enabled)=0
 Configure a User Limit Output block. More...
 
virtual void UserLimitOutputSet (int32 number, int32 valueSet, uint64 outputPtr, bool enabled)=0
 User Limit will output a 32-bit value. More...
 
virtual void UserLimitOutputSet (int32 number, uint64 andMask, uint64 orMask, uint64 outputPtr, bool enabled)=0
 User Limit will output a 64-bit value with an AND and OR masks. More...
 
virtual void UserLimitOutputSet (int32 number, double value, uint64 outputPtr, bool enabled)=0
 
virtual void UserLimitOutputSet (int32 number, RSIDataType dataType, uint64 inputPtr, uint64 outputPtr, bool enabled)=0
 Configure a User Limit Output block to copy a value, then output the value. More...
 
virtual bool UserLimitOutputEnableGet (int32 number)=0
 Returns true if the user limit output is enabled.
 
virtual RSIDataType UserLimitOutputDataTypeGet (int32 number)=0
 Get the user limit output data type.
 
virtual uint64 UserLimitOutputAddressGet (int32 number)=0
 Get the user limit output address. The output will write its value to this address.
 
virtual uint64 UserLimitOutputInputAddressGet (int32 number)=0
 Get the user limit output address. The user limit will output the value stored at this address when the user limit triggers.
 
virtual uint32 UserLimitOutputAndMaskGet (int32 number)=0
 Get the user limit output AND mask.
 
virtual uint32 UserLimitOutputOrMaskGet (int32 number)=0
 Get the user limit output OR mask.
 
virtual int32 UserLimitOutputValueGet (int32 number)=0
 Get the user limit output value.
 
virtual uint64 UserLimitOutputAndMask64Get (int32 number)=0
 Get the user limit outout 64-bit AND mask.
 
virtual uint64 UserLimitOutputOrMask64Get (int32 number)=0
 Get the user limit output 64-bit OR mask.
 
virtual double UserLimitOutputDoubleGet (int32 number)=0
 Get the user limit output 64-bit double value.
 
virtual bool UserLimitStateGet (int32 number)=0
 Get the state of a User Limit. More...
 
virtual bool UserLimitEnableGet (int32 number)=0
 Get the enabled state of a User Limit. More...
 
virtual void UserLimitEnableSet (int32 number, bool enable)=0
 Enable or siable a user limit to be processed by the RMP firmware.
 
virtual void UserLimitDisable (int32 number)=0
 Disable the processing of a User Limit. More...
 
virtual void UserLimitReset (int32 number)=0
 Clear the latched status of a User Limit. More...
 
virtual int32 UserLimitCountMax ()=0
 Get the total number of User Limits available. More...
 
virtual void UserLimitInterruptUserDataAddressSet (int32 number, int32 userDataIndex, uint64 address)=0
 Set the User Data address based on a User Limit trigger. More...
 
virtual uint64 UserLimitInterruptUserDataAddressGet (int32 number, int32 userDataIndex)=0
 Get the user limit interrupt user data address.
 
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 MotionController object represents the RMP INtime soft motion controller.

This class provides an interface to general controller configuration, firmware upload/download, network, and data recording.

The MotionController object is the application software representation of the RMP. It handles motion controller firmware, network, interrupts, controller io, user limits, recorders and sequencers. In every application it is used to initialize your controller, axes, and io.

Examples
AbsoluteMotion.cpp, AbsoluteMotion.cs, AxisSettling.cpp, AxisSettling.cs, AxisStatus.cpp, AxisStatus.cs, Camming.cpp, Camming.cs, Compensator1D.cs, Compensator2D.cs, CompensatorSingleAxis.cs, ConfigAmpFault.cpp, ControllerInterrupts.cpp, CustomEtherCATHome.cpp, CustomHome.cpp, DedicatedIO.cpp, DedicatedIO.cs, ErrorLog.cpp, ErrorLog.cs, FeedRate.cpp, FeedRate.cs, FinalVelocity.cpp, FinalVelocity.cs, Gantry.cpp, Gearing.cpp, Gearing.cs, HardwareLimits.cpp, HardwareLimits.cs, HelperFunctions.cs, HelperFunctions.h, Home.cpp, HomeToNegativeLimit.cpp, HomeToNegativeLimit.cs, HomingWithAKDdrive.cpp, HomingWithAKDdrive.cs, HomingWithDS402drive.cs, IOwithAKD.cpp, Memory.cpp, MotionHoldReleasedByDigitalInput.cpp, MotionHoldReleasedByDigitalInput.cs, MotionHoldReleasedByPosition.cpp, MotionHoldReleasedByPosition.cs, MotionHoldReleasedBySoftwareAddress.cpp, MotionHoldReleasedBySoftwareAddress.cs, MultiaxisMotion.cpp, MultiAxisVelocityMotion.cs, NetworkInputsAndOutputs.cs, PathMotion.cpp, PhantomAxis.cpp, PhantomAxis.cs, PointToPointMultiaxisMotion.cpp, PointToPointMultiaxisMotion.cs, PTmotion.cpp, PTmotion.cs, PTmotionWhileStopping.cpp, PTmotionWhileStopping.cs, PVAJTmotion.cs, PVTmotion.cpp, PVTmotion.cs, PVTmotionMultiAxis.cpp, Recorder.cpp, Recorder.cs, RelativeMotion.cpp, RelativeMotion.cs, SCurveMotion.cpp, SCurveMotion.cs, SettleCriteria.cpp, SetUserUnits.cpp, SetUserUnits.cs, SingleAxisSyncOutputs.cpp, SingleAxisSyncOutputs.cs, StopRate.cpp, StopRate.cs, StreamingMotionBufferManagement.cpp, SyncInterrupt.cpp, SyncOutputWithMotion.cpp, Template.cpp, TouchProbe.cs, UpdateBufferPoints.cpp, UserLimitCommandPositionDirectSet.cs, UserLimitDigitalInputAction.cpp, UserLimitDigitalInputEStopStorePosition.cs, UserLimitDigitalInputOneCondition.cpp, UserLimitDigitalInputOneCondition.cs, UserLimitDigitalInputTwoCondition.cpp, UserLimitFeedRate.cs, UserLimitGainChangeBasedOnPosition.cpp, UserLimitPositionOneCondition.cpp, UserLimitPositionOneCondition.cs, UserLimitStateAction.cpp, VelocitySetByAnalogInputValue.cpp, and VelocitySetByAnalogInputValue.cs.