.

FAQs - Frequently Asked Questions

MPI FAQs

- What is the MPI?
- Why was the MPI developed?
- What are the prerequisites for learning the MPI?
- What is the difference between 'mpi' and 'mei' data types and methods?
- What is the difference between the MPI and MPX in terms of functionality, authoring code, etc.?
- Should I use the MPI or the MPX to author code?
- Does the MPI work with Visual C++ .NET?
- Is the MPI compatible with .NET?
- Are there any limitations in using the MPI with .NET?
- Is there an existing .NET version of the MPI?


MPX FAQs

- What is the MPX?
- What is the difference between the MPI and MPX in terms of functionality, authoring code, etc.?
- Should I use the MPI or the MPX to author code?


General Software FAQs

- Should I save application-specific parameters to firmware?


Installation FAQs

- Troubleshooting PCI Bridge Device Installation Error?
- How can I perform a silent installation of MEI software (MDK) in a user defined directory?
- How can I verify that MEI software (MDK) has already been installed?


SynqNet FAQs

- What is the difference between a node and a motion block on a SynqNet Motion Network?


DSP FAQs

- Are DSP controllers compatible with Windows XP?


What is the MPI?

The Motion Programming Interface (MPI) defines a set of object-oriented, C-language functions and data types that you can use to develop motion control applications. The MPI is designed to be independent of the motion controller hardware used, as well as the platform (operating system & compiler) on which the motion control application is built.

To support the MPI, a platform must be 32-bit (e.g. Windows NT). Most 32-bit platforms are capable of multi-threading and multi-tasking, and the MPI has built-in features that simplify the design and development of these types of applications.

Why was the MPI developed?

The MPI is a C language, object-oriented interface that makes it easy to develop motion control applications that run on different types of platforms. Programs written using the MPI range from simple, single-task, single-controller applications to complex multi-task applications that use mutiple motion controllers. The MPI hides platform-specific and firmware implementation details while providing a rich set of functions to control motion at any desired level.

What are the prerequisites for learning the MPI?

You do not need to be a master programmer, but you do need a solid foundation in C. The XMP is a C-programmable motion controller that uses object-oriented programming. Familiarity with C will allow you to quickly attack potentially complex implementation issues. Some familiarity with the basic concepts of motion control is required to understand how to use the sample applications. With no concept of motion control, it is dificult to know what parameters to set to make a motion.

What is the difference between 'mpi' and 'mei' data types and methods?

The purpose of the MPI/MEI prefixes was to prevent any possible conflict with any symbols already defined in the supported operating systems and in C-language and third-party libraries.

 
  •  MPI/MEI - data symbol (data type)
  •  mpi/mei - code symbol (method)

The "MEI/mei" prefix denotes additions or extensions to the MPI that usually pertain to the XMP. For example, the MEIAxisConfig{} data structure contains XMP-specific axis configuration parameters that extend the MPI-defined axis configuration parameters (beyond what is already defined in MPIAxisConfig).

Earlier versions of the MPI classified objects or features as generic (MPI) or target-specific (MEI). Generic features were supposed to apply to any motion control design, while target-specific features were only applicable to the XMP. This differentiation has been abandoned for the most part, but backward compatibility has caused some separation of these features to remain. MPI data descriptions are contained in header files in the MPI/include directory while MEI data descriptions are in XMP/include. The documentation emphasizes the type (MPI or MEI) for each feature.

Does the MPI work with Visual C++ .NET?

Yes, Visual C++ .NET can compile non-.NET applications. The MPI will continue to function just as it did with non-.NET compilers. The MPI can also be integrated as unmanaged code into managed .NET applications.

Is the MPI compatible with .NET?

Yes, the MPI can work together as unmanaged code with .NET applications.

Are there any limitations in using the MPI with .NET?

Yes. Since the MPI is an unmanaged library, pure managed applications cannot access it.

Is there an existing .NET version of the MPI?

No. The connection between the MPI and .NET applications must be managed by the user.

Users interested in using a .NET library should consider using the MPX, Kollmorgen’s .NET library for accessing SynqNet controllers.

What is the MPX?

The MPX is a .NET API (application programming interface) for SynqNet controllers. It is an alternative way of writing code for users who do not want to write C code using the standard MPI libraries.

What is the difference between the MPI and MPX in terms of functionality, authoring code, etc.?

The MPI can only be used by C and C++ compilers while the MPX can be used by any language that supports .NET -- including .NET scripting languages.

The MPX only runs on Windows while the MPI can be used on many more operating systems.

The MPX is easier to use for most tasks, but for complicated tasks it can be more difficult to use, in which case it is better to use the MPI.

The MPX is programmed using the MPI, so everything that is possible with the MPX is possible with the MPI.

Should I use the MPI or the MPX to author code?

The MPX is easier to use for most tasks. There are some tasks that the MPX does not currently support where the MPI would need to be used. Typically, you should program using the MPI if one of the following is true:

 
  •  If the MPX does not provide the functionality you need
  •  If the overhead of running an ActiveX control is unacceptable
  •  If you are programming on a platform other than Windows

Otherwise, you can program using the MPX.

Should I save application-specific parameters to firmware?

Though this is possible and while it may simplify software design, it can become problematic from a business standpoint in the future. There are three ways to implement application-specific parameters within your application:

 

Save these parameters to firmware.

  • Potential Obstacle: Parameters for machines may need to change. Your customers may demand that firmware must not change. Also, you may have to fill out a lot of paper work or go through a lot of red tape in order to implement such changes.

  • Potential Obstacle: You decide to upgrade to a new version of the MPI and firmware. Then you will have to load the application-specific parameters into the firmware with Motion Console or config.exe.


Hard code these parameters into your application code.

  • Potential Obstacle: Parameters for machines may need to change--especially if you are designing one piece of software intended to work with multiple machines. Though you don't have to change the firmware, you will need to change your application's code and possibly send customers a new copy of your application.

  • Problem Solved: You no longer have to worry about loading the application-specific parameters into new versions of firmware.

Have your application load these parameters from a configuration file.

  • Potential Obstacle: More effort needed in software design.

  • Problem Solved: You can send customers new parameters without having to change the firmware or your application.

  • Problem Solved: You no longer have to worry about loading the application-specific parameters into new versions of firmware.

Have your MPX application load these parameters from an MPX configuration file.

  • Problem Solved: Less effort needed in software design as saving and loading MPX configuration files is part of the MPX library and simple to accomplish.

  • Problem Solved: You can send customers new parameters without having to change the firmware or your application.

  • Problem Solved: You no longer have to worry about loading the application-specific parameters into new versions of firmware.

At Kollmorgen, we strongly encourage loading configurations from files. For the MPX, we recommend using MPX configuration files. Please feel free to talk to one of our applications engineers if you have any further questions.

Troubleshooting PCI Bridge Device Installation Error?

See the Troubleshooting PCI Bridge Device Installation Error page.

How can I perform a silent installation of MEI software (MDK) in a user defined directory?

In the command line prompt, type the following:

    Win32Setup /v"/qn INSTALLDIR=\"C:\Program Files\Mei\" INSTALLLEVEL=32767" /s

How can I verify that MEI software (MDK) has already been installed?

Check the Winnt\System32 directory to see if the mpivc*.dll file exists. We currently use the mpivc40.dll, mpivc60.dll, and mpivc60d.dll, depending on the version of software installed.. When the MEI software is uninstalled, the MPI *.dll is removed.

What is the difference between a node and motion block on a SynqNet Motion Network?

A node is a place on a network where something happens. For example, CAN is an I/O network that connects I/O nodes (places to hook up digital or analog inputs and outputs).

A motion block refers to a node on a SynqNet Motion Network that is related to motion. A motion block has connections for motors, encoders, I/O, etc.

Are DSP controllers compatible with Windows XP?

ISA bus DSP controllers have no known compatibility issues on Win XP Service pack 1.
Motion Engineering does not support PCI bus DSP controllers with Windows XP. Robotic Systems Integration has developed a device driver and software development kit for PCI bus DSP controllers. Please contact Robotic Systems Integration for more information.

 

 

 

 

 

 

 

 

 

 

 

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