.

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 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?


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.

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.

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