.

Descriptions of Error Messages / Return Values

See Also: Table of Error Messages / Return Values

   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.

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.

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.

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

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 meiPlatformAlloc(...). 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.

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.

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.

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.

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.

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.

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.

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.

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.

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 meiPlatformClose(...) which makes a platform specific call. File closing errors indicate a missing file, bad file, or other file system problems.

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 meiPlatformOpen(...) which makes a platform specific call. File opening errors indicate a missing file, bad file, or other file system problems.

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 meiPlatformFileRead(...) which makes a platform specific call. File reading errors indicate a bad file or other file system problems.

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 meiPlatformFileWrite(...) which makes a platform specific call. File writing errors indicate a bad file or other file system problems.

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.

 

Axis

MPIAxisMessageFIRST
First message in list of messages, placeholder only.

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

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 MEIMotorDisableActionCMD_EQ_ACT and the motor is disabled. When the motor is disabled and in the MEIMotorDisableActionCMD_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 MEIMotorDisableActionCMD_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.

MPIAxisMessageNOT_MAPPED_TO_MS
An axis is not mapped to the motion supervisor. This message code is returned by mpiMotionDelete(...), mpiMotionAxisListGet(...), or mpiMotionAxisRemove(...) when an axis is associated with a motion object, but not mapped to a motion supervisor. To correct this problem, map the axes to the motion supervisor in the controller by calling: mpiMotionAction(...) with MEIActionMAP or MPIActionRESET, mpiMotionStart(...), mpiMotionModify(...), or mpiMotionEventNotifySet(...).

 

CAN

MEICanMessageFIRST
First message in list of messages, placeholder only.

MEICanMessageCAN_INVALID
The can network number is out of range. This message code is returned by meiCanCreate(...) if the network number is less than zero or greater than or equal to MEICanNetworkMAX.

MEICanMessageFIRMWARE_INVALID
The CAN firmware is not valid. This message code is returned by meiCanCreate(...) if the CAN hardware bootloader detects no firmware has been loaded or the firmware signature is not recognized. To correct this problem, download valid firmware with meiCanFirmwareDownload(...).

MEICanMessageFIRMWARE_VERSION
The CAN firmware version does not match the software version. This message code is returned by meiCanCreate(...), meiCanFirmwareDownload(...), or meiCanFirmwareUpload(...) if the CAN firmware version is not compatible with the MPI library. To correct this problem, download the proper firmware version with meiCanFirmwareDownload(...).

MEICanMessageNOT_INITIALIZED
The CAN firmware did not initialize. This message code is returned by meiCanCreate(...) if the controller did not copy the configuration structure from flash to memory after power-on or controller reset. To correct this problem, verify the controller firmware is correct and the controller hardware is operating properly.

MEICanMessageIO_NOT_SUPPORTED
The CAN node does not support the specified I/O. This message code is returned by CAN methods that read/write to a digital or analog input/output that is out of range. To prevent this problem, specify a supported I/O bit.

MEICanMessageFILE_FORMAT_ERROR
The CAN firmware file format has an error. This message code is returned by meiCanFirmwareDownload(...) if the specified file has an error in its internal headers. This indicates a corrupted file. To correct this problem, use the original CAN firmware file or reinstall the software distribution.

MEICanMessageUSER_ABORT
The CAN firmware loading was aborted. This message code is returned by meiCanFirmwareDownload(...) or meiCanFirmwareUpload(...) when the firmware loading is aborted by the user via the callback function. This message code is returned for application notification. It is not an error.

MEICanMessageCOMMAND_PROTOCOL
The CAN command failed due to a protocol error. This message code is returned by CAN methods that do not get a valid response from a CAN node. To correct this problem, check your CAN nodes for proper operation.

MEICanMessageINTERFACE_NOT_FOUND
The CAN interface is not available. This message code is returned by meiCanCreate(...) if the specified controller does not support a CAN network interface. To correct this problem, use a controller that has a CAN interface.

MEICanMessageNODE_DEAD
The CAN node does not respond. This message code is returned by CAN methods that read/write from a CAN node and the node fails the health check. This message code indicates a node hardware or network connection problem. To correct this problem, verify the node operation and network connections.

MEICanMessageSDO_TIMEOUT
The CAN command failed due to a timeout. This message code is returned by CAN methods that do not get a response from a CAN node within the timeout period. To correct this problem, check your CAN nodes for proper operation.

MEICanMessageSDO_ABORT
The CAN command failed due to a user abort. This message code is returned by CAN methods when an SDO transaction is aborted.

MEICanMessageSDO_PROTOCOL
The CAN command failed due to an SDO protocol error. This message code is returned by CAN methods when an SDO transaction fails because the node did not conform to the CANOpen protocol.

MEICanMessageTX_OVERFLOW
The controller's transmit buffer overflowed. This message code is returned by CAN methods that failed to transmit a message due to an internal memory buffer overflow.

MEICanMessageRTR_TX_OVERFLOW
The controller's transmit buffer overflowed. This message code is returned by CAN methods that failed to transmit a message due to an internal memory buffer overflow.

MEICanMessageRX_BUFFER_EMPTY
The controller's receive buffer is empty. This message code is returned by CAN methods that expected to get a response from a CAN node, but the controller's receive buffer was empty.

MEICanMessageBUS_OFF
The CAN network bus is in the off state. This message code is returned by CAN methods that are not able to use the CAN network because the bus is off. To correct this problem, verify the node operation and network connections.

MEICanMessageSIGNATURE_INVALID
When initialising the CAN system, some tests are performed to make sure that the CAN processor is returning a valid signature value. If an unexpected signature is returned, this error message is returned. A probable cause for this error is that the bootloader is invalid. To correct this problem, you will need to return the controller to MEI to fix the bootloader.

 

Capture

MPICaptureMessageFIRST
First message in list of messages, placeholder only.

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.

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.

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

MPICaptureMessageENCODER_INVALID
The encoder index is out of range. This message code is returned by mpiCaptureCreate(...) if the encoder index is less than MPIMotorEncoderFIRST or greater than or equal to MPIMotorEncoderLAST. See MPIMotorEncoder.

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

MEICaptureMessageGLOBAL_CONFIG_ERR
The global trigger configuration is not valid. This message code is returned by mpiCaptureConfigSet(...) if the capture's trigger source is set to global and the capture's global trigger is enabled simultaneously. To correct this problem, either set the capture's trigger source to global or enable the capture's global trigger (not both).

MEICaptureMessageGLOBAL_ALREADY_ENABLED
The global trigger is already enabled. This message code is returned by mpiCaptureConfigSet(...) if a global trigger is already enabled on another capture on the same node. Only one global trigger enable is allowed per node. To prevent this problem, do not enable a second global trigger on a single node.

MEICaptureMessageCAPTURE_NOT_ENABLED
The capture object's hardware resource is not available. This message code is returned by mpiCaptureCreate(...) if the node hardware for the specified motor and encoder 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 and capture objects. A capture object cannot be created if there is no mapped hardware to support it. To correct this problem, verify that all expected nodes were found. Use meiSynqNetInfo(...) and meiSqNodeInfo(...) to determine the node topology and motor count per node. Check the node hardware power and network connections.

MEICaptureMessageCAPTURE_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. If this error occurs during a homing routine, please verify that home trigger polarity is set to TRUE. See MPIMotorEventTrigger.

MEICaptureMessageNOT_MAPPED
The capture object's hardware resource is not available. This message code is returned by mpiCaptureCreate(...) if the node hardware for the specified motor and encoder 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 and capture objects. A capture object cannot be created if there is no mapped hardware to support it. To correct this problem, verify that all expected nodes were found. Use meiSynqNetInfo(...) and meiSqNodeInfo(...) to determine the node topology and motor count per node. Check the node hardware power and network connections.

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

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

MEICaptureMessageSECONDARY_INDEX_INVALID
This message is returned from MPICaptureConfigSet(...) when the secondary encoder's index is specified as a trigger source in conjunction with other capture sources.

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

 

Client

MEIClientMessageFIRST
First message in list of messages, placeholder only.

MEIClientMessageCLIENT_INVALID
Not supported.

MEIClientMessageMETHOD_INVALID
The client method is out of range. This message code is returned by meiClientMethod(...) if the method number is not a member of the MEIRemoteMethod enumeration.

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

 

Command

MPICommandMessageFIRST
First message in list of messages, placeholder only.

MPICommandMessageCOMMAND_INVALID
Not supported.

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.

MPICommandMessagePARAM_INVALID
Not supported.

 

Compensator

MPICompensatorMessageFIRST
First message in list of messages, placeholder only.

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

MPICompensatorMessageNOT_CONFIGURED
MPI Compensator object must be configured before calling mpiCompensatorTableGet/ Set or mpiCompensatorInfo(...).

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.

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.

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

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.

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.

 

Control

MPIControlMessageFIRST
First message in list of messages, placeholder only.

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.

MPIControlMessageADDRESS_INVALID
The controller address is not valid. This message code is returned by mpiControlInit(...) if the controller address is not within a valid memory range. mpiControlInit(...) only requires memory addresses for certain operating systems. To correct this problem, verify the controller memory address.

