|
The XMP and ZMP series controllers are programmed using the MPI, an object-oriented, C/C++ application programming interface. You access all resources - hardware and firmware - through the MPI. The MPI's object-oriented architecture lets you build your motion code the same way you build your machine: by creating individual software objects that reflect the components and actions of the hardware.
An MPI application creates objects for the motion controller and its resources (such as axes, input and output devices, or firmware tasks) and manipulates them using various methods.
The MPI is written entirely in ANSI-compatible C code for maximum portability. With rules and methodology consistent with other object-oriented interfaces, the MPI simplifies integration of motion code with other software components in your machine.
The MPI was designed for multi-threaded environments and supports Windows 2000, Windows NT, Windows XP and real time operating systems including:
- VxWorks
- VenturCom
- LynxOS
- PharLap
- QNX
In addition, an MPI Linux port is also available for Red Hat and other Linux operating systems.
The reentrant library includes operating system locking mechanisms to control access to shared resources.
For remote motion control and diagnostics, the MPI supports a socket-based client-server mode of operation running over TCP/IP.
Objects in the MPI include:
- Control - manages a motion controller device and handles all communication with the firmware.
- Axis - is associated with a single physical axis on a motion controller. When required, an Axis object can control multiple motors that perform as a single axis, such as a gantry system.
- Motor - is associated with a physical motor. Motor objects handle the amplifier, I/O bits, and events associated with the motor.
- Motion - maintains an ordered list of Axis objects that specify the coordinate system for all motions to be performed. Motions are defined by type (trapezoidal, S-curve, parabolic, etc.) and parameters (position, velocity, acceleration, etc.)
- Filter - manages the firmware resource that calculates control algorithm for an axis.
- EventMgr (Event Manager) - receives asynchronous events (such as an end-of-move or a position compare) from the firmware. In response, an Event object is generated by the firmware and sent to any threads waiting for those events.
- Sequence - is a linked list of motion commands executed directly on the firmware.
- Recorder - collects motion information from the firmware to be accessed by external tools such as Motion Scope, Motion Console, or other graphing/analysis packages.
|