Important Things to Know

Release Type
MPI Version
Release Date
Production Release


The MPI version numbering scheme has changed from date codes (YYYYMMDD) to traditional version numbers (major.minor.release). See the MPI Version Numbering for details:

This release contains several major new features since the 20030620.x.x series:


For information about MEI's software life cycle policy and release types, see Software Life Cycle Policy and MPI Release Types.


Camming is used when an axis is required to follow a specific profile based on the position of a master axis. For information about Camming, see Master-Slave Concept, Camming, and Correctional Moves.


Compensator Object

The compensator object provides an interface to configure and load the position compensation tables in the controller's memory. Compensation tables can be used to offset position irregularities due to mechanical flaws, encoder scale line spacing imperfections, and other physical inaccuracies. The controller can apply 1 or 2 dimensional compensation to a single axis. The number and size of compensation tables are configurable.


Node FPGAs

This release includes new SynqNet Node FPGA Runtime images, Version 311. These contain some internal changes to the secondary encoder logic, support for Node ADC's, and enhancements to the pulse engine. Please see the FPGA Release Notes section for more details. The MPI will return a WARNING message if a Node does not have a compatible Runtime image. Also, the MPI's SynqNet Info structure reports if the Runtime image is the "Default" image that was included with the software release. MEI always recommends that you use the FPGA images included with the software release. Please see issue MPI 1227 in the 20031222 release note for more information about the MPI's version check.


Pulse outputs to support Step/Dir or CW/CCW drive interfaces

Pulse support has been added to the RMB-10v2 FPGA, XMP controller firmware, MPI, and Motion Console. The pulse outputs support stepper drives and pulse controlled servos with either Step/Dir, CW/CCW, or QuadA/B logic. The maximum pulse rate is 5MHz. The pulse width is configurable from 100 nanoseconds to 1 millisecond. A future release will extend the maximum pulse rate to 10MHz.

When configuring the pulse width, make sure the maximum commanded velocity does not generate a pulse period that is less than 2x the pulse width. For example, if the maximum velocity is 100 kHz, the pulse width must not be greater than 5 microseconds. If the pulse width is too large for the commanded velocity, unstable behavior will result.

When using pulse outputs, the quadrature encoder inputs are still available. The position feedback information is not used to correct the pulse motor's position, but can be used by an application to monitor the actual position of the motor. If the encoder feedback is not in a one-to-one ratio with the step motor resolution, be sure to disable the position error limit action. If you do not have an encoder, the feedback can be simulated by enabling the motor's loopback feature.

The pulse feature also includes packet error correction. Normally, the controller sends a pulse command each sample period. If the node fails to receive the pulse command, it will continue to generate pulses at the last commanded velocity. The node will keep track of the pulses it generates without a corresponding command from the controller and will send the pulse count back to the controller. The controller uses the pulse count to correct the number of pulses over the next 4 controller periods. Using this technique, a bad command packet will not cause a significant discontinuity in the pulse control outputs to the drive. If there is a serious network communication problem, the packet error fault limit will trigger a network fault recov- ery. If the network communication problem is really serious, the packet error fail limit will trigger a node shutdown, causing the pulse generation to immediately halt.


ZMP-Series Controller Support

The ZMP-Series is a new high performance SynqNet controller. It supports the same features as the XMPSeries and uses the same MPI Library. The firmware file is compiled from the same sources as the XMPSeries, but the filename uses a "z" prefix. For example, the default ZMP-Series firmware would be zmp514a6.bin. Since the ZMP-Series controllers have more power and memory, they will eventually support more features than the XMP-Series. Both controller series will continue to use the same MPI library. If you are interested in evaluating a ZMP controller, please contact MEI.

Upgrading Firmware
If you have a ZMP-Series controller and are using an older software release (20031025 / 510A3), please contact MEI. There is a special one time procedure that is needed to upgrade the controller's firmware to this (and later) releases.


Device Driver

The MEIXMP.SYS device driver has been updated to support the new ZMP-Series controllers. See issue MPI 1242 in the 20031222 release note for more information.

Due to the changes, the MEIXMP.SYS device driver is not compatible with 20030620.x.x and older software releases. If you need to downgrade to an older software release, you will need to manually replace the MEIXMP.SYS and MEIXMP.INF files in your WinNT\System32\drivers directory. Be sure to disable the device driver before replacing the .sys/.inf files, and then re-enable the device driver to load the new files.


Probe Object

A new object has been added to the MPI. The Probe object provides functionality similar to that of the capture module. The Probe object is less configurable than the capture module, but can be re-triggered several times in a single servo cycle. Unlike the capture module, there is no position computation in the firmware from Probe data. The Probe object can be used in "stand-alone" mode for position captures, or Probe can be used with the Data Recorder to provide time-based captures across several axes. There is a maximum of 256 probes per controller (4 per node, 32 motor type nodes, and 32 I/O type nodes).

Two sample applications using the Probe object can be found in the /apps folder.
      probe1.c - Position captures using Probe in Time mode.
      probe2.c - Position captures using Probe in Position mode.

The probe.h header file contains all of the methods and data types for the Probe object.


New Data Recorder Features

The number of available recorders has been increased from 1 to 32. The number of enabled recorders can be 0 to 32 and is specified by a new parameter in the MPIControlConfig{...} structure. The creation of a recorder object will require a second (new) parameter, number, in the mpiRecoderCreate(...) function.

Recorders are currently started only by the host and stop either on host command, or when a pre-determined number of records have been stored. This start/stop functionality has not changed. However, new trigger control blocks within the recorders will allow the recorders to start or stop based on the states of internal variables. Each recorder will have two trigger blocks. Either block can start or stop the recorder. The start/stop triggers can be configured for either pattern matching or trigger-on-change. If additional trigger flexibility is needed, User Limits can be used in conjunction with the recorder triggers. The triggers are configured using a structure passed using the external pointer of mpiRecorderConfigGet/Set.

When mpiRecorderStart(...) is called, recorder status is no longer cleared. The recorder status is now cleared when mpiRecorderConfigSet(...) is called with (config != NULL). The status clearing will return buffer pointers and counters to zero. mpiRecorderStart(...) can now resume recording where it was last stopped.

meiConfig Utility

The meiConfig program is a new software utility that provides a means of configuring a controller using text files. The text files contain symbolic configuration data in an XML format that is independent of the controller's firmware version. This makes it easy to copy controller configurations across machines or when upgrading to newer software releases. For more information, see the meiConfig Utility.

meiConfig is a replacement for the previous Configuration Utility. Both the config and meiConfig utilities are included in this release. The Config Utility will be discontinued and will NO longer be available in future releases. Since the config and meiConfig configuration files have different formats, you will need to convert config text files to meiConfig XML files, use the following steps:

  1. Write an existing config text file to a controller.
    config -set myConfig.txt

  2. Read the configuration from the controller to an meiConfig file.
    meiConfig -get myMeiConfig.xmc




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