Objects Relationships

Introduction

To create a motion application, you create objects, link them in relationships (associate them), and provide the desired parameters for motion.

There are three ways that you can associate one object with another object:

    • Using an object List
    • Using bitmap
    • Using an array of object numbers

Objects using bitmaps or an array of numbers must all be present physically on the same controller, while objects on an object list can come from different controllers (such as objects on the EventMgr control list).

Three Ways to Associate Objects with Objects
Object . When to Use

List

an ordered list

Use a List
when the order of the objects to be associated is important, OR when some of the objects reside on different controllers.

Bitmap

an un-ordered list

Use a bitmap
when the order of the objects is not important, AND the objects must all reside on the same controller (same Control object).

Array of object numbers

an ordered list

Use an array of object numbers
when the order of the objects is important, AND the objects must all reside on the same controller (same Control object).
 

Object List

Use an object list to associate objects when ordering is required, such as the Axis list maintained by a Motion object. For example, when using a Motion object, a list of Axes 0, 1, 2 is not the same as a list of Axes 0, 2, 1. Such a distinction is not available when using an object map. Refer to the List methods for Motion, Notify, Sequence and EventMgr objects.

This object: Can have object lists of:
Motion Axes
Notify Events
EventMgr Controls
Notify objects
Sequence Commands
 

Bitmap

An object map is a bitmap, where each numbered bit represents the presence or absence of the correspondingly numbered object. You can order the objects in the bitmap from numeric low-to-high or high-to-low, but there is no other meaningful capability for ordering objects with an object map.

Another consideration with object maps is that all objects specified in the map and the object (that those objects are being associated with) must be resident on the same controller (Control object).

Note: Although the MPI allows an Axis to be associated with a Motion without regard to the controller (Control), the XMP implementation of the MPI does not allow this.

Object maps tend to be used to associate low-level objects that:

    • must all reside on the same controller (Control)
    • and the order in which the objects are ordered does not matter

Note that the objects specified in the bitmap may be associated with another object, without those objects having to be created and deleted. A goal of the MPI has been to minimize the need to create and delete objects, especially objects that are just used for configuration. For example, an MPI application that uses the default configuration doesn't have to create Filter or Motor objects, yet the application can still configure an Axis, by calling mpiAxisFilterMapSet(...), where the Filters are specified by the bitmap.

Object Maps for Objects
This object: Has associated object maps of:
Filter

Axes
Motors

Axis Filters
Motors
Motor Filters
Axes
Adcs
 

Array of Object Numbers

The MPI provides a third means of associating objects, by using object numbers. Object numbers should be used when ordering is required, and all the resources arelocated on the same controller.

 

Using List, Bitmaps, & Arrays

 

 

 

 

 

Application-MPI-Controller Interface

 

SERCOS Interface

The standard XMP controller uses an analog interface. The analog interface requires many wires to make the connections between amplifiers and I/O. The XMP/Sercos controller uses a fiber optic interface coupled with a deterministic serial communications protocol to take the place of the wires needed with the analog XMP.

SERCOS allows the XMP controller to transmit more than just an analog reference signal to an amplifier. SERCOS allows the XMP controller to transmit position, velocity, torque, I/O, tuning parameters, and other configuration parameters to an amplifier. Because the data is transmitted to an amplifier in digital form, the amplifier will contain an on-board processor. Besides parsing the command data and sending feedback, the on board processor gives the drive many capabilities. SERCOS drives have the ability to close a position, velocity, and/or torque loop, execute internal homing procedures, as well as latch position based on digital inputs.

Despite the fact that the XMP/SERCOS controller has a different physical interface than the standard XMP controller, the same MPI is used for both controllers. The complexity of the XMP/SERCOS controller's interface has been hidden by the MPI and by the firmware running on the XMP. This means that the same development tools can be used for both controllers. The XMP/SERCOS controller requires that an initialization procedure be executed before commands can be sent to amplifiers. Once the initialization procedure has successfully executed, the XMP/SERCOS controller acts the same as the standard analog XMP controller.