MPIControlMessageCONTROL_INVALID
Not supported.

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

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

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.

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.

MPIControlMessageADC_COUNT_INVALID
The ADC count is not valid. This message code is returned by mpiControlConfigSet(...) if the number of ADCs is greater than MEIXmpMAX_ADCs.

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

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.

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.

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

MPIControlMessageCOMPARE_COUNT_INVALID
The compare count is not valid. This message code is returned by mpiControlConfigSet(...) if the number of compares is greater than MEIXmpMAX_Compares.

MPIControlMessageCMDDAC_COUNT_INVALID ------
The command DAC count is not valid. This message code is returned by mpiControlConfigSet(...) if the number of command DACs is greater than MEIXmpMAX_DACs.

MPIControlMessageAUXDAC_COUNT_INVALID ----
The auxiliary DAC count is not valid. This message code is returned by mpiControlConfigSet(...) if the number of auxiliary DACs is greater than MEIXmpMAX_DACs.

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

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

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

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.

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

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

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

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.

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.

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 "stdmei.h"
#include "apputil.h"
#pragma pack(pop)

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

MEIControlMessageFIRMWARE_INVALID
The controller firmware is not valid. This message code is returned by mpiControlInit(...) 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 mpiControlInit(...) 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.

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

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

MEIControlMessageFPGA_SOCKETS
The maximum number of FPGA socket types has been exceeded. This message code is returned by meiFlashMemoryFromFile(...) if the controller has more FPGA types than the controller has flash memory space to support them.

MEIControlMessageBAD_FPGA_SOCKET_DATA
Not supported.

MEIControlMessageNO_FPGA_SOCKET
The FPGA socket type does not exist. This message code is returned by meiFlashMemoryFromFile(...) 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.

MEIControlMessageINVALID_BLOCK_COUNT
Not supported.

MEIControlMessageSYNQNET_OBJECTS
Not supported.

MEIControlMessageSYNQNET_STATE
The controller's SynqNet state is not expected. This message code is returned by mpiControlInit(...), 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.

MEIControlMessageIO_BIT_INVALID
The controller I/O bit is not valid. This message code is returned by meiControlIoGet(...) or meiControlIoSet(...) if the controller I/O bit is not a member of the MEIControlIoBit enumeration.

 

DriveMap

MEIDriveMapMessageFIRST
First message in list of messages, placeholder only.

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

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

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

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

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

 

Element

MEIElementMessageFIRST
First message in list of messages, placeholder only.

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

 

Event

MPIEventMessageFIRST
First message in list of messages, placeholder only.

MPIEventMessageEVENT_INVALID
The event type is not valid. This message code is returned by mpiEventStatusSet(...) if the event type is not a member of the MPIEventType or MEIEventType enumerations.

 

EventMgr

MPIEventMgrMessageFIRST
First message in list of messages, placeholder only.

MPIEventMgrMessageEVENTMGR_INVALID
Not supported.

 

Filter

MPIFilterMessageFIRST
First message in list of messages, placeholder only.

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

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 MEIXmpAlgorithm enumeration (does not support integrators). This problem occurs if the filter type is set to user or an unknown type with mpiFilterConfigSet(...).

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.

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

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

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

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

 

Flash

MEIFlashMessageFIRST
First message in list of messages, placeholder only.

MEIFlashMessageFLASH_INVALID
The flash object is not valid. This message code is returned by meiFlashMemoryFromFile(...), meiFlashMemoryFromFileType(...), meiFlashMemoryToFile(...), or meiFlashMemoryVerify(...) if the flash object's memory cache has not been allocated. The flash memory cache is allocated in mpiFlashCreate(...). To prevent this problem, create flash objects with mpiFlashCreate(...) and check the return value.

MEIFlashMessageFLASH_VERIFY_ERROR
The flash memory read failed. This message code is returned by meiFlashMemoryVerify(...) if the read from flash memory does not match the read from the file. This indicates the specified flash file is different from the flash memory. This message code can also be returned from meiFlashMemoryFromFile(...), since it calls meiFlashMemoryVerify(...). To correct this problem, first check that the specified file is the one you intended. If the specified file is correct, use meiFlashMemoryFromFile(...) to download the file.

MEIFlashMessageFLASH_WRITE_ERROR
The flash memory write failed. This message code is returned by meiFlashMemoryErase(...), meiFlashMemoryFromFile(...), or meiFlashMemoryFromFileType(...) if the flash memory write fails. This indicates a problem in the flash memory component or subsystem.

MEIFlashMessagePATH
The flash file path is too long. This message code is returned by meiFlashMemoryFromFile(...) if the file path is longer than MEIFlashFileMaxPathChars. To correct this problem, use a shorter path.

MEIFlashMessageNETWORK_TOPOLOGY_ERROR
The network topology has not been saved to flash. This message code is returned by object flash config set methods if the network topology has not been previously saved to flash. This message code serves as a warning of a potential safety problem. Saving object configurations to flash will cause those values to be sent to nodes during the next network intialization, even if the flash configurations are not compatible with the network topology. If the network topology is saved to flash, then the controller will automatically verify the topology before sending object configuration values to the nodes. To prevent this message code return, use meiSynqNetFlashTopologySave(...) to save the network topology to the controller's flash. For more information, please see Save/Clear Topology to Flash.

 

List

MEIListMessageFIRST
First message in list of messages, placeholder only.

MEIListMessageLIST_INVALID
List invalid.

MEIListMessageELEMENT_NOT_FOUND
The element is not a member of the list. This message code is returned by meiListElement(...) 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.

MEIListMessageELEMENT_INVALID
The element is not valid. This message code is returned by meiListInsertNow(...) or meiListRemoveNow(...) 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.

 

Map

MEIMapMessageFIRST
First message in list of messages, placeholder only.

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

MEIMapMessageNAME_NOT_FOUND
The map name is not found. This message code is returned by meiMapCreate(...), meiMapNameToParams(...), or meiMapNameParse(...) if the name is not found in the map.

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

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

 

Motion

MPIMotionMessageFIRST
First message in list of messages, placeholder only.

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

MPIMotionMessageAXIS_NOT_FOUND
The specified axis object is not available. This message is returned from mpiMotionAxisRemove(...) if the axis that is being removed is not a member of the motion object.

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

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

MPIMotionMessageTYPE_INVALID
The motion type or motion attribute is not valid. This message code is returned from mpiMotionStart(...) or mpiMotionModify(...) if the motion type or motion attribute mask is not recognized by the library. To correct the problem, select a motion type/attribute from the MPI and/or MEI enumerations.

MPIMotionMessageATTRIBUTE_INVALID
The motion attribute is not valid. This message code is returned from mpiMotionStart(...) or mpiMotionModify(...) 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.

MPIMotionMessageIDLE
All motion supervisor axes are not moving and are ready to move. This message code is returned from mpiMotionModify(...) when the motion supervisor is in the IDLE state. A motion cannot be modified if no motion is in progress. To correct the problem, use the AUTO_START attribute for mpiMotionModify(...) or use mpiMotionStart(...) instead. 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.

MPIMotionMessageMOVING
At least one motion supervisor axis is moving. This message code is returned from mpiMotionStart(...) when the motion supervisor is in the MOVING state. A motion cannot be started if a motion is in progress. To correct the problem, use mpiMotionModify(...) instead. 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.

MPIMotionMessageSTOPPING
Motion supervisor axes are stopping due to a STOP action. This message code is returned from mpiMotionStart(...) or mpiMotionModify(...) when the motion supervisor is in the STOPPING state. A motion 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.

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.

MPIMotionMessageSTOPPING_ERROR
Motion supervisor axes are stopping due to an E_STOP or ABORT action. This message code is returned from mpiMotionStart(...) or mpiMotionModify(...) when the motion supervisor is in the STOPPING_ERROR state. A motion 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.

MPIMotionMessageERROR
Motion supervisor axes are in an error state due to an E_STOP or ABORT action. This message code is returned from mpiMotionStart(...) or mpiMotionModify(...) 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.

MPIMotionMessageAUTO_START
The motion modify was automatically converted to a motion start. This message code is returned from mpiMotionModify(...) when the AUTO_START attribute mask was specified and the motion 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.

MPIMotionMessageILLEGAL_DELAY
Returned if a motion modify is called with a non-zero delay value and the MPIMotionAttrDELAY attribute is set while in motion. If it is currently not in motion and the AUTO_START attribute is set, this message will not be returned and the specified delay will be used at the beginning of the motion.

MPIMotionMessagePROFILE_ERROR
The motion profile is not possible with the specified constraints. This message code is returned by mpiMotionModify(...) when the NO_REVERSAL attribute mask is specified, but the specified target position is in the reverse direction. To correct the problem, either remove the NO_REVERSAL constraint or specify a target position that is in the same direction as the motion profile in progress.

MPIMotionMessagePROFILE_NOT_SUPPORTED
The controller firmware does not support the specified motion profile type. This message code is returned by mpiMotionStart(...) or mpiMotionModify(...) when an S_CURVE_JERK or VELOCITY_JERK motion type is commanded, but not supported by the controller firmware. Due to programming memory space constraints, specific revisions of controller firmware may not support jerk motion types. To correct the problem, use the S_CURVE or VELOCITY motion instead.

MPIMotionMessagePATH_ERROR
The specified multi-point motion path is not valid. This message code is returned by mpiMotionStart(...) or mpiMotionModify(...) 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.
    MPIMotionTypeSPLINE
    MPIMotionTypeBESSEL
    MPIMotionTypeBSPINE
    MPIMotionTypeBSPINE2

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

Specifying a point count of < 0 for (MPIMotionTypeBESSEL, MPIMotionTypeBSPINE, or MPIMotionTypeBSPINE2) will result in a MPIMotionMessagePATH_ERROR error message.

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

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

MPIMotionMessageFRAME_BUFFER_TOO_SMALL
When trying to start a cam, an insufficient amount of space was found on the controller. To remedy this problem, you can either reduce the number of points within the cam or increase the number of points in the frame buffer.

MEIMotionMessageRESERVED0
Reserved for specialized use.

MEIMotionMessageRESERVED1
Reserved for specialized use.

MEIMotionMessageRESERVED2
Reserved for specialized use.

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

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

 

Motor

MPIMotorMessageFIRST
First message in list of messages, placeholder only.

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

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.

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.

MEIMotorMessageMOTOR_NOT_ENABLED
The motor number is not active in the controller. This message code is returned by mpiMotorEventConfigGet/ Set 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.

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

MEIMotorMessageHARDWARE_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 meiSynqNetInfo(...) and meiSqNodeInfo(...) to determine the node topology and motor count per node. Check the node hardware power and network connections.

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

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

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

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

MEIMotorMessageFILTER_DISABLE_NA
The feedback filter disable is not applicable for the feedback type specified. This message code is returned by mpiMotorConfigSet(...) if the feedback type is not MEIMotorEncoderTypeQUAD_AB and the filterDisable is set to TRUE. To correct the problem, set filterDisable to FALSE.

MEIMotorMessagePHASE_FINDING_FAILED
The drive failed to complete the phase finding procedure. This message code is returned by meiMotorPhaseFindStart(…) 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 meiMotorAmpFault(…) and meiMotorAmpWarning(…).

MEIMotorMessageDEMAND_MODE_UNSUPPORTED
The motor does not support the specified demand mode. This message is returned by mpiMotorConfigSet(…) or mpiMotorEventConfigSet(…) 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.

MEIMotorMessageDEMAND_MODE_NOT_SET
The demand mode cannot be changed while the amplifier is enabled. This message is returned by mpiMotorConfigSet(…) or mpiMotorEventConfigSet(…) 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.

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

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

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

 

Notify

MPINotifyMessageFIRST
First message in list of messages, placeholder only.

MPINotifyMessageNOTIFY_INVALID
The notify object is not valid. This message code is returned by a notify method if the notify object handle is not valid. This problem can be caused by failed mpiNotifyCreate(...). To prevent this problem, check your notify objects after creation by using mpiNotifyValidate(...).

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.

 

Packet

MEIPacketMessageFIRST
First message in list of messages, placeholder only.

MEIPacketMessagePACKET_INVALID
Not supported.

MEIPacketMessageADDRESS_INVALID
The server socket address is not valid. This message code is returned by mpiControlInit(...) 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, meiPacketClient(...). To correct the problem, make sure the server is operational and the server name or address is valid.

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

MEIPacketMessageCONNECTION_CLOSED
The socket communication connection is closed. This message code is returned by meiPacketRecv(...) or meiPacketSend(...) 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 meiPacketCreate(...) was successful and that another thread did not close the socket connection.

MEIPacketMessageRECV_ERROR
Not supported. See MEIPacketMessageCOMM_ERROR.

MEIPacketMessageSEND_ERROR
Not supported. See MEIPacketMessageCOMM_ERROR.

 

Path

MPIPathMessageFIRST
First message in list of messages, placeholder only.

MPIPathMessagePATH_INVALID
The path object is not valid. This message code is returned by a path method if the path object handle is not valid. This problem can be caused by a failed mpiPathCreate(...). To prevent this problem, check your path objects after creation by using mpiPathValidate(...).

MPIPathMessageILLEGAL_DIMENSION
The path dimensions are not valid. This message code is returned by mpiPathParamsSet(...) or mpiPathMotionParamsGenerate(...) if the path dimension is less than one or greater than or equal to MPIPathPointDIMENSION_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.

MPIPathMessageILLEGAL_ELEMENT
The path element type is not valid. This message code is returned by mpiPathAppend(...) if the specified path element type is not a member of the MPIPathElementType enumeration.

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

MPIPathMessageHELIX_ILLEGAL_DIMENSION
Not supported.

MPIPathMessageILLEGAL_RADIUS
The path element arc radius is not valid. This message code is returned by mpiPathAppend(...) 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.

MPIPathMessagePATH_TOO_LONG
The path length is not valid. This message code is returned by mpiPathMotionParamsGenerate(...) if the path length is greater than MAX_PATH_POINTS_MAX. To correct the problem, specify a path with fewer points than MAX_PATH_POINTS_MAX.

MPIPathMessageILLEGAL_VELOCITY
The path element velocity is not valid. This message code is returned by mpiPathAppend(...) 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.

MPIPathMessageILLEGAL_ACCELERATION
The path element velocity is not valid. This message code is returned by mpiPathAppend(...) 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.

MPIPathMessageILLEGAL_TIMESLICE
The path element time slice is not valid. This message code is returned by mpiPathAppend(...) 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.

MPIPathMessageINVALID_BLENDING
The path element blending is not valid. This message code is returned by mpiPathMotionParamsGenerate(...) if the element blending is set to TRUE and the motion type does not support blending. To correct this problem, either set the element blending to FALSE or select a different motion type.

 

Platform

MEIPlatformMessageFIRST
First message in list of messages, placeholder only.

MEIPlatformMessagePLATFORM_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 meiControlPlatform(...). Do NOT create your own platform object with meiPlatformCreate(...).

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

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

MEIPlatformMessageDEVICE_MAP_ERROR
The platform device memory mapping failed. This message code is returned by mpiControlInit(...) 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 (XMP-Series requires 8MB).

MEIPlatformMessageCOPY64_FAILURE
The 64-bit read failed. This message is returned by meiPlatformMemoryGet64(…), 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.

 

Probe

MPIProbeMessageFIRST
First message in list of messages, placeholder only.

MPIProbeMessageNODE_INVALID
The SynqNet 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 being greater than or equal to the total number of nodes discovered during network initialization. To correct this problem, check the discovered node count with meiSynqNetInfo(...). If the node count is not what you expected, check your network wiring, node condition, and re-initialize the network with mpiControlReset(...).

MPIProbeMessagePROBE_TYPE_INVALID
The Probe data type is not valid. This message is returned by mpiProbeConfigSet(...) if the specified Probe data type is not one of the enumerated values.

MPIProbeMessagePROBE_INVALID
The Probe is not valid. This message is returned by mpiProbeConfigGet(...) or mpiProbeConfigSet(...) if the specified Probe params or configurations are out of range. To correct this problem, check your Probe params and config structures. The probe number specified was invalid. The likely cause of this is that the node you are referring to does not support the probe feature. Please refer to the node feature table to see if your node supports probe.

 

Recorder

MPIRecorderMessageFIRST
First message in list of messages, placeholder only.

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 32 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(...).

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.

MPIRecorderMessageRECORDER_INVALID
The recorder object is not valid. This message code is returned by a recorder method if the recorder object handle is not valid. This problem can be caused by a failed mpiRecorderCreate(...). To prevent this problem, check your recorder objects after creation by using mpiRecorderValidate(...).

MPIRecorderMessageRUNNING
This message is returned by mpiRecorderConfigSet(...) and mpiRecorderConfigGet(...) when an application attempts to configure a recorder that is currently 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.

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.

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

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.

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.

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

 

Sequence

MPISequenceMessageFIRST
First message in list of messages, placeholder only.

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

MPISequenceMessageCOMMAND_COUNT
The sequence command count is out of range. This message code is returned by mpiSequenceStart(...), or meiSequenceCompile(...) 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.

MPISequenceMessageCOMMAND_NOT_FOUND
The sequence command is not found. This message code is returned by mpiSequenceLoad(...), mpiSequenceStart(...), or meiSequenceCompile(...) 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.

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.

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.

 

Server

MEIServerMessageFIRST
First message in list of messages, placeholder only.

MEIServerMessageSERVER_INVALID
Not supported.

MEIServerMessageMETHOD_INVALID
The server method is out of range. This message code is returned by meiServerMethod(...) if the method number is not a member of the MEIRemoteMethod enumeration.

MEIServerMessageHEADER_INVALID
The server packet header is not valid. This message code is returned by meiServerMethod(...) 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.

 

SqNode

MEISqNodeMessageFIRST
First message in list of messages, placeholder only.

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

MEISqNodeMessageNODE_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 meiSynqNetInfo(...). If the node count is not what you expected check your network wiring, node condition, and re-initialize the network with mpiControlReset(...).

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

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

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

MEISqNodeMessageBOOT_FILE_NOT_FOUND
The boot file "kollmorgen_ember.a00" was not found. When downloading drive images to Kollmorgen CD, DASA, and PicoDAD drives, a boot file is downloaded to the drive prior to the actual drive image. This boot file needs to be located in the same directory as the drive's image file that is provided for download.

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

MEISqNodeMessageCONFIG_FILE_FORMAT_INVALID
A file with an incorrect format was used in meiSqNodeDriveMapParamFileSet(...).

MEISqNodeMessageRESPONSE_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 meiSqNodeInfo or MEISynqNetMessage.

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

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

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

MEISqNodeMessageSRVC_CHANNEL_INVALID
Invalid service channel specified. See MEISqNodeCmdHeader.

MEISqNodeMessageCMD_NOT_SUPPORTED
The service command is not supported by the node.

MEISqNodeMessageDISCOVERY_FAILURE
Unable to discover node rescources.

MEISqNodeMessageDISPATCH_ERROR
Is the default error code returned when a node specific routine has failed. Check the node FPGA version to verify whether or not it is correct.

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

MEISqNodeMessageINTERFACE_ERROR1
This is an outdated node, which does not support the current discovery routine.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

MEISqNodeMessageIO_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(...), meiSynqNetInit(...). 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.

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

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

MEISqNodeMessageIO_SLICE_INITIALIZATION_FAULT
An error was encountered while initalizing the slice node.

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

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

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

MEISqNodeMessageIO_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 meiSqNodeSegmentParamClear(...).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

SynqNet

MEISynqNetMessageFIRST
First message in list of messages, placeholder only.

MEISynqNetMessageSYNQNET_INVALID
The SynqNet number is out of range. This message code is returned by meiSynqNetCreate(...) if the SynqNet network number is less than zero or greater than or equal to MEIXmpMaxSynqNets.

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

MEISynqNetMessageSTATE_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 is not a member of the MEIXmpSynqNetState or MEIXmpSynqNetInternalState enumeration. The most commonly used methods that initialize the SynqNet network are: mpiControlInit(...), mpiControlReset(...) and meiSynqNetInit(...). This message code indicates a failure in the controller's initialization sequence. To correct this problem, call mpiControlReset(...).

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

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

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

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

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

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

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

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

MEISynqNetMessageTOPOLOGY_MISMATCH
The network topology does not match the expected network topology. This message code is returned by mpiControlInit(...) or meiSynqNetInit(...) 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 mpiControlReset(...).

MEISynqNetMessageTOPOLOGY_MISMATCH_FLASH
The network topology does not match the expected network topology. This message code is returned by mpiControlInit(...) or meiSynqNetInit(...) 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 meiSynqNetFlashTopologySave(...) 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 meiSynqNetFlashTopologyClear(...).

MEISynqNetMessageRESET_REQ_TIMEOUT
The network reset request packet exceeded the timeout. This message code is returned by mpiControlInit(...), mpiControlReset(...), or meiSynqNetInit(...) 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.

MEISynqNetMessageRESET_ACK_TIMEOUT
The network reset complete packet exceeded the timeout. This message code is returned by mpiControlInit(...), mpiControlReset(...), or meiSynqNetInit(...) 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.

MEISynqNetMessageDISCOVERY_TIMEOUT
The network topology discovery exceeded the timeout. This message code is returned by mpiControlInit(...), mpiControlReset(...), or meiSynqNetInit(...) 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.

MEISynqNetMessageNO_NODES_FOUND
The controller did not find network nodes. This message code is returned by mpiControlInit(...), mpiControlReset(...), or meiSynqNetInit(...) 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.

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

MEISynqNetMessageINCOMPLETE_MOTOR
This message is returned by meiSynqNetPacketConfigSet(...), when the packet configuration contains a motor configuration that is missing feedback or command fields.

MEISynqNetMessageINTERNAL_BUFFER_OVERFLOW
The controller's SynqNet buffer size was exceeded. This message code is returned by mpiControlInit(...), mpiControlReset(...) if the controller's SynqNet buffer could not be allocated due to overflow. This message code indicates the controller does not have enough memory to initialize the network topology. To correct the problem, either reduce the network nodes or use a different controller model.

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

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

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

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

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

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

MEISynqNetMessageINVALID_COMPARE_COUNT
This message is returned by meiSynqNetPacketConfigSet(...), when the packet configuration contains a larger compare count than is supported by the node.

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

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

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

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

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

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

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

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

MEISynqNetMessageIDLE_LINK_UNKNOWN
This message is returned by meiSynqNetIdleCableListGet(...) 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.

MEISynqNetMessageRING_ONLY
This message is returned by meiSynqNetIdleCableListGet(...) and meiSynqNetIdleCableStatus(...) because idle cables exist on ring topologies only. It is also returned by meiSynqNetConfigSet(...) when attempting to enable SynqNet recovery mode, which is only supported for ring topologies.

MEISynqNetMessageRECOVERING
The network is recovering from a fault condition. This message is returned by meiSynqNetIdleCableStatus(...) 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 meiSynqNetIdleCableListGet(...).

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

MEISynqNetMessageCABLE_LENGTH_TIMEOUT
The cable length discovery failed to complete due to a timeout. This message is returned by mpiControlInit(…), meiSynqNetInit(…), or meiSynqNetNodeRestart(…) 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.

MEISynqNetMessageCABLE_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 MEISynqNetConfig.cableLength[n].minimum and maximum. Check cable length (if necessary) and save new cable length values to flash. See MEISynqNetConfig.

MEISynqNetMessageCABLE_LENGTH_INVALID_NOMINAL
The nominal cable length is too long.

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

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

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

MEISynqNetMessageMAX_MOTOR_ERROR
The number of motors on the network exceeds the number set by MEISynqNetMaxMOTORS.

MEISynqNetMessagePLL_ERROR
The node PLL is unable to lock with drive.

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

MEISynqNetMessageTOPOLOGY_CLEAR
An attempt to clear the saved network topology was made when no network topology has been saved.

MEISynqNetMessageTOPOLOGY_SAVED
An attempt to save network topology was made when the network topology has already been saved. Clear the network topology before attempting to save another topology to flash.

MEISynqNetMessageTOPOLOGY_AMPS_ENABLED
An meiSynqNetFlashTopologySave(...) and meiSynqNetFlashTopologyClear(...) routine has been called while one or more motor amplifiers are enabled. Disables all motor amplifiers (mpiMotorAmpEnableSet(...)) before calling these low-level routines. To avoid this error message, disable the motor(s) amp enable before calling meiSynqNetFlashTopologySave/Clear.

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

MEISynqNetMessageADC_SAMPLE_FAILURE
A check to verify that all analog inputs can be sampled during the given controller sample rate has failed. Either reduce the number of analog inputs on your network (see meiSynqNetPacketConfigGet(...) and meiSynqNetPacketConfigSet(...)) or decrease your controller sample rate (see mpiControlConfigGet(...) and mpiControlConfigSet(...)).

MEISynqNetMessageSCHEDULING_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

MEISynqNetMessageINVALID_PROBE_CFG
This message is returned by meiSynqNetPacketConfigSet(...), when the MEISynqNetPacketCfgProbe.count contains a larger count than is supported by the node. See MEISynqNetPacketCfgProbe
.

MEISynqNetMessageINVALID_PROBE_DEPTH
This message is returned by meiSynqNetPacketConfigSet(...), when the MEISynqNetPacketCfgProbe.depth contains a larger count than is supported by the node.
See MEISynqNetPacketCfgProbe.

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

MEISynqNetMessageNODE_LATENCY_EXCEEDED
The node latency exceeded the maximum control latency limit. This message is returned by mpiControlInit(…) or meiSynqNetInit(…) 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.

MEISynqNetMessageHOT_RESTART_FAIL_NOT_SYNQ_STATE
The SynqNet network is currently not in SYNQ mode. This message is returned by meiSynqNetNodeRestart(…) 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 meiSynqNetInit(…) to initialize a SynqNet network to the SYNQ state.

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

MEISynqNetMessageHOT_RESTART_FAIL_TEST_PACKET
The SynqNet node restart did not complete due to a failed restart packet. This message is returned by meiSynqNetNodeRestart(…) 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.

MEISynqNetMessageHOT_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 meiSynqNetNodeRestart(…), 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.

MEISynqNetMessageHOT_RESTART_NOT_ALL_NODES_RESTARTED
One or more SynqNet nodes were not restarted. This message is returned by meiSynqNetNodeRestart(…), 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.

MEISynqNetMessageSHUTDOWN_NODES_NONCONSECUTIVE
The specified nodes to shutdown are not sequential. This message is returned by meiSynqNetShutdown(…) 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.

MEISynqNetMessageSHUTDOWN_NODES_STRANDED
The specified nodes to shutdown will cause additional nodes to fail. This message is returned by meiSynqNetShutdown(…) 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.

MEISynqNetMessageSHUTDOWN_RECOVERY_DISABLED
The SynqNet network recovery mode is disabled. This message is returned by meiSynqNetShutdown(…) 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.

MEISynqNetMessageNODE_BOOT_FPGA_VERSION

MEISynqNetMessageNODE_FPGA_LAB_VERSION

MEISynqNetMessageNODE_MAC_LAB_VERSION

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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