.

Descriptions of Error Messages / Return Values

For a list of hexadecimal error codes and corresponding return values see: MPI Error Code Index

A - B - C - D - E - F - G - H - I - J - K - L - M - N - O - P - Q - R - S - T - U - V - W - X - Y - Z


General Return Values

MPIMessageOK
The operation was successful. This message code is returned by a method when the operation completed successfully. If a message code other than MPIMessageOK is returned by a method, then an error occurred or operation status information is being reported. Check return values from ALL method calls. The only exceptions are methods that return object handles. For example, the mpiObjectCreate(...) methods return a handle to an object.

String: Ok

MPIMessageARG_INVALID
An argument is not valid. This message code is returned by a method when one or more arguments fail an integrity check. The following integrity checks are made, depending on the argument types:
-
Pointers and addresses are not NULL.
- Memory addresses are within a valid range.
- Object maps have a valid number of members.

String: Argument invalid

MPIMessagePARAM_INVALID
A parameter is not valid. Parameters are the data inside an argument. This message code is returned by a method when one or more parameters fail an integrity check. The following integrity checks are made, depending on the parameter types:
-
Pointers and addresses in structures are not NULL.
- Memory addresses in structures are within a valid range.
- Object numbers are within a valid range.
- Values in structures are within a valid range.

String: Parameter invalid

MPIMessageHANDLE_INVALID
An object handle is not valid. This message code is returned by a method when the object handle argument is NULL. To correct this problem, create an object using an object create method. For example, to create an axis object use mpiAxisCreate(...).

String: Handle invalid

MPIMessageNO_MEMORY
Memory is not available. This message code is returned by a method when an object, thread or buffer is not created due to a memory allocation failure. All host memory allocation occurs through mpiPlatformAlloc(...). To correct this problem, check your host computer resources and remove unused components or add more memory.
NOTE: Some methods may make several memory allocations or may call other methods that allocate memory. If a memory allocation fails, the previous allocations will not be freed.

String: Host out of memory

MPIMessageOBJECT_FREED
The object has been freed. This message code is set within the object when the object is deleted. This message code is used internally. This message code is returned by an object delete method if the object has already been deleted. To prevent this problem, make sure to delete objects only one time.

String: Object freed

MPIMessageOBJECT_NOT_ENABLED
The object is not active in the controller. This message code is returned by a method if real-time data or a handshake is required between the MPI and the controller, and the specified object is not enabled in the controller. To correct this problem, use mpiControlConfigSet(...) to enable the object, by setting the object count to greater than the specified object number. For example, to enable motor objects 0 to 3, set motorCount to 4.

String: Object not enabled

MPIMessageOBJECT_NOT_FOUND
The object is not found on an object list. This message code is returned by a method when an object does not exist on the specified list or the object list does not exist. This message code can be returned from methods that insert or remove objects from a list. To correct this problem, specify an object that exists on the list or specify a different object list containing the object. To prevent object creation/deletion problems, delete objects in the reverse order they were created.

String: Object not found

MPIMessageOBJECT_ON_LIST
The object is a member of a list. This message code is returned when a method tries to add an object to a list and the object already exists on the list. It is also returned when a method tries to delete an object when the object exists on a list. For example, if an axis object is a member of a list of axis objects or an axis object is associated with a motion object, calling mpiAxisDelete(...) will return the object on list message code. To correct this problem when adding an object to a list, check to make sure the object is not already a member. To correct this problem when deleting an object, remove the object from the list and delete the parent object. To prevent object creation/deletion problems, delete objects in the reverse order they were created.

String: Object on list

MPIMessageOBJECT_IN_USE
This message is returned when an operation cannot be completed because the object is currently in use. For example, when threadDelete(…) from the apputil library attempts to delete a thread that is currently running, MPIMessageOBJECT_IN_USE will be returned. To correct this problem, make sure the object is not in use before you attempt the operation.

String: Object in use

MPIMessageTIMEOUT
The wait time has expired. This message code is returned by a method waiting for a response from the controller, a hardware resource, or a semaphore lock and the maximum wait time value expired. The library uses timeout values to prevent lock-up conditions when unexpected behavior occurs. To correct this problem, check the hardware health, power, and network connections.

String: Timeout

MPIMessageUNSUPPORTED
The software or controller does not support a feature. This message code is returned by a method if the MPI library, controller, or network device does not support a feature.

String: Unsupported

MPIMessageFATAL_ERROR
The software or hardware failed. This message code is returned by a method when an inexplicable data value is read from the controller or host memory. This message code indicates a serious problem with the host computer, memory, or controller. Contact an MEI applications engineer if you receive this message code.

String: Fatal error

MPIMessageFILE_CLOSE_ERROR
An error occurred when closing a file. This message code is returned by a method that fails to close a file. Internally, files are closed using mpiPlatformClose(...) which makes a platform specific call. File closing errors indicate a missing file, bad file, or other file system problems.

String: File close error

MPIMessageFILE_OPEN_ERROR
An error occurred when opening a file. This message code is returned by a method that fails to open a file. Internally, files are opened using mpiPlatformOpen(...) which makes a platform specific call. File opening errors indicate a missing file, bad file, or other file system problems.

String: File open error

MPIMessageFILE_READ_ERROR
An error occurred when reading from a file. This message code is returned by a method that fails to read from a file. Internally, files are read using mpiPlatformFileRead(...) which makes a platform specific call. File reading errors indicate a bad file or other file system problems.

String: File read error

MPIMessageFILE_WRITE_ERROR
An error occurred when writing to a file. This message code is returned by a method that fails to write to a file. Internally, files are written using mpiPlatformFileWrite(...) which makes a platform specific call. File writing errors indicate a bad file or other file system problems.

String: File write error

MPIMessageFILE_MISMATCH
The file being downloaded does not match the installed hardware. For example, if a user attempts to download an XMP file to a ZMP controller or a ZMP file to an XMP controller, the MPI will return error code MPIMessageFILE_MISMATCH.

String: Firmware file mismatch

MPIMessageASSERT_FAILURE
An assertion check internal to the library failed. This message code is used internally by the MPI. Contact MEI if you receive this message code.

String: Assertion Failure

Axis

MPIAxisMessageAXIS_INVALID
The axis number is out of range. This message code is returned by mpiAxisCreate(...) if the axis number is less than zero or greater than or equal to the allocated axisCount on the controller. Use mpiControlConfigGet(…) and mpiControlConfigSet(…) to allocate more objects if needed.

String: Axis invalid

MPIAxisMessageCOMMAND_NOT_SET
The axis command position did not get set. This message code is returned by mpiAxisCommandPositionSet(...) if the controller's command position does not match the specified value. Internally, the mpiAxisCommandPositionSet(...) method requests the controller to change the command position, waits for the controller to process the request, and reads back the controller's command position. There are several cases where the controller will calculate a new command position to replace the requested command position. For example, if motion is in progress, stopped, or if the amp enable is disabled (when the motor's disableAction is configured for command equals actual), the controller will calculate a new command position every sample. To prevent this problem, set the command position when the motion is in an IDLE state and the motor's disableAction is configured for no action. It may also indicate that the motor associated to this axis is configured to mode MPIMotorDisableActionCMD_EQ_ACT and the motor is disabled. When the motor is disabled and in the MPIMotorDisableActionCMD_EQ_ACT mode, the command position is continually set to the actual position. To set the command position, enable the motor or take the motor out of the MPIMotorDisableActionCMD_EQ_ACT mode. Alternatively, setting the origin for the motor can often perform an equivalent result in this situation, as the command position will be set to the actual position the next sample.

String: Unable to set command position

MPIAxisMessageNOT_MAPPED_TO_MS
An axis is not mapped to the motion supervisor. This message code is returned by move or event methods when there are no axes associated with a motion supervisor. To correct this problem, map the axes to the motion supervisor in the controller with mpiMotionAxisMapGet(…) and mpiMotionAxisMapSet(…).

String: Not mapped to motion supervisor

Capture

MPICaptureMessageMOTOR_INVALID
The capture motor number is not valid. This message code is returned by mpiCaptureConfigSet(...) if the captureMotorNumber does not have node hardware or the value is MPICaptureNOT_MAPPED.

String: Invalid motor number

MPICaptureMessageCAPTURE_TYPE_INVALID
The capture type is not valid. This message code is returned by mpiCaptureConfigSet(...) if the type is not one of the values defined by the enum MPICaptureType.

String: Invalid capture type

MPICaptureMessageCAPTURE_INVALID
The capture number is out of range. This message code is returned by mpiCaptureCreate(...) if the capture number is less than zero or greater than or equal to the enabled captureCount on the controller.  Use mpiControlConfigGet(...) and mpiCaptureConfigSet(…) to allocate or enable more objects if needed.

String: Invalid capture number

MPICaptureMessageFEEDBACK_INVALID
The feedback number is out of range. This message code is returned by mpiCaptureConfigSet(…) if the feedback number is neither MPIMotorFeedbackInputPRIMARY or MPIMotorFeedbackInputSECONDARY. See MPIMotorFeedbackInput.

String: Invalid feedback number

MPICaptureMessageINVALID_EDGE
The edge trigger type is not valid. This message code is returned by mpiCaptureConfigSet(...) if the capture edge type is not a member of the MPICaptureEdge enumeration.

String: Vaild capture edge required

MPICaptureMessageCAPTURE_NOT_ENABLED
The capture object in the controller is not enabled. This message code is returned by mpiCaptureCreate(…) if the capture number is less than zero or greater than or equal to the enabled captureCount on the controller. Use mpiControlConfigGet(...) and mpiControlConfigSet(…) to enable more objects if needed.

String: Capture not enabled

MPICaptureMessageCAPTURE_STATE_INVALID
This value is returned by mpiCaptureStatus(...) when the communication between the controller and the capture logic on the node fails resulting in an invalid capture state. See MPICaptureState.

String: Capture is in an invalid state

MPICaptureMessageUNSUPPORTED_PRIMARY
The capture hardware does not support the primary feedback. This message code is returned by mpiCaptureConfigSet(...) if the node hardware's primary feedback does not support the specified capture. To correct this problem, select a different motor, feedback, or capture number.

String: Capture not supported on primary feedback

MPICaptureMessageUNSUPPORTED_SECONDARY
The capture hardware does not support the secondary feedback. This message code is returned by mpiCaptureCreate(...) if the node hardware's secondary feedback does not support the specified capture. To correct this problem, select a different motor, feedback, or capture number.

String: Capture not supported on secondary feedback

MPICaptureMessageCAPTURE_ARMED
The Capture resource being configured is already armed and cannot be reconfigured until it is disabled or triggered. See mpiCaptureConfigSet(...).

String: Capture currently armed

Client

MPIClientMessageMETHOD_INVALID
The client method is out of range. This message code is returned by mpiClientMethod(...) if the method number is not a member of the MPIRemoteMethod enumeration.

String: Method invalid

MPIClientMessageHEADER_INVALID
The client packet header is not valid. This message code is returned by mpiClientMethod(...) if the packet header is corrupted. This indicates a problem with the message transmission. Check your network hardware.

String: Header invalid

MPIClientMessageMPI_INCOMPATIBLE
The server side MPI version is not compatible with the client side MPI version. This message code is returned by any MPI function that requires a specific version (or higher). To correct the problem, upgrade either the server or client side with the same MPI version.

String: Server MPI version incompatible

MPIClientMessageSERVER_INCOMPATIBLE
The server side checksum did not match the client side checksum, indicating an incompatibility between the server and client. This message code is returned by any MPI function that fails a client/server transaction due to a checksum mismatch. To correct the problem, upgrade either the server or client side with the same MPI version.

String: Server incompatible

MPIClientMessageSERVER_INACCESSIBLE
The server is not accessible. This message code is returned by mpiControlCreate(…) if a client connection could not be established with the server. To correct the problem, make sure the server is running properly, the specified TCP/IP address is correct, and the network hardware is working properly.

String: Server inaccessible

MPIClientMessageSERVER_NOT_MATCH_BIT_SIZE
The word size of the server does not match the client. A 32-bit client can only connect to a 32-bit server. A 64-bit client can only connect to a 64-bit server. Click here to read more.

Command

MPICommandMessageTYPE_INVALID
The command type is not valid. This message code is returned by mpiCommandCreate(...) if the command type is not a member of the MPICommandType enumeration.

String: Type invalid

Compensator

MPICompensatorMessageCOMPENSATOR_INVALID
The compensator number is not valid. This message code is returned by mpiCompensatorCreate(...) if the compensator number is less than 0 or greater than the allocated compensatorCount on the controller. Use mpiControlConfigGet/Set(…) to allocate more objects if needed.

String: Comnpensator object invalid

MPICompensatorMessageNOT_CONFIGURED
MPI Compensator object must be configured before calling mpiCompensatorTableGet/ Set.

String: Compensator object not configured

MPICompensatorMessageNOT_ENABLED
The compensator is not available on the controller. This message code is returned by mpiCompensatorValidate(…) if the compensator number is not within the range of enabled compensators on the controller. To correct the problem, use MPIControlConfig to configure the compensatorCount to be greater than the required compensator number.

String: Object not enabled

MPICompensatorMessageAXIS_NOT_ENABLED
The axis is not available on the controller. This message coder is returned by mpiCompensatorConfigSet(...) if the axisOutNumber or any of the inputAxis[n].axisNumbers are not within the range of enabled axes on the controller. To correct the problem, use MPIControlConfig to configure the axisCount to be greater than the required axis number.

String: Axis not enabled

MPICompensatorMessageTABLE_SIZE_ERROR
The host compenstation table will not fit within the controller's configured compensation table. See Determining Required Compensator Table Size.

String: Table size is too small. Adjust MPIControlConfig.compensatorPostionCount.

MPICompensatorMessagePOSITION_DELTA_INVALID
The positionDelta is either out of range or is not a multiple of the range. This message code is returned by mpiCompensatorConfigSet(…). To correct the problem, check the valid range values for MPICompensatorInputAxis.

String: Position delta invalid

MPICompensatorMessageDIMENSION_NOT_SUPPORTED
The dimensionCount is out of range. This message code is returned by mpiCompensatorConfigSet(…). To correct the problem, check the valid range values for MPICompensatorConfig.

String: : Table dimension not supported

Control

MPIControlMessageLIBRARY_VERSION
The MPI Library does not match the application. This message code is returned by mpiControlInit(...) if the MPI's library (DLL) version does not match the MPI header files that were compiled with the application. To correct this problem, the application must be recompiled using the same MPI software installation version that the application uses at run-time.

String: Application is not compatible with MPI DLL

MPIControlMessageCONTROL_INVALID
The controller model is not supported. This message code is returned by mpiControlCreate(…) if the controller hardware is not supported by the MPI library.

String: Control invalid

MPIControlMessageCONTROL_NUMBER_INVALID
The controller number is out of range. This message code is returned by mpiControlCreate(...) if the controller number is less than zero or greater than or equal to MaxBoards(8).

String: Control number exceeds maximum limit

MPIControlMessageTYPE_INVALID
The controller type is not valid. This message code is returned by mpiControlCreate(...) if the controller type is not a member of the MPIControlType enumeration.

String: Type invalid

MPIControlMessageINTERRUPTS_DISABLED
The controller interrupt is disabled. This message code is returned by mpiControlInterruptWait(...) if the controller's interrupt is not enabled. This prevents an application from waiting for an interrupt that will never be generated. To correct this problem, enable controller interrupts with mpiControlInterruptEnable(...) before waiting for an interrupt.

String: Interrupts disabled

MPIControlMessageINTERNAL_MEMORY_OVERFLOW
The controller's internal memory will overflow. This message code is returned by mpiControlConfigSet(...) if the dynamic memory allocation exceeds the internal memory available on the controller. To correct the problem, reduce the number/size of control configuration resources or use a controller model with a larger static memory component.

String: Out of internal memory

MPIControlMessageEXTERNAL_MEMORY_OVERFLOW
The controller's external memory will overflow. This message code is returned by mpiControlConfigSet(...) if the dynamic memory allocation exceeds the external memory available on the controller. To correct the problem, reduce the number/size of control configuration resources or use a controller model with a larger static memory component.

String: Out of external memory

MPIControlMessageAXIS_COUNT_INVALID
The axis count is not valid. This message code is returned by mpiControlConfigSet(...) if the number of axes is greater than MPIControlMAX_OBJECTS.

String: AxisCount exceeds configuration limit

MPIControlMessageAXIS_FRAME_COUNT_INVALID
This message is returned from mpiControlConfigSet() if the value for MPIControlConfig.axisFrameCount is not a power of two or if axisFrameCount is less than MPIControlMIN_AXIS_FRAME_COUNT.

String: Invalid axisFrameCount

MPIControlMessageCAPTURE_COUNT_INVALID
The capture count is not valid. This message code is returned by mpiControlConfigSet(...) if the number of captures is greater than MPIControlMAX_OBJECTS.

String: CaptureCount exceeds configuration limit

MPIControlMessageFILTER_COUNT_INVALID
The filter count is not valid. This message code is returned by mpiControlConfigSet(...) if the number of filters is greater than MPIControlMAX_OBJECTS.

String: FilterCount exceeds configuration limit

MPIControlMessageMOTION_COUNT_INVALID
The motion count is not valid. This message code is returned by mpiControlConfigSet(...) if the number of motions is greater than MPIControlMAX_OBJECTS.

String: MotionCount exceeds configuration limit

MPIControlMessageMOTOR_COUNT_INVALID
The motor count is not valid. This message code is returned by mpiControlConfigSet(...) if the number of motors is greater than MPIControlMAX_OBJECTS.

String: MotorCount exceeds configuration limit

MPIControlMessageSAMPLE_RATE_TO_LOW
The controller sample rate is too small. This message code is returned by mpiControlConfigSet(…) if the sample rate is less than MPIControlMIN_SAMPLE_RATE (1kHz). SynqNet does not support cyclic data rates below 1kHz. The controller's sample rate specifies the SynqNet cyclic rate.

String: Sample rate must be greater than or equal to 1kHz

MPIControlMessageSAMPLE_RATE_TO_HIGH
The controller sample rate is too big. This message code is returned by mpiControlConfigSet(…) if the sample rate is greater than MPIControlMAX_SAMPLE_RATE (100kHz).

String: Sample rate must be less than or equal to 100kHz

MPIControlMessageRECORDER_COUNT_INVALID
The recorder count is not valid. This message code is returned by mpiControlConfigSet(...) if the number of recorders is greater than MPIControlMAX_OBJECTS.

String: RecorderCount is invalid

MPIControlMessageCOMPENSATOR_COUNT_INVALID
The compensator count is not valid. This message code is returned by mpiControlConfigSet(...) if the number of compensators is greater than MPIControlMAX_OBJECTS.

String: RecorderCount exceeds configuration limit

MPIControlMessageAXIS_RUNNING
Attempting to configure the control object while axes are running. It is recommended that all configuration of the control object occur prior to commanding motion.

String: Cannot configure while axes are running

MPIControlMessageRECORDER_RUNNING
Attempting to configure the control object while a recorder is running. It is recommended that all configuration of the control object occur prior to operation of any recorder objects.

String: Cannot configure while recorders are running

MPIControlMessagePACK_ALIGNMENT
The application was compiled with a packing alignment that is different from the MPI library. For Windows, use the MSVC “/Zp8” compiler option or surround the MPI header files with the following #pragma pack statements:

#pragma pack(push, 8)
#include "stdmpi.h"
#include "stdmpi.h"
#include "apputil.h"
#pragma pack(pop)

For Linux, use the “-malign-double” compiler option.

String: Application compiled with invalid packing alignment

MPIControlMessageFIRMWARE_INVALID
The controller firmware is not valid. This message code is returned by mpiControlCreate(...) if the MPI library does not recognize the controller signature. After power-up or reset, the controller loads the firmware from flash memory. When the firmware executes, it writes a signature value into external memory. If mpiControlCreate(...) does not recognize the signature, then the firmware did not execute properly. To correct this problem, download firmware and verify the controller hardware is working properly.

String: Firmware invalid

MPIControlMessageFIRMWARE_VERSION_NONE
The controller firmware version is zero. This message code is returned by control methods do not find a firmware version. This indicates the firmware did not execute at controller power-up or reset. To correct this problem, download firmware and verify the controller hardware is working properly.

String: No firmware found (factory default)

MPIControlMessageFIRMWARE_VERSION
The controller firmware version does not match the software version. This message code is returned by control methods if the firmware version is not compatible with the MPI library. To correct this problem, either download compatible firmware or install a compatible MPI run-time library.

String: Firmware version mismatch

MPIControlMessageNO_FPGA_SOCKET
The FPGA socket type does not exist. This message code is returned by mpiControlFlashLoadFromFile(...) if the controller does not support the FPGA type that was specified in the FPGA image file. To correct this problem, use a different FPGA image that is compatible with the controller.

String: FPGA hardware socket does not exist

MPIControlMessageSYNQNET_STATE
The controller's SynqNet state is not expected. This message code is returned by mpiControlCreate(...), mpiControlReset(...) and mpiControlConfigSet(...) if the SynqNet network initialization fails to reach the SYNQ state. To correct this problem, check your node hardware and network connections.

String: SynqNet state is invalid

MPIControlMessageIO_BIT_INVALID
The controller I/O bit is not valid. This message code is returned by mpiControlIoGet(...) or mpiControlIoSet(...) if the controller I/O bit is not a member of the MPIControlIoBit enumeration.

String: I/O bit selected is unavailable

MPIControlMessageOBJECT_INVALID
The object type is not valid. This message code is returned by mpiControlObjectCount(...) or mpiControlObjectPtr(...) if the objectType argument is not a value defined by the MPIControlObjectType enumeration.

String: Object is not valid

MPIControlMessageOBJECT_INDEX_INVALID
The object number is not valid. This message code is returned by mpiControlObjectPtr(...), if the objectIndex argument is beyond the range of objects allocated in the controller's memory. To allocate additional objects in the controller, see mpiControlConfigGet(...) and mpiControlConfigSet(...).

String: Object index exceeds object count

MPIControlMessageBUFFER_TOO_SMALL
The size of the file path buffer is smaller than required. This message code is returned by mpiControlDefaultFile(...) if the specified filePathBufferSize is smaller than the required size specified by pRequiredSize.

String: Buffer too small to hold the required number of characters

MPIControlMessageFILE_INACCESSIBLE
The specified path to the file is not accessible. This message code is returned by mpiControlDefaultFile(...) if the installation path environment variable (MEI_MDK_DIR_xx_xx_xx) is not valid. To fix the installation path variable, either re-install the software or manually configure the environment variable.

String: The file is not accessible

MPIControlMessageFLASH_INVALID The Flash object is not valid. This message code is returned by the control flash functions if the internal Flash object failed to be created. This message indicates an internal MPI library problem.

String: Flash invalid

MPIControlMessageFLASH_VERIFY_ERROR
The flash memory does not match the flash file. This message code is returned by mpiControlFlashVerify(...) if the controller's flash memory does not match the specified flash file.

String: Flash invalid

MPIControlMessageFLASH_SYNQNET_STATE_INVALID
The controller's SynqNet state is not expected. This message code is returned by mpiControlFlashSaveAll(…) if the SynqNet network is not in the SYNQ state. To correct this problem, initialize the SynqNet network with mpiSyqnNetInit(…).

String: Flash cannot be saved, SynqNet state must be SYNQ

MPIControlMessageFLASH_WRITE_ERROR
The value written to flash memory does not match the value read from flash memory. This message code is returned by any function that writes to controller flash memory if the flash memory fails. This message code indicates a controller flash memory failure.

String: Flash write error

MPIControlMessageEVENTS_LOST
The event message was lost. This message code is retevent messages were lost. To correct this problem, increase the priority of the control event service handler or purned by mpiControlProcessEvents(…) if the circular event message buffer rollover occurred and oll mpiControlProcessEvents(…) more frequently.

String: Events lost

MPIControlMessageSEQUENCE_COUNT_INVALID
The math block count is not valid. This message code is returned by mpiControlConfigSet(...) if the number of math blocks is greater than MPIControlMAX_OBJECTS.

String: SequenceCount is invalid

MPIControlMessageMATH_BLOCK_COUNT_INVALID
The math block count is not valid. This message code is returned by mpiControlConfigSet(...) if the number of math blocks is greater than MPIControlMAX_OBJECTS.

String: MathBlockCount is invalid

MPIControlMessagePRE_FILTER_DELAY_COUNT_INVALID
The pre-filter delay count is not valid. This message code is returned by mpiControlConfigSet(...) if the number of pre-filter delay is greater than MPIControlMAX_OBJECTS.

String: PreFilterDelayCount is invalid

MPIControlMessageLIMIT_BLOCK_COUNT_INVALID
The user limit count is not valid. This message code is returned by mpiControlConfigSet(...) if the number of user limits is greater than MPIUserLimitCOUNT_MAX.

String: UserLimitCount is invalid

MPIControlMessageTX_TIME_INVALID
The Tx Time is not valid. This message code is returned by mpiControlTimingConfigSet if the TxTime is less than zero or greater than 100.

String: TxTime is invalid

MPIControlMessageCANT_SET_SAMPLE_RATE
The controller sample rate can not be set in simulation mode. This message code is returned by mpiControlTimingConfigSet(…) if the controller type is SIMULATION.

String: SAMPLE RATE CAN NOT BE CHANGED

DriveMap

MPIDriveMapMessageMAP_FILE_OPEN_ERROR
The drive map file could not be opened. Either it doesn't exist or the user does not have permission to access it.

String: Could not open drive map file

MPIDriveMapMessageMAP_FILE_FORMAT_INVALID
The contents of the drive map file does not match the format of a drive map file.

String: Format error in drive map file

MPIDriveMapMessageNODE_NOT_FOUND_IN_MAP
The node type, specified by the "nodeName" parameter, was not found in the drive map file.

String: Node type not found in drives map files

MPIDriveMapMessageVERSION_NOT_FOUND_IN_MAP
The drive firmware version, specified by the "firmwareVersion" parameter, was not found in the drive map file.

String: Drive firmware version not found in drives map file (see drive vendor for .dm file update)

MPIDriveMapMessageDRIVE_PARAM_READ_ONLY
An attempt was made to modify a read-only drive parameter.

String: Drive parameter is read-only

Element

MPIElementMessageELEMENT_INVALID
The element is not valid. This message code is used internally to guarantee an element module and element number are valid.

String: Element invalid

Event

MPIEventMessageEVENT_INVALID
The event type is not valid.

String: Event invalid

Filter

MPIFilterMessageFILTER_INVALID
The filter number is out of range. This message code is returned by mpiFilterCreate(...) if the filter number is less than zero or greater than or equal to MPIControlMAX_OBJECTS.

String: Filter invalid

MPIFilterMessageINVALID_ALGORITHM
The filter algorithm is not valid. This message code is returned by mpiFilterIntegratorReset(...) if the filter algorithm is not a member of the MPIFilterAlgorithm enumeration (does not support integrators). This problem occurs if the filter type is set to user or an unknown type with mpiFilterConfigSet(...).

String: Filter algorithm invalid

MPIFilterMessageINVALID_DRATE
The filter derivative rate is not valid. This message code is returned by mpiFilterConfigSet(...) if the filter derivative rate is less than 0 or greater than 7.
NOTE: The derivative rate for all gain tables must be in the range [0,7], not just the derivative rate for the current gain table.

String: DRate value out of range (0-7)

MPIFilterMessageCONVERSION_DIV_BY_0
Returned when mpiFilterPostfilterGet(...) or mpiFilterPostfilterSectionGet(...) cannot convert digital coefficients to analog coefficients. When this error occurs, the offending section(s) will report its type as MPIPostFilterTypeUNKNOWN and will not contain any analog data.

String: Divide by zero in conversion

MPIFilterMessageSECTION_NOT_ENABLED
Returned when mpiFilterPostfilterGet(...) or mpiFilterPostfilterSectionGet(...) attempt to read postfilter data when no postfilter sections are enabled.

String: Specified postfilter section not enabled

MPIFilterMessageINVALID_FILTER_FORM
Returned when mpiFilterPostfilterGet(...) or mpiFilterPostfilterSectionGet(...) cannot interpret the current postfilter's form (when the form is something other than NONE, IIR, or BIQUAD).

String: Invalid filter form

MPIFilterMessageINVALID_SMOOTHING
The filter smoothing value is not valid. This message code is returned by mpiFilterConfigSet(...) if the filter smoothing value is less than 0 or greater than or equal to .999999 for the PIV algorithm.

String:

Geometric Path

MPIGeometricPathMessageILLEGAL_DIMENSION
The path dimensions are not valid. This message code is returned by mpiGeometricPathParamsSet(...) or mpiGeometricPathToPTPoint(...) or mpiGeometricPathToPVTPoint(…) if the path dimension is less than one or greater than or equal to MPIGeometricPathPointDIMENSION_MAX. Also, this message code is returned if specific path element types have dimension restrictions. For example, the ARC type is limited to 2 dimensions and the ARC_END_POINT type is limited to 3 dimensions. To correct this problem, select an appropriate dimension for the path element type.

String: Dimension Out of Range

MPIGeometricPathMessageILLEGAL_ELEMENT
The path element type is not valid. This message code is returned by mpiGeometricPathAppend(...) if the specified path element type is not a member of the MPIGeometricPathElementType enumeration.

String: Illegal Element

MPIGeometricPathMessageARC_ILLEGAL_DIMENSION
Illegal arc dimension (too many axes in arc). Arc dimension is out of range. This message code occurs when the specified dimension is out of range. An arc element dimension must be 2.

String: Arc Dimension Out of Range

MPIGeometricPathMessageILLEGAL_RADIUS
The path element arc radius is not valid. This message code is returned by mpiGeometricPathAppend(...) if the ARC element radius is less than or equal to zero. To correct this problem, set the arc radius to a value greater than zero.

String: Illegal Radius

MPIGeometricPathMessagePATH_TOO_LONG
There is not enough memory available for the specified path length. This message code is returned by mpiGeometricPathToPTPoint(…) or mpiGeometricPathToPVTPoint(…) if the path length is greater than the available memory for the host buffer dynamic allocation. To correct the problem, specify a path with fewer points or add memory.

String: Path too long

MPIGeometricPathMessageUNSUPPORTED_TYPE
The path interpolation type is not supported. This message code is returned by mpiGeometricPathToPTPoint(…) or mpiGeometricPathToPVTPoint(…) if the path interpolation type is not a member of the MPIGeometricPathInterpolationType enumeration.

String: Unsupported interpolation type for this function

MPIGeometricPathMessageILLEGAL_VELOCITY
The path element velocity is not valid. This message code is returned by mpiGeometricPathAppend(...) if the specified velocity is less than or equal to zero. To correct this problem, set the element velocity to a value greater than zero.

String: Velocity must be positive

MPIGeometricPathMessageILLEGAL_ACCELERATION
The path element velocity is not valid. This message code is returned by mpiGeometricPathAppend(...) if the specified velocity is less than or equal to zero. To correct this problem, set the element velocity to a value greater than zero.

String: Acceleration must be positive

MPIGeometricPathMessageILLEGAL_TIMESLICE
The path element time slice is not valid. This message code is returned by mpiGeometricPathAppend(...) if the specified time slice is less than or equal to zero. To correct this problem, set the element time slice to a value greater than zero.

String: TimeSlice must be positive

MPIGeometricPathMessageILLEGAL_PLAN_TYPE
The MPIGeometricPathPlanTypeSCURVE plan type is only supported for PVT.  This message code is returned by mpiGeometricPathParamsSet.  To avoid this error, set the plan type param to TRAP or set the interplotion param to PVT.

String: unsupported planning type

 

MPIGeometricPathMessageVEL_ACCEL_TOO_LONG
The ratio of the specified velocity / acceleration is too large for a path section with PVT interpolation.  The error is generated by the path planner due to a blending time(s) that exceed the calculated path section time, making it impossible to follow the path without violating the acceleration constraint.  To correct the problem, either increase the acceleration, decrease the velocity, increase the path section length, or decrease the corner sharpness.

String: vel/accel time is too long for path section

 

MPIGeometricPathMessageZERO_PATH_LENGTH
The specified path has zero length.

String: path length is zero

 

MPIGeometricPathMessageVEL_CORNER_RADIUS
The path planner cannot acheive the specified arc within the specified acceleration constraint for PVT interpolation.  To correct the problem, either increase the acceleration, decrease the velocity, or increase the arc radius.

String: 2*vel*vel/radius exceeds specified acceleration

 

License

MPILicenseMessageNOT_VALID
The license registers are not valid. This message code is returned if the hardware license register has been corrupted.

String: Registers are bad or do not match serial number

MPILicenseMessageNOFEATURE
The feature does not have a runtime license. The message code is returned if an unlicensed feature is accessed. To correct the problem, contact MEI to purchase a runtime license for the feature.

String: Requested runtime feature or package is not licensed

MPILicenseMessageNOAXIS
The axis does not have a runtime license. The message code is returned if an unlicensed axis is accessed. To correct the problem, contact MEI to purchase a runtime license for the axis.

String: Axis count exceeds the runtime license quantity

MPILicenseMessageLEGACY
The controller does not require licenses. The message code is for legacy controllers that do not have licenses. There are no feature restrictions for legacy controllers.

String: Controller is unrestricted (legacy)

MPILicenseMessageEXPIRED
The license has expired. The message code is returned when a runtime license expires. To correct the problem, contact MEI to renew a runtime license.

String: Runtime license has expired

MPILicenseMessageUNLICENSED
The runtime license has not been activated. The message code is returned when a feature or axis is accessed with an unlicensed controller (default from factory). To correct the problem, contact MEI to install the runtime licenses.

String: Runtime license is not activated. Please return controller to the factory.

List

MPIListMessageELEMENT_NOT_FOUND
The element is not a member of the list. This message code is returned by mpiListElement(...) if the index to the list is greater than or equal to the list count. This message code is used by the MPI internally to check object list handling.

String: Element not found

MPIListMessageELEMENT_INVALID
The element is not valid. This message code is returned by mpiListInsertNow(...) or mpiListRemoveNow(...) if the element cannot be inserted or removed from the list. This message code is used by the MPI internally to check object list handling.

String: Element invalid

Map

MPIMapMessageNAME_INVALID
The map name is not valid. This message code is returned by mpiMapNameToParams(...) if the name is not a member of a map.

String: Name invalid

MPIMapMessageNAME_NOT_FOUND
The map name is not found. This message code is returned by mpiMapCreate(...), mpiMapNameToParams(...), or mpiMapNameParse(...) if the name is not found in the map.

String: Name not found

MPIMapMessageINDEX_INVALID
The map index is not valid. This message code is returned by mpiMapNameToParams(...) if the map index is less than 0 or greater than or equal to the maximum instance count.

String: Index invalid

MPIMapMessageSYMBOL_INVALID
The map file is not valid. This message code is returned by mpiMapNameParse(...) if the map file cannot be parsed.

MPIMapMessageSYMBOL_NOT_FOUND
The map symbol is not found. This message code is returned by mpiMapSymbolToPtr(…) if the symbol type is not a member of the MPIMapSymbolType enumeration.

String: Symbol not found

MPIMapMessageFILE_INVALID
The map symbol is not valid. This message code is returned by mpiMapSymbolIndexCount(…) if the symbol type is not a member of the MPIMapSymbolType enumeration.

String: Symbol invalid

Motion

MPIMotionMessageMOTION_INVALID
The motion supervisor number is out of range. This message code is returned by mpiMotionCreate(...) if the motion supervisor number is less than zero or greater than or equal to the enabled motionSupervisorCount on the controller. Use mpiControlConfigGet(...) and mpiControlConfigSet(…) to allocate more objects if needed.

String: Motion invalid

MPIMotionMessageAXIS_COUNT
The number of axes is out of range. This message is returned from mpiMotionConfigSet(...), if there are no axes associated with the motion object or if the axis count exceeds MPIMotionMAX_AXES.

String: Axis count invalid

MPIMotionMessageAXIS_FRAME_COUNT
The axis frame count invalid on this Motion object. All axes appended to a Motion object must have the same frame buffer size. The axis frame buffer sizes are configured with the low-level controller configuration routine mpiControlConfigSet(...).

String: Axis frame count invalid

MPIMotionMessageTYPE_INVALID
The motion type is not valid. This message code is returned by any move function if the motion type is not a member of the MPIMotionType enumeration.

String: Type invalid

MPIMotionMessageATTRIBUTE_INVALID
The motion attribute is not valid. This message code is returned by any move function if the motion attribute mask is not compatible with the specified motion type. To correct the problem, do not use the motion attribute mask with the specified motion type or select a different motion type.

String: Attribute invalid

MPIMotionMessageIDLE
All motion supervisor axes are not moving and are ready to move. This message code is returned by any move function attempting to modify a non-existent move (motion supervisor is in the IDLE state). A move cannot be modified if no motion is in progress. To correct the problem, use the AUTO_START attribute for the behavior type. This message code is also returned from mpiMotionAction(...) when a STOP or RESUME is commanded when the motion supervisor is in the IDLE state. A motion cannot be stopped if there is no motion in progress and a motion cannot be resumed if there is no motion profile pending.

String: MPIStateIDLE

MPIMotionMessageMOVING
At least one motion supervisor axis is moving. This message code is returned by any move function attempting to command a move when the motion supervisor is in the MOVING state. A move cannot be started if a motion is in progress. To correct the problem, use the MODIFY attribute for the behavior type. This message code is also returned from mpiMotionAction(...) when a RESUME or RESET is commanded when the motion supervisor is in the MOVING state. A motion cannot be resumed or reset while a motion is in progress.

String: MPIStateMOVING

MPIMotionMessageSTOPPING
Motion supervisor axes are stopping due to a STOP action. This message code is returned by any move function attempting to command a move when the motion supervisor is in the STOPPING state. A move cannot be commanded when a stop is in progress. This message code is also returned from mpiMotionAction(...) when a RESUME or RESET is commanded when the motion supervisor is in the STOPPING state. A motion cannot be resumed or reset while a stop is in progress.

String: MPIStateSTOPPING

MPIMotionMessageSTOPPED
Motion supervisor axes are stopped due to a STOP action. This message code is returned from mpiMotionAction(...) when a STOP action is commanded while the motion supervisor is already in the STOPPED state.

String: MPIStateSTOPPED

MPIMotionMessageSTOPPING_ERROR
Motion supervisor axes are stopping due to an E_STOP or ABORT action. This message code is returned by any move function attempting to command a move when the motion supervisor is in the STOPPING_ERROR state. A move cannot be commanded when a stopping on error action is in progress. This message code is also returned from mpiMotionAction(...) when a RESUME or RESET is commanded when the motion supervisor is in the STOPPING state. A motion cannot be resumed or reset while a stopping on error action is in progress.

String: MPIStateSTOPPING_ERROR

MPIMotionMessageERROR
Motion supervisor axes are in an error state due to an E_STOP or ABORT action. This message code is returned by any move function attempting to command a move when the motion supervisor is in the ERROR state. A motion cannot be commanded when the motion supervisor is in an error state. This message code is also returned from mpiMotionAction(...) when a STOP or RESUME is commanded when the motion supervisor is in the ERROR state. To correct the problem, fix the condition that caused the E_STOP or ABORT action and then clear the ERROR state using mpiMotionAction(...) with a RESET.

String: MPIStateERROR

MPIMotionMessageAUTO_START
The commanded move with the MODIFY attribute was automatically converted to a move start. This message code is returned from any move function when the AUTO_START attribute for the behavior type was specified and the move was commanded while the motion supervisor is in the IDLE state. This message code is useful for notifying an application of an auto-start, it is not an error condition.

String: Auto-start

MPIMotionMessageILLEGAL_DELAY
Move is commanded to be modified with a non-zero delay value. To avoid this message code, do not modify a move with a non-zero delay.

String: lllegal delay

MPIMotionMessagePROFILE_ERROR
The move profile is not possible within the specified constraints. This message code is returned by a move function if the profile is not physically possible and cannot be calculated by the controller firmware.

String: Profile error

MPIMotionMessagePROFILE_NOT_SUPPORTED
The controller firmware does not support the specified motion profile type. This message code is returned by an mpiMotionXxxxxSCurveJerkMove function if the feature is not supported by the controller firmware. To correct the problem, use the mpiMotionXxxxxSCurveJerkPercentMove motion type instead.

String: Profile not supported

MPIMotionMessagePATH_ERROR
The specified multi-point motion path is not valid. This message code is returned by mpiMotionStart(...) when the final point is not specified or the time slice is less than one controller sample. The following motion types must have the motion parameter “final” set to 1.
Spline
Bessel
BSpline
BSpline2

Setting the motion parameter “final” set to a value other than 1 for Spline will result in a MPIMotionMessagePATH_ERROR error message.

Specifying a point count of < 0 for (Bessel, BSpline, or BSpline2) will result in a MPIMotionMessagePATH_ERROR error message.

String: Path error

MPIMotionMessageFRAMES_LOW
The controller's frame buffer is low. This message code is returned by mpiMotionFramesLow(...). This is an internal message code used by the library to manage the frame buffering.

String: Frame buffer low

MPIMotionMessageFRAMES_EMPTY
The controller's frame buffer is empty. This message code is returned by mpiMotionFramesLow(...). This is an internal message code used by the library to manage the frame buffering.

String: Frame buffer empty

MPIMotionMessageFRAMES_BUFFER_OVERRUN
The controller's frame buffer has overflowed. This message code is returned by a move function, if the move exceeds the frame buffer space. To correct this problem, increase the size of the frame buffer using mpiControlConfigSet(…).

String: Frame buffer overrun

MPIMotionMessageRESERVED0
Reserved for specialized use.

String: RESERVED0

MPIMotionMessageRESERVED1
Reserved for specialized use.

String: RESERVED1

MPIMotionMessageRESERVED2
Reserved for specialized use.

String: RESERVED2

MPIMotionMessageNO_AXES_MAPPED
The motion supervisor has no axes. This message code is returned by a move function or mpiMotionAction(...) if there are no axes mapped to the motion supervisor. To correct this problem, make sure there is at least one axis object associated with the motion supervisor before commanding any motion or motion actions.

String: No axis mapped

MPIMotionMessageBAD_PATH_DATA
If any of the motion parameters passed to the MPI for path motion are infinite or NAN, the MPI will return MPIMotionMessageBAD_PATH_DATA and will not load the move to the controller.

String: Bad path data

MPIMotionMessageAXIS_MOVING
An axis cannot be mapped to a motion supervisor while it is moving. This message code is returned by mpiMotionAxisMapSet(…) if a specified axis is moving.

String: Cannot map axis while moving

MPIMotionMessageAXIS_MAP_MISMATCH
The expected motion supervisor to axis map does not match the specified axis map. This message code is returned by a move function when the EXPECTED_AXES attribute is specified and the expected axis map does not match the actual axis map.

String: Expected axis map does not match actual axis map

Motor

MPIMotorMessageMOTOR_INVALID
The motor number is out of range. This message code is returned by mpiMotorCreate(...) if the motor number is less than zero or greater than or equal to the allocated motorCount on the controller. Use mpiControlConfigGet/Set(…) to allocate more objects if needed.

String: Motor invalid

MPIMotorMessageTYPE_INVALID
The motor type is not valid. This message code is returned by mpiMotorConfigGet/ Set if the motor type is not a value defined in the enumeration MPIMotorType. To avoid this error, use one of the defined motor types in MPIMotorType.

String: Motor type invalid

MPIMotorMessageSTEPPER_NA
The hardware does not support the Stepper motor type. This message code is returned by mpiMotorConfigSet(...) if the motor type is configured for MPIMotorTypeSTEPPER when the node hardware does not support steppers. To correct the problem, do not select the stepper motor type.

String: Stepper motors are not available

MPIMotorMessageMOTOR_NOT_ENABLED
The motor number is not active in the controller. This message code is returned byby mpiMotorFeedback(…) or mpiMotorEventReset(…) if the specified motor is not enabled in the controller. To correct the problem, use mpiControlConfigSet(...) to enable the motor object, by setting the motorCount to greater than the motor number. For example, to enable motor 0 to 3, set motorCount to 4.

String: Motor not enabled

MPIMotorMessageSECONDARY_FEEDBACK_NA
The motor's secondary feedback is not available. This message code is returned by mpiMotorLimitConfigSet(...)if the feedback fault trigger is configured for a secondary feedbackwhen the hardware does not support a secondary feedback. To correct the problem, do not select the secondary encoder when configuring the feedback fault conditions.

String: Secondary feedback not available

MPIMotorMessageHARDWARE_NOT_FOUND
The motor object's hardware resource is not available. This message code is returned by mpiMotorConfigGet/ Set. if the node hardware for the motor is not found. During controller and network initialization the nodes and motor count for each node is discovered and mapped to the controller's motor objects. An application should not configure a motor object if there is no mapped hardware to receive the service commands. To correct this problem, verify that all expected nodes were found. Use mpiSynqNetInfo(...) and mpiSqNodeInfo(...) to determine the node topology and motor count per node. Check the node hardware power and network connections.

String: Hardware not found

MPIMotorMessageDISABLE_ACTION_INVALID
The motor object stepper configuration is not valid. These message codes are returned by mpiMotorConfigGet(...) if the motor type is configured for stepper while the disable action is configured for command position equals actual position. The disable action feature sets the command position equal to the actual position when the amp enable signal is set to disable. Stepper motor types are driven by a digital pulse, which is triggered by the controller's command position. Do not use disable action set to command equals actual with stepper motor types.

String: Cannot set motor type to STEPPER when disable action is CMD_EQ_ACT

MPIMotorMessageSTEPPER_INVALID
The motor object stepper configuration is not valid. These message codes are returned by mpiMotorConfigGet(...) if the motor type is configured for stepper while the disable action is configured for command position equals actual position. The disable action feature sets the command position equal to the actual position when the amp enable signal is set to disable. Stepper motor types are driven by a digital pulse, which is triggered by the controller's command position. Do not use disable action set to command equals actual with stepper motor types.

String: Cannot set disable action to CMD_EQ_ACT when motor type is STEPPER

MPIMotorMessagePULSE_WIDTH_INVALID
The motor stepper pulse width is not valid. This message code is returned by mpiMotorConfigSet(...) if the pulseWidth is out of range. To correct the problem, specify the the pulse width value between 100 nanoseconds and 1 millisecond.

String: Stepper Pulse Width out of range (.00000006 < pulseWidth < .00100006)

MPIMotorMessageFEEDBACK_REVERSAL_NA
The feedback reversal is not applicable for the feedback type specified. This message code is returned by mpiMotorConfigSet(...) if the feedback type is not MPIMotorEncoderTypeQUAD_AB and the encoderPhase is set to TRUE. To correct the problem, set encoderPhase to FALSE. Some drives may support feedback reversal via drive parameters. Please consult the drive manufacturer's documentation for details.

String: Unable to invert feedback for specified feedback type

MPIMotorMessagePHASE_FINDING_FAILED
The drive failed to complete the phase finding procedure. This message code is returned by mpiMotorPhaseFindStart(…) if the drive failed to successfully initailized commutation. To determine the cause of the failure, check the fault and warning codes from the drive with mpiMotorAmpFault(…) and mpiMotorAmpWarning(…).

String: Motor phase finding failure

MPIMotorMessageDEMAND_MODE_UNSUPPORTED
The motor does not support the specified demand mode. This message is returned by mpiMotorDemandModeSet(…) if the demand mode is configured for a mode that the node/drive does not support. To correct this problem, use the default demand mode or specify a different demand mode.

String: Specified demand mode not supported by drive

MPIMotorMessageDEMAND_MODE_NOT_SET
The demand mode cannot be changed while the amplifier is enabled. This message is returned by mpiMotorConfigSet(…) if the demand mode is changed while the motor’s amplifier is enabled. To avoid this error message, disable the motor’s amp enable with mpiMotorAmpEnableSet(…) before changing the demand mode.

String: Unable to switch demand mode while the amplifier is enabled

MPIMotorMessagePOSITION_FEEDBACK_OFFSET_UNSUPPORTED
The specified motor does not support the position feedback offset storage feature, either because the FPGA on the drive to which the motor is connected does not implement the feature, or because there is no storage available in the encoder's EEPROM. This message will also occur if the drive is not configured to talk to the encoder using the EnDat 2.1 protocol.

String: Position feedback offset storage not supported

MPIMotorMessagePOSITION_FEEDBACK_OFFSET_SET_FAILED
The specified motor failed to store the position feedback offset. The exact cause of the failure may vary, but it indicates a problem with the service channel mechanism used to communicate to the motor.

String: Position feedback offset set failed

MPIMotorMessagePOSITION_FEEDBACK_OFFSET_UNINITIALIZED
The motor object was able to retrieve the stored position feedback offset, but the internal checksum indicated that the data was unintialized. The returned position may not be valid. This error will also occur if the encoder memory used to store the offset becomes corrupted.

String: Position feedback offset data uninitialized or corrupted

Notify

MPINotifyMessageWAIT_IN_PROGRESS
The notify object is waiting for an event. This message code is returned by mpiNotifyEventWait(...) if the notify object is already waiting for an event in another thread. To prevent this problem, make sure a thread does not share notify objects with other threads.

String: Wait in progress

Packet

MPIPacketMessageADDRESS_INVALID
The server socket address is not valid. This message code is returned by mpiControlCreate(...) or mpiControlReset(...) if the server name is not specified or the server address is not valid. This message code comes from a lower level routine, mpiPacketClient(...). To correct the problem, make sure the server is operational and the server name or address is valid.

String: Address invalid

MPIPacketMessageCOMM_ERROR
The socket communication failed. This message code is returned by a packet method that fails to send or receive data correctly. This usually indicates a hardware problem. To correct this problem, make sure your network hardware is functioning properly and all network connections are reliable.

String: Communication error

MPIPacketMessageCONNECTION_CLOSED
The socket communication connection is closed. This message code is returned by mpiPacketRecv(...) or mpiPacketSend(...) if zero bytes of data are sent or received. This usually means the socket communication was not opened or was closed. To correct this problem, make sure mpiPacketCreate(...) was successful and that another thread did not close the socket connection.

String: Connection closed

Platform

MPIPlatformMessagePLATFORM_INVALID
The platform object is not valid. This message code is returned by a platform method if the platform object handle is not valid. Most applications do not use the platform module. The MPI library uses the platform module internally. If an application needs a platform handle, use mpiControlPlatform(...). Do NOT create your own platform object with mpiPlatformCreate(...).

String: Platform invalid

MPIPlatformMessageDEVICE_INVALID
The platform device driver is not valid. This message code is returned by mpiControlCreate(...) or mpiControlReset(...) if the platform device handle is not valid. This message code comes from the lower level routines, mpiPlatformInit(...) or mpiPlatformDeviceClose(...). To correct the problem, make sure the device driver is installed and operational.

String: Device invalid

MPIPlatformMessageDEVICE_ERROR
The platform device failed. This message code is returned by the platform methods that fail to access a controller via a device driver. It occurs if the specified board type is not a member of the MPIPlatformBoardType enumeration. It also occurs if the device driver fails to read/write controller memory or there is an interrupt handling failure. To correct the problem, verify the platform has support for your controller and the device drive is installed and operational. Check for any resource conflicts (memory range, I/O port range, and interrupts) with other devices.

String:

MPIPlatformMessageDEVICE_MAP_ERROR
The platform device memory mapping failed. This message code is returned by mpiControlCreate(...) or mpiControlReset(...) if the controller memory could not be mapped to the operating system's memory space. To correct this problem, verify there are no memory resource conflicts. Also, make sure the host computer and operating system have enough free memory for the controller.

String: Device map error

MPIPlatformMessageCOPY64_FAILURE
The 64-bit read failed. This message is returned by mpiPlatformMemoryGet64(…), mpiAxisCommandPositionGet(…), or mpiAxisActualPositionGet(…), if the 64-bit position data cannot be read atomically. Internally, the MPI uses an algorithm to construct the 64-bit position data via multiple 32-bit reads. If the 64-bit position value is not valid after multiple attempts, this error will be returned. If your application experiences this error message, if possible, use the equivalent 32-bit methods, mpiAxisCommandPositionGet32(…), mpiAxisActualPositionGet32(…), or contact MEI.

String: Copy64 failure

MPIPlatformMessagePATH_DOES_NOT_EXIST
The file path is not valid. This message code is returned by mpiLibraryInstallPath(…) if the directory path does not exist.

String: No such file or directory

MPIPlatformMessagePATH_IS_NOT_A_DIRECTORY
The file path is not actually a directory. This message code is returned by mpiLibraryInstallPath(…) if the path exists, but is not a directory.

String: The path is not a directory

MPIPlatformMessageINSTALL_VARIABLE_NOT_SET
The installation environment variable is not valid. This message code is returned by mpiLibraryInstallPath(…) if the install environment variable (MEI_MDK_DIR) is not set.

String: The MPI install directory environment variable is not set

MPIPlatformMessageDRIVER_VERSION_INCOMPATIBLE
The device driver version is not compatible with the MPI library. This message code is returned by mpiControlCreate(...) if the device driver version is not compatible. To correct the problem, use the installer package to install the device driver and library.

String: Incompatible driver version

MPIPlatformMessageFILE_TYPE_INVALID
The controller memory dump file is not valid. This message code is returned by mpiControlCreate(...) if the controller memory dump file format is not recognized by the MPI library.

String: Invalid file type

MPIPlatformMessageFILE_VERSION
The controller memory dump file version is not compatible with the MPI library. This message code is returned by mpiControlCreate(...) if the controller memory dump file version is not compatible with the MPI library.

String: Incorrect file version

Recorder

MPIRecorderMessageNO_RECORDERS_AVAIL
This message code is returned when there are no more recorders available to create. If the mpiRecorderCreate(control, -1) is called to create the next available recorder object and either all recorders have already been allocated or there are not enough recorders enabled on the controller, this error message will be returned. Check to make sure that enough recorders are enabled on the controller. To enable more recorders, use mpiControlConfigSet(...).

String: No recorders available

MPIRecorderMessageNOT_ENABLED
This message code is returned by a recorder method when a specific recorder is not enabled on the controller. When a recorder number is explicitly requested when creating a recorder such as mpiRecorderCreate(control, 3) and the corresponding recorder is not enabled on the controller, this message will be returned.

String: Not enabled

MPIRecorderMessageRUNNING
This message is returned by mpiRecorderConfigSet(...) and mpiRecorderConfigGet(...) when an application attempts to configure a recorder that is currently running.

String: Cannot configure while running

MPIRecorderMessageSTARTED
The data recorder is already running. This message code is returned by mpiRecorderStart(...) if the data recorder has already been started. If this is a problem, call mpiRecorderStop(...) to stop the data recorder or wait for the recorder to collect the number of specified records and stop.

String: Already started

MPIRecorderMessageSTOPPED
The data recorder is not running. This message code is returned by mpiRecorderStop(...) if the data recorder has already been stopped. If this is a problem, call mpiRecorderStart(...) to start the data recorder.

String: Already stopped

MPIRecorderMessageNOT_CONFIGURED
The data recorder has not been configured. This message code is returned by mpiRecorderRecordGet(...) if the data address count has not been configured. To correct this problem, configure the data recorder with mpiRecorderConfigSet(...).

String: Not configured

MPIRecorderMessageRECORD_COUNT_INVALID
This message code is returned by mpiRecorderStart(...) and mpiRecorderRecordConfig(...) when the specified recorder object has no records allocated to it. The recorder record count is configured by calling mpiControlConfigSet(...) with MPIControlConfig.recordCount[recorderNumber] set to a non-zero value. The recorder itself is enabled by setting MPIControlConfig.recorderCount. See MPIControlConfig.

String: Invalid record count set for recorder object

MPIRecorderMessageRESERVED
The data recorder cannot be created because it is already in use. This message code is returned by mpiRecorderValidate(...) if the requested data recorder is already in use. To correct this problem, call mpiRecorderCreate(...) with a recorder index for a recorder that is not already in use.

String: Recorder is already reserved

MPIRecorderMessageNOT_RESERVED
The data recorder is not reserved. This message code is returned by mpiControlRecorderCancel(...) if the requested data recorder is not already in use. To correct this problem, do not call mpiControlRecorderCancel(...) with a recorder index for a recorder that is not already in use.

String: Recorder is not reserved

Sequence

MPISequenceMessageSEQUENCE_INVALID
The sequence number is out of range. This message code is returned by mpiSequenceCreate(...) if the sequence number is less than zero or greater than or equal to MPIXmpMAX_PSs. This message code is also returned if the specified sequence number is not active in the controller. To correct this problem, use mpiControlConfigSet(...) to enable the sequence object, by setting the sequenceCount to greater than the sequence number. For example, to enable sequence 0 to 3, set sequenceCount to 4. This message code is returned by mpiSequenceLoad(...) if the sequence buffer size and the sequence page size are not equal. This indicates an internal MPI Library problem.

String: Sequence invalid

MPISequenceMessageCOMMAND_COUNT
The sequence command count is out of range. This message code is returned by mpiSequenceStart(...), or mpiSequenceCompile(...) if the sequence command count is less than or equal to zero. To correct this problem, set the command count to a value greater than zero.

String: Command count invalid

MPISequenceMessageCOMMAND_NOT_FOUND
The sequence command is not found. This message code is returned by mpiSequenceLoad(...), mpiSequenceStart(...), or mpiSequenceCompile(...) if the specified command is not a member of the sequence. To correct this problem, specify a command that is a member of the sequence.

String: Command not found

MPISequenceMessageSTARTED
The program sequencer is already running. This message code is returned by mpiSequenceResume(...), mpiSequenceStart(...), or mpiSequenceStep(...) if the program sequencer has already been started. If this is a problem, call mpiSequenceStop(...) to stop the program sequencer or monitor the sequence status and wait for the state to equal STOPPED.

String: MPISequenceStateSTARTED

MPISequenceMessageSTOPPED
The program sequencer is not running. This message code is returned by mpiSequenceStop(...) if the program sequencer has already been stopped. If this is a problem, call mpiSequenceStart(...) to start the program sequencer.

String: MPISequenceStateSTOPPED

Server

MPIServerMessageMETHOD_INVALID
The server method is out of range. This message code is returned by mpiServerMethod(...) if the method number is not a member of the MPIRemoteMethod enumeration.

String: Method invalid

MPIServerMessageHEADER_INVALID
The server packet header is not valid. This message code is returned by mpiServerMethod(...) if the packet header is corrupted. This indicates a problem with the message transmission. Check your network hardware. This message code can also be returned when there is an MPI version mismatch between the server.exe utility and the connecting client application.

String: Header invalid

SqNode

MPISqNodeMessageINVALID
The SqNode type is out of range. This message code is returned by SynqNet node methods if the node type is not a member of the SQNodeLibNodeType enumeration.

String: Invalid

MPISqNodeMessageNODE_INVALID
The node number is not available on the network. This message code is returned by MPI methods that fail a service command transaction due to the specified node number is greater than or equal to the total number of nodes discovered during network initialization. To correct this problem, check the discovered node count with mpiSynqNetInfo(...). If the node count is not what you expected check your network wiring, node condition, and re-initialize the network with mpiControlReset(...).

String: Node invalid

MPISqNodeMessageSTATE_ERROR
Some methods can only be executed in SYNQ state. This message will be returned when the network is not in the expected network state (i.e ASYNQ state).

String: Network state error

MPISqNodeMessageCONFIG_NETWORK_MISMATCH
The type of map file specified in mpiSqNodeDriveMapParamFileSet(...) does not match the type of drive found on the network.

String: Config file and network are different

MPISqNodeMessageNOT_IN_CONFIG_FILE
The parameter name or number specified in mpiSqNodeDriveMapParamFileSet(...) was not valid for the specified drive.

String: Not in Config File

MPISqNodeMessageBOOT_FILE_NOT_FOUND
The drive firmware boot file was not found. This message code is returned by mpiSqNodeDownload(…) if the drive specific firmware boot file was not found in the path.

String: Boot file not found or corrupt, kollmorgen_ember.a00 must be in path

MPISqNodeMessageMAP_CONFIG_MISMATCH
The parameter name or number specified in mpiSqNodeDriveMapParamFileSet(...) was not valid for the specified drive.

String: Map and config files are different

MPISqNodeMessageCONFIG_FILE_FORMAT_INVALID
A file with an incorrect format was used in mpiSqNodeDriveMapParamFileSet(...).

String: Config file format invalid

MPISqNodeMessageRESPONSE_TIMEOUT
The drive/node did not respond to the service command issued in a reasonable amount of time. It's possible that this error was caused by the node losing communication to the SynqNet network. To correct this problem, check your node hardware. See mpiSqNodeInfo or MPISynqNetMessage.

String: Service cmd response timeout

MPISqNodeMessageREADY_TIMEOUT
The node/drive did not complete the hand shaking for the service command.

String: Service cmd ready timeout

MPISqNodeMessageSRVC_ERROR
There was an error in carrying out the service command issued.

String: Service cmd error

MPISqNodeMessageSRVC_UNSUPPORTED
The service command issued is either not supported or recognized by the drive.

String: Service cmd unsupported

MPISqNodeMessageCMD_NOT_SUPPORTED
The service command is not supported by the node.

String: Node module did not complete the specified operation

MPISqNodeMessageDISCOVERY_FAILURE
Unable to discover node rescources.

String: Node specific discovery failure

MPISqNodeMessageINIT_FAILURE
A node specific initialization routine was unable to successfully complete its routine. Verify that the node FPGA is the default version for your MPI version. See MPISqNodeInfoFpga.

String: Node specific initialization failure

MPISqNodeMessageFILE_NODE_MISMATCH
Node type does not match the file provided for download.

String: Node type does not match the file provided for download

MPISqNodeMessageFILE_INVALID
The file provided for download was not found or was corrupted.

String: The file provided for download was not found

MPISqNodeMessageINVALID_HEADER
The header information in the download image is invalid. Please verify firmware file to be correct and retry download. If firmware file is correct please contact firmware manufacturer.

String: The header information in the download image is invalid

MPISqNodeMessageDOWNLOAD_FAIL
Node firmware download failed. Verify that the firmware file is correct and retry the download.
NOTE: A network reset my be required.

String: Node firmware download failed

MPISqNodeMessageVERIFY_FAIL
The node FPGA firmware does not match the FPGA image file.

String: Node firmware verify failed

MPISqNodeMessageDOWNLOAD_NOT_SUPPORTED
The downloading of the node firmware (FPGA) image is not supported for this node.

String: Firmware download not supported

MPISqNodeMessageVERIFY_NOT_SUPPORTED
The Node specified for verification does not support the upload of the FPGA image. Therefore, the image cannot be verified.

String: Firmware verify not supported

MPISqNodeMessageBOOT_ROM_INVALID
The SqNode Boot Rom identification or version is not recognized by the MPI.

String: Boot rom not recognized

MPISqNodeMessageINVALID_TABLE
Invalid resource table in node module. This is a fatal error within the MPI. Please verify MPI and node FPGA versions to be correct and then contact MEI's Technical Support.

String: Invalid resource table in node module

MPISqNodeMessageINVALID_STR_LEN
An attempt to write information to the node has failed due to an invalid string length.

String: Invalid string length

MPISqNodeMessageFEEDBACK_MAP_INVALID
Returned from mpiSqNodeConfigSet(...) when the given secondary encoder (n) is not mappable to the motor on the node specified by MPISqNodeFeedbackSecondary[n].motorIndex. See MPISqNodeFeedbackSecondary.

String: Invalid feedback map attempt

MPISqNodeMessageNODE_FAILURE
An attempt was made to access a SynqNet node that has a node failure event active.

String: Node failure

MPISqNodeMessageEXCEEDED_MAXIMUM_SYNQNET_PACKET_LIMIT
When initializing the SynqNet network one of the node requires a SynqNet packet larger that what can be supported.

String: Exceeded maximum synqnet packet limit

MPISqNodeMessageIO_MODULE_INCOMPATIBILITY
Two modules attached to a SQID node are incompatible. This error message code is returned when initializing a SQID node. Different types of I/O module may be incompatible and will not work on the same SQID node.

String: I/O Module Incompatibility

MPISqNodeMessageIO_MODULE_EEPROM_NOT_PROGRAMMED
The EEPROM on one of the modules attached to a SQID node has not been programmed.

String: I/O Module EEPROM not programmed

MPISqNodeMessageIO_MODULE_COUNT_EXCEEDED
The maximum number of I/O that can be supported by a SQID node has been exceeded.

String: I/O Module Count Exceeded

MPISqNodeMessageIO_MODULE_LENGTH_CHECK_FAILED
When initializing an SQIO node, checks are performed to confirm that the node actually supports the correct number of I/O. This error is returned when one of these tests fails. An error will occur when the length of at least one of the inter module (SPI) buses did not match the length calculated from data held in the module EEPROMs. This error message can be returned by MPI functions that reset the SynqNet Network such as, mpiControlReset(...), mpiControlInit(...), mpiSynqNetInit(...). This error can ONLY be generated by SQIO nodes. This fault can also be caused by a poor electrical connection between the SQID and the I/O modules. If the modules are firmly connected and the error persists then you will need to contact your supplier of the I/O Modules to correct the hardware.

String: I/O Module length check failed

MPISqNodeMessageIO_MODULE_3_3V_BUS_CURRENT_EXCEEDED
During the initialization of the modules attached to a SQID node, the maximum current that can be drawn from the inter module 3.3V bus exceeds the allowable current.

String: I/O Module 3.3V bus current exceeded

MPISqNodeMessageIO_MODULE_24V_BUS_CURRENT_EXCEEDED
During the initialization of the modules attached to a SQID node, the maximum current that can be drawn from the inter module 5V bus exceeds the allowable current.

String: I/O Module 24V bus current exceeded

MPISqNodeMessageIO_SLICE_INITIALIZATION_FAULT
An error was encountered while initalizing the slice node.

String: I/O Slice initalization fault

MPISqNodeMessageIO_SLICE_INITIALIZATION_FAULT_TOO_MANY_SLICES
Slice I/O nodes can only support 32 slices attached to the network adapter. This error is returned when more than 32 slices are detected.

String: I/O Slice initalization fault too many slices

MPISqNodeMessageIO_SLICE_INITIALIZATION_TIMEOUT
The slice node did not initalize within the expected time.

String: I/O Slice initalization timeout

MPISqNodeMessageIO_SLICE_INITIALIZATION_FAULT_VENDOR_MISMATCH
A slice is attached to the node that is not supplied by MPI. You can only use slices supplied by MPI.

String: I/O Slice initalization timeout

MPISqNodeMessageIO_SLICE_TOPOLOGY_MISMATCH
When attempting to restore the slice parameters to the attached slices of a Slice I/O node, the arrangement of slices did not match the expected arrangement. If you wish to clear the previous slice parameters, you can stop this error by calling mpiSqNodeSegmentParamClear(...).

String: I/O Slice initalization timeout

MPISqNodeMessageIO_SLICE_SERVICE_RECEIVE_ERROR
When attempting to access data on Slice I/O, a communication fault was detected. The message received from the slice was badly formed, errors include CRC and missing start/stop bits.

String: I/O Slice service receive error

MPISqNodeMessageIO_SLICE_SERVICE_TOO_MANY_CHAR
When attempting to access data on Slice I/O, a communication fault was detected. The slice returned too many characters when responding to this request.

String: I/O Slice service too many char

MPISqNodeMessageIO_SLICE_SERVICE_BUS_ERROR_CODE
When attempting to access data on Slice I/O, a communication fault was detected. The slice returned an error code.

String: I/O Slice service bus error code

MPISqNodeMessageIO_SLICE_SERVICE_UNKNOWN_FAULT_CODE
When attempting to access data on Slice I/O, a communication fault was detected. An unknown fault was detected when accessing this slice.

String: I/O Slice service unknown fault code

MPISqNodeMessageIO_SLICE_SERVICE_RESOURCE_UNAVAILABLE
When attempting to access data on Slice I/O, a communication fault was detected. The slice does not support the requested data.

String: I/O Slice service resource unavailable

MPISqNodeMessageIO_SLICE_SERVICE_NOT_SUPPORTED
When attempting to access data on Slice I/O, a communication fault was detected. The slice does not support the action requested on this data. For example, a read or write.

String: I/O Slice service not supported

MPISqNodeMessageIO_SLICE_SERVICE_INVALID_ATTRIBUTE_VALUE
When attempting to access data on Slice I/O, a communication fault was detected. The slice does not support the requested data.

String: I/O Slice service invalid attribute value

MPISqNodeMessageIO_SLICE_SERVICE_ALREADY_IN_MODE
When attempting to access data on Slice I/O, a communication fault was detected. The slice is already in the requested mode.

String: I/O Slice service already in mode

MPISqNodeMessageIO_SLICE_SERVICE_STATE_CONFLICT
When attempting to access data on Slice I/O, a communication fault was detected. The slice can not perform the requested action in its current state.

String: I/O Slice service state conflict

MPISqNodeMessageIO_SLICE_SERVICE_ATTRIBUTE_NOT_SETTABLE
When attempting to access data on Slice I/O, a communication fault was detected. You cannot modify the data on this slice.

String: I/O Slice service attribute not settable

MPISqNodeMessageIO_SLICE_SERVICE_NOT_ENOUGH_DATA
When attempting to access data on Slice I/O, a communication fault was detected. Not enough data was supplied to the slice for this operation.

String: I/O Slice service not enough data

MPISqNodeMessageIO_SLICE_SERVICE_ATTRIBUTE_NOT_SUPPORTED
When attempting to access data on Slice I/O, a communication fault was detected. The slice does not support the requested data.

String: I/O Slice service attribute not supported

MPISqNodeMessageIO_SLICE_SERVICE_TOO_MUCH_DATA
When attempting to access data on Slice I/O, a communication fault was detected. Too much data was supplied to the slice for this operation.

String: I/O Slice service too much data

MPISqNodeMessageIO_SLICE_SERVICE_OBJECT_DOES_NOT_EXIST
When attempting to access data on Slice I/O, a communication fault was detected. The slice does not support the requested data.

String: I/O Slice service object does not exist

MPISqNodeMessageIO_SLICE_SERVICE_INVALID_PARAMETER
When attempting to access data on Slice I/O, a communication fault was detected. The slice does not support the specified parameter.

String: I/O Slice service invalid parameter

MPISqNodeMessageIO_SLICE_SERVICE_STORE_OPERATION_FAILURE
When attempting to access data on Slice I/O, a communication fault was detected. The slice failed during a store operation.

String: I/O Slice service store operation failure

MPISqNodeMessageIO_SLICE_SERVICE_UNKNOWN_ERROR_CODE
When attempting to access data on Slice I/O, a communication fault was detected. The error code from the slice was not recognized.

String: I/O Slice service unknown error code

MPISqNodeMessageIO_SLICE_SERVICE_TIMEOUT
When attempting to access data on Slice I/O, a communication fault was detected. The operation on the slice exceeded the timeout threshold.

String: I/O Slice service timeout

MPISqNodeMessageIO_SLICE_SERVICE_RESPONSE_FORMAT
When attempting to access data on Slice I/O, a communication fault was detected. The response from the slice was not formatted correctly.

String: I/O Slice service response format

MPISqNodeMessageIO_SLICE_SERVICE_EEPROM_FORMAT
The data held on the EEPROM on the network adaptor was not formatted correctly.

String: I/O Slice eeprom format

MPISqNodeMessageIO_SLICE_SERVICE_TOO_MUCH_IO
When attempting to access data on Slice I/O, a communication fault was detected. You should remove some slices to stop this error message from being generated.

String: I/O Slice too much IO

MPISqNodeMessagePARAM_READ_ONLY
The drive parameter that the user is attempting to set is read only.

String: Parameter is read only

MPISqNodeMessagePARAM_LOCKED
The drive parameter that the user is attempting to set is not accessible. SelSFDParam must be set to 0, otherwise the SFD motor parameters will be used.

String: SFD motor selected, parameter is locked

MPISqNodeMessageMONITOR_INDEX
Drive does not support the configuring of Monitors through indexing.

String: Monitor config invalid, index not supported

MPISqNodeMessageMONITOR_ADDRESS
Drive does not support the configuring of Monitors through addressing.

String: Monitor config invalid, address not supported

MPISqNodeMessageMONITOR_NA
The node does not support monitors. This message code is returned by mpiSqNodeDriveMonitorInfo(…) if the node does not support drive monitors.

String: Monitor support is not available for this drive

MPISqNodeMessageCOMMUTATION_INIT_FAILURE
The drive communtation intialization failed. This is a drive specific message code returned by a drive specific communtation initialization function.

String: Commutation initialize failure

MPISqNodeMessagePOSITION_CLEAR_FAILURE
The drive position clear failed. This is a drive specific message code returned by a drive specific position clear function.

String: Position clear failure

MPISqNodeMessageNODE_EEPROM_SET
This is an internal error, caused by a failure to re-configure the node’s EEPROM.

String: Node identification invalid, EEPROM over written

MPISqNodeMessageDRIVE_FIRMWARE_FLASH_ERASE_FAILURE
The drive firmware flash erase failed. This is a drive specific message code returned by a drive specific firmware flash erase function.

String: Drive firmware flash erase failure

MPISqNodeMessageDRIVE_MULTITURN_POSITION_READ_FAILURE
The drive multi-turn position data initialization failed. This is a drive specific message code returned by a drive specific multi-turn position data initialization function.

String: Drive ABS multi-turn read failure

MPISqNodeMessagePOSITION_FEEDBACK_UNINITIALIZED
The feedback device position offset has not been initialized. This message code is returned by mpiMotorPositionFeedbackOffsetGet(…) if the feedback device position offset has not been initialized with mpiMotorPositionFeedbackOffsetSet(…).

String: Position feedback offset data uninitialized or corrupt

MPISqNodeMessageFIRMWARE_FILE_CRC_ERROR
The drive firmware file CRC did not match the expected CRC, the file is corrupt. This message code is returned by mpiSqNodeDownload(…) if the drive firmware file CRC fails.

String: File CRC error

MPISqNodeMessageFIRMWARE_DOWNLOAD_WARNING
The drive firmware download version string is not valid. This is a drive specific message code returned by a drive specific firmware download.

String: Firmware download warning

MPISqNodeMessageUART_READ_FAIL
The node UART failed to read data. This is a drive specific message code returned by a drive specific UART Rx function.

String: UART read character failed

MPISqNodeMessageUART_READ_TIMEOUT
The node UART read timed out. This is a drive specific message code returned by a drive specific UART Rx function.

String: UART read character timeout

MPISqNodeMessageCAPTURE_NOT_SUPPORTED
The node hardware or FPGA does not support capture. This message code is returned by mpiCaptureConfigSet(…) if the node does not support captures.

String: Capture module not supported

SynqNet

MPISynqNetMessageSYNQNET_INVALID
The SynqNet number is out of range. This message code is returned by mpiSynqNetCreate(...) if the SynqNet network number is less than zero or greater than or equal to the controller hardware SynqNet interfaces.

String: SynqNet invalid

MPISynqNetMessageMAX_NODE_ERROR
The SynqNet node number is out of range. This message code is returned by a SynqNet method if the specified node number is greater than or equal to to the number of discovered network nodes.

String: Maximum blocks exceeded

MPISynqNetMessageSTATE_ERROR
The SynqNet network state is not valid. This message code is returned by any method that initializes a SynqNet network if the controller's network state did not reach SYNQ state. The most commonly used methods that initialize the SynqNet network are: mpiControlInit(...), mpiControlReset(...) and mpiSynqNetInit(...). This message code indicates a failure in the controller's initialization sequence. To correct this problem, call mpiControlReset(...).

String: Unexpected network state

MPISynqNetMessageCOMM_ERROR
The SynqNet network communication failed. This message code is returned by MPI methods that fail a service command transaction due to a network shutdown. This message indicates a node or network cable failure. To correct this problem, check your network wiring and node condition.

String: Network communication is down

MPISynqNetMessageCOMM_ERROR_CRC
The SynqNet network communication failed due to excessive CRC errors. This message code is returned by MPI methods that fail a service command transaction due to a network shutdown. This message indicates a node or network cable failure. To correct this problem, check your network wiring and node condition.

String: Network down due to CRC errors

MPISynqNetMessageCOMM_ERROR_RX
The SynqNet network communication failed due to a Rincon receive error. This message code is returned by MPI methods that fail a service command transaction due to a network shutdown. This message indicates a node or network cable failure. To correct this problem, check your network wiring and node condition.

String: Network down due to Rx errors

MPISynqNetMessageCOMM_ERROR_RX_LEN
The SynqNet network communication failed due to a Rincon receive length error. This message code is returned by MPI methods that fail a service command transaction due to a network shutdown. This message indicates a node or network cable failure. To correct this problem, check your network wiring and node condition.

String: Network down due to Rx packet length errors

MPISynqNetMessageCOMM_ERROR_RX_FIFO
The SynqNet network communication failed due to a Rincon receive buffer error. This message code is returned by MPI methods that fail a service command transaction due to a network shutdown. This message indicates a node or network cable failure. To correct this problem, check your network wiring and node condition.

String: Network down due to Rx pack errors

MPISynqNetMessageCOMM_ERROR_RX_DRIBBLE
The SynqNet network communication failed due to a Rincon receive dribble error. This message code is returned by MPI methods that fail a service command transaction due to a network shutdown. This message indicates a node or network cable failure. To correct this problem, check your network wiring and node condition.

String: Network down due to Rx dribble

MPISynqNetMessageCOMM_ERROR_RX_CRC
The SynqNet network communication failed due to a Rincon receive CRC error. This message code is returned by MPI methods that fail a service command transaction due to a network shutdown. This message indicates a node or network cable failure. To correct this problem, check your network wiring and node condition.

String: Network down due to CRC errors

MPISynqNetMessageINTERFACE_NOT_FOUND
The controller does not support a SynqNet interface. This message code is returned by mpiControlCreate and mpiControlReset(...) if the controller does not have a SynqNet hardware interface. To correct this problem, use a controller that supports SynqNet.

String: Interface not available

MPISynqNetMessageTOPOLOGY_MISMATCH
The network topology does not match the expected network topology. This message code is returned by mpiControlCreate or mpiSynqNetInit(...) if the discovered network topology does not match the controller's expected network topology (stored in dynamic memory). During the first network initialization the controller stores node identification information (manufacturer, product, and unique values) into it's dynamic memory. This message code indicates the number of nodes, the node order, or types of nodes have changed since the initial network initialization. To correct this problem, either change the network topology to the original configuration or clear the controller's memory with mpiControlResetToDefault(…) or mpiControlReset(...).

String: Network topology mismatch in dynamic memory - network in asynq mode

MPISynqNetMessageTOPOLOGY_MISMATCH_FLASH
The network topology does not match the expected network topology. This message code is returned by mpiControlCreate(...) or mpiSynqNetInit(...) if the discovered network topology does not match the controller's expected network topology (stored in flash memory). During the first network initialization the controller stores node identification information (manufacturer, product, and unique values) into it's dynamic memory. Later, when mpiControlFlashSaveAll(...) is called the topology information is stored into flash memory. This message indicates the number of nodes, the node order, or types of nodes have changed since the topology information was stored in flash. To correct this problem, either change the network topology to the saved configuration or clear the controller's flash topology with mpiControlResetToDefault(...) and mpiControlFlashSaveAll(...).

String: Network topology mismatch in flash memory - network in asynq mode

MPISynqNetMessageRESET_REQ_TIMEOUT
The network reset request packet exceeded the timeout. This message code is returned by mpiControlCreate(...), mpiControlReset(...), or mpiSynqNetInit(...) if the reset request packet fails to traverse the network in the allotted time. This message code indicates a node or network cable failure. To correct this problem, check your network wiring and node condition.

String: Timeout : reset request packet

MPISynqNetMessageRESET_ACK_TIMEOUT
The network reset complete packet exceeded the timeout. This message code is returned by mpiControlCreate(...), mpiControlReset(...), or mpiSynqNetInit(...) if the reset complete packet fails to traverse the network in the allotted time. This message code indicates a node or network cable failure. To correct this problem, check your network wiring and node condition.

String: Reset complete packet

MPISynqNetMessageDISCOVERY_TIMEOUT
The network topology discovery exceeded the timeout. This message code is returned by mpiControlCreate(...), mpiControlReset(...), or mpiSynqNetInit(...) if the controller failed to discover the network topology in the allotted time. This message code indicates a node or network cable failure. To correct this problem, check your network wiring and node condition.

String: Discovery problem

MPISynqNetMessageNO_NODES_FOUND
The controller did not find network nodes. This message code is returned by mpiControlCreate(...), mpiControlReset(...), or mpiSynqNetInit(...) if the controller failed to discover any nodes during network initialization. This message code indicates the first node has failed or the network connection from the controller to the first node is faulty. To correct this problem, check your network wiring and node condition.

String: No nodes found on network

MPISynqNetMessageNO_TIMING_DATA_AVAIL
The corresponding SynqNet node module does not contain timing data, so the network cannot be initialized. Contact MEI or drive manufacturer for an updated node module.

String: No timing data available in module

MPISynqNetMessageINVALID_MOTOR_COUNT
This message is returned by mpiSynqNetPacketConfigSet(...), when the packet configuration contains more motors than supported by the node.

String: Too many motors configured for this node

MPISynqNetMessageINVALID_SECONDARY_FEEDBACK_COUNT
This message is returned by mpiSynqNetPacketConfigSet(...), when the packet configuration contains more secondary encoders than supported by the node.

String: Too many motors configured for this node

MPISynqNetMessageINVALID_COMMAND_CFG
This message is returned by mpiSynqNetPacketConfigSet(...), when the packet configuration contains a different command configuration than is supported by the node.

String: Invalid command configuration

MPISynqNetMessageINVALID_PULSE_ENGINE_COUNT
This message is returned by mpiSynqNetPacketConfigSet(...), when the packet configuration contains an illegal number of pulse engines.

String: Invalid pulse engine count

MPISynqNetMessageINVALID_FEEDBACK_COUNT
This message is returned by mpiSynqNetPacketConfigSet(...), when the packet configuration contains more encoders than supported by the node.

String: Invalid feedback count

MPISynqNetMessageINVALID_CAPTURE_COUNT
This message is returned by mpiSynqNetPacketConfigSet(...), when the packet configuration contains a larger capture count than is supported by the node.

String: Invalid capture count

MPISynqNetMessageINVALID_INPUT_COUNT
This message is returned by mpiSynqNetPacketConfigSet(...), when the packet configuration contains a larger ioInput count than is supported by the node.

String: Invalid ioInput count

MPISynqNetMessageINVALID_OUTPUT_COUNT
This message is returned by mpiSynqNetPacketConfigSet(...), when the packet configuration contains a larger ioOutput count than is supported by the node.

String: Invalid ioOutput count

MPISynqNetMessageINVALID_MONITOR_CFG
This message is returned by mpiSynqNetPacketConfigSet(...), when the packet configuration contains more monitor fields than the node can support.

String: Invalid monitor field configuration

MPISynqNetMessageINVALID_ANALOG_IN_COUNT
This message is returned by mpiSynqNetPacketConfigSet(...), when the packet configuration contains a larger analogIn count than is supported by the node.

String: Invalid monitor field configuration

MPISynqNetMessageINVALID_DIGITAL_IN_COUNT
This message is returned by mpiSynqNetPacketConfigSet(...), when the packet configuration contains a larger digitalIn count than is supported by the node.

String: Invalid digitalIn count

MPISynqNetMessageINVALID_DIGITAL_OUT_COUNT
This message is returned by mpiSynqNetPacketConfigSet(...), when the packet configuration contains a larger digitalOut count than is supported by the node.

String: Invalid digitalOutput count

MPISynqNetMessageINVALID_ANALOG_OUT_COUNT
This message is returned by mpiSynqNetPacketConfigSet(...), when the packet configuration contains a larger analogOut count than is supported by the node.

String: Invalid analogOut count

MPISynqNetMessageLINK_NOT_IDLE
This message is returned by mpiSynqNetIdleCableStatus(...) when the cable number supplied is not the idle link. The status check can only be run on an idle cable. See mpiSynqNetIdleCableListGet(...).

String: Cable number is not idle, status is unknown

MPISynqNetMessageIDLE_LINK_UNKNOWN
This message is returned by mpiSynqNetIdleCableListGet(...) when an idle cable number in a ring topology cannot be determined. This is due to one or more failed nodes on a ring topology. Be sure to check the status of the nodes.

String: Idle cable number unknown due to failed node(s)

MPISynqNetMessageRING_ONLY
This message is returned by mpiSynqNetIdleCableListGet(...) and mpiSynqNetIdleCableStatus(...) because idle cables exist on ring topologies only. It is also returned by mpiSynqNetConfigSet(...) when attempting to enable SynqNet recovery mode, which is only supported for ring topologies.

String: Only supported with ring topologies

MPISynqNetMessageRECOVERING
The network is recovering from a fault condition. This message is returned by mpiSynqNetIdleCableStatus(...) during network fault recovery, because the network traffic is being redirected around the faulted cable and a new idle cable is in the process of being assigned. If you receive this message, wait for recovery to complete and then check the identity of the idle cable with mpiSynqNetIdleCableListGet(...).

String: Network is currently recovering from a fault

MPISynqNetMessageCABLE_LENGTH_UNSUPPORTED
This message is returned when a cable on the network is too long.

String: Detected an unsupported cable length

MPISynqNetMessageCABLE_LENGTH_TIMEOUT
The cable length discovery failed to complete due to a timeout. This message is returned by mpiControlInit(…), mpiSynqNetInit(…), or mpiSynqNetNodeRestart(…) during SynqNet network initialization if the node fails to respond to a cable length measurement packet. This message indicates a hardware problem. To correct the problem, check your cabling and node hardware.

String: Cable length measurement timeout

MPISynqNetMessageCABLE_LENGTH_MISMATCH
This message is returned at network initialization when topology has been saved to flash and a cable length is detected that lies outside the MPISynqNetConfig.cableLength[n].minimum and maximum. Check cable length (if necessary) and save new cable length values to flash. See MPISynqNetConfig.

String: Cable length mismatch - network in asynq mode

MPISynqNetMessageCABLE_LENGTH_INVALID_NOMINAL
The nominal cable length is too long.

String: Nominal cable length out of range

MPISynqNetMessageCABLE_LENGTH_INVALID_MIN
The minimum cable length is too long or exceeds nominal value.

String: Minimum cable length out of range

MPISynqNetMessageCABLE_LENGTH_INVALID_MAX
The maximum cable length is too long or is less than nominal value.

String: Maximum cable length out of range

MPISynqNetMessageNODE_FPGA_VERSION
The node FGPA version is out of date. Use sqNodeFlash.exe to load most current FPGA version to node.

String: Node FPGA version mismatch warning

MPISynqNetMessageNODE_INIT_FAIL
A node specific initialization routine was unable to complete successfully. Verify node FPGA is the default version for your MPI version. See MPISqNodeInfoFpga.

String: Node specific initialization failed

MPISynqNetMessageNODE_MAC_VERSION
A node on the network has an incompatible MAC version. Use sqNodeFlash.exe to load the correct node .sff file that came with your MPI release.

String: Node MAC version mismatch - network in asynq mode

MPISynqNetMessageSCHEDULING_ERROR
This is a generic return value to indicate that a problem has occurred while calculating the network scheduling. For more specific information about the error, run your application with timing assignment tracing turned on, using the trace mask:
0x00100000 SynqNet: Display timing assignments

String: Unrecoverable network scheduling error

MPISynqNetMessageSAMPLE_PERIOD_NOT_MULTIPLE
The controller update period is not an integer multiple of all the SynqNet nodes drive periods.
This message is returned from mpiControlConfigSet(…) if the specified controller sample rate is not an integer multiple of the node drive periods. For more details, see Sample Rate for more details.

String: Controller sample rate must be a integer multiple of all node update periods

MPISynqNetMessageNODE_LATENCY_EXCEEDED
The node latency exceeded the maximum control latency limit. This message is returned by mpiControlInit(…) or mpiSynqNetInit(…) during SynqNet initialization if the node latency exceeds the maximum control latency configured by mpiSqNodeConfigSet(…). To avoid this problem, either leave the maximum control latency configuration at the default value or increase the maximum control latency limit.

String: Node control latency maximum exceeded

MPISynqNetMessageHOT_RESTART_FAIL_NOT_SYNQ_STATE
The SynqNet network is currently not in SYNQ mode. This message is returned by mpiSynqNetNodeRestart(…) if the SynqNet network is not in the SYNQ state when the nodes are restarted. To avoid this problem, make sure that the network state is in SYNQ mode before attempting to restart any shutdown nodes. Use mpiSynqNetInit(…) to initialize a SynqNet network to the SYNQ state.

String: Not in Synq state

MPISynqNetMessageHOT_RESTART_FAIL_RECOVERING
The SynqNet network is not ready for a node restart. The network is currently in a recovery state (see MPISynqNetState) or the network has recovery mode disabled. Wait for the network to finish recovering or enable recovery mode. This message is returned by mpiSynqNetNodeRestart(…) if the SynqNet network fault recovery is in process. To avoid this problem, wait for fault recovery to complete before restarting a node.

String: Recovering

MPISynqNetMessageHOT_RESTART_FAIL_TEST_PACKET
The SynqNet node restart did not complete due to a failed restart packet. This message is returned by mpiSynqNetNodeRestart(…) if the restart packet failed. The problem is that the test packet is in use, so hot restart cannot take place. Test packets should not be in use when using Hot Restart because restart takes over the test packet's memory locations.

String: Test packet active

MPISynqNetMessageHOT_RESTART_FAIL_ADDRESS_ASSIGNMENT
The SynqNet node restart did not complete due to failed node identification. The node failed to receive its address assignment and most likely does not support the SynqNet Hot Restart feature. This message is returned by mpiSynqNetNodeRestart(…), if the node did not respond to a service command to read the node’s identification data. This message indicates a hardware problem. To correct the problem, check your cabling and node hardware.

String: Node Address Assignment Failure

MPISynqNetMessageHOT_RESTART_NOT_ALL_NODES_RESTARTED
One or more SynqNet nodes were not restarted. This message is returned by mpiSynqNetNodeRestart(…), if any node could not be restarted. This message is for information purposes. Possible causes for nodes not being restarted are if they are not connected to the network or do not have power.

String: Not all nodes could be restarted

MPISynqNetMessageSHUTDOWN_NODES_NONCONSECUTIVE
The specified nodes to shutdown are not sequential. This message is returned by mpiSynqNetShutdown(…) if the shutdown nodeMask does not specify sequential nodes. This message protects the user from shutting down nodes without specifying them in the nodeMask. For example, suppose there are three nodes in a string (0, 1, 2) and the shutdown nodeMask = 0x5 (node 0 and 2). Node 1 would fail when nodes 0 and 2 are shutdown.

String: Nodes being shutdown need to be consecutive

MPISynqNetMessageSHUTDOWN_NODES_STRANDED
The specified nodes to shutdown will cause additional nodes to fail. This message is returned by mpiSynqNetShutdown(…) if the shutdown nodeMask will cause additional nodes not specified in the nodeMask to fail. This message protects the user from shutting down nodes without specifying them in the nodeMask. For example, suppose there are two nodes in a string (0, 1) and the shutdown nodeMask = 0x1 (node 0). Node 1 would fail when node 0 is shutdown.

String: Shutting down the nodes requested will result in stranding working drives on the system, check topology

MPISynqNetMessageSHUTDOWN_RECOVERY_DISABLED
The SynqNet network recovery mode is disabled. This message is returned by mpiSynqNetShutdown(…) if the network is a ring topology and the recovery mode is disabled. To avoid this message, set the SynqNet network recovery configuration to Single-Shot or Auto-Arm.

String: Shutting down nodes requires recovery to be enabled

MPISynqNetMessageSHUTDOWN_REQUESTED_NODE_INVALID
The specified node to shutdown does not exist. This message is returned by mpiSynqNetShutdown(…) if the shutdown nodeMask specifies a node that does not exist on the network.

String: Shutdown node mask specifies a node that does not exist

MPISynqNetMessageNODE_BOOT_FPGA_VERSION
The node boot FPGA is not compatible. This message code is returned during network initialization or node flash download if the boot FPGA is not compatible with the MPI. To correct the problem, contact the node manufacturer for an upgrade.

String: Node with a boot FPGA is found in the network.

MPISynqNetMessageNODE_FPGA_LAB_VERSION
The node runtime FPGA is a lab version and has not been tested or released. This message code is returned during network initialization if the runtime FPGA is not a production release. Do not ship machines with lab FPGAs! Lab FPGAs are for internal purposes only. To correct the problem, use the FPGA included in the software release package.

String: Node with a Lab FPGA is found in the network.

MPISynqNetMessageNODE_MAC_LAB_VERSION
The node MAC FPGA is a lab version and has not been tested or released. This message code is returned during network initialization if the runtime FPGA is not a production release. Do not ship machines with lab FPGAs! Lab FPGAs are for internal purposes only. To correct the problem, use the FPGA included in the software release package.

String: Node with a Lab version of MAC FPGA found in the network.

MPISynqNetMessageCONTROLLER_BANDWIDTH
The controller maximum foreground time is too long. This message code is returned during network initialization if the controller maximum foreground time is too close to the SynqNet packet transmit time. To correct the problem, reduce the controller sample rate or increase the TxTime.

String: Maximum foreground cycle is too long, increase TxTime or reduce controller sample rate

MPISynqNetMessagePACKET_BANDWIDTH
The packet downstream payload is too large. This message code is returned during network initialization if the controller does not have enough time to transmit the packet data. To correct the problem, reduce the controller sample rate.

String: Downstream packet payload is too large, reduce controller sample rate

MPISynqNetMessageFOREGROUND_EXCEEDS_CONTROLLER_TX_TIME
The controller maximum foreground time is too long. This message code is returned during network initialization if the controller maximum foreground time exceeds the TxTime. To correct the problem, reduce the controller sample rate or increase the TxTime.

String: Maximum foreground calculation time exceeds TxTime, increase TxTime or reduce sample rate

Thread

MPIThreadMessageTHREAD_NOT_RUNNING
The thread is not running. This message code is returned by mpiThreadPriorityGet(...) and mpiThreadPrioritySet(…) if the thread is not active. To correct the problem, start the thread.

String: Thread is not running

MPIThreadMessageTHREAD_RUNNING
The thread is running. This message code is returned by mpiThreadDelete(…) or mpiThreadStart(…) if the thread is active. To correct the problem, stop the thread.

String: Thread is currently running

MPIThreadMessageTHREAD_NOT_STARTED
The thread has not been started yet. This message code is returned by mpiThreadArgument(…), mpiThreadFunction(…), or mpiThreadStatus(…). To correct the problem, start the thread.

String: Thread has not been started

User Limit

MPIUserLimitMessageUSER_LIMIT_INVALID
The user limit number is out of range. This message code is returned by mpiUserLimitCreate(…) if the user limit number is less than zero or greater than or equal to the allocated userLimitCount on the controller. Use mpiControlConfigGet and mpiControlConfigSet(…) to allocate more objects if needed.

String: UserLimit invalid

MPIUserLimitMessageUSER_LIMIT_NOT_ENABLED
The user limit object in the controller is not enabled. This message code is returned by mpiUserLimitCreate(…) if the user limit number is less than zero or greater than or equal to the enabled userLimitCount on the controller. Use mpiControlConfigSet(…) to enable more objects if needed.

String: UserLimit not enabled

 

       Legal Notice  |  Tech Email  |  Feedback
      
Copyright ©
2001-2021 Motion Engineering