.


   

Configuration File Format

Configuration files are saved in an XML format. The format is based on the MPI configuration structures. If one understands these structures, then it is a simple step to understanding the data in a configuration file. The key is to know that the actual data is stored in "property" nodes. The other node types are just steps in the path to getting to the property nodes.

Example

The following example shows a Control object which contains an MPIControlConfig object which has an auxDacCount property. The value of the auxDacCount property is 1.

<Control id="Control 0" nodeType="object" objectType="Control>

<MPIControlConfig id="MPIControlConfig" 
nodeType="object"
objectType="MPIControlConfig"> <syncInterruptPeriod nodeType="property" value="0"/>

 

MPI Object Hierarchy

The hierarchy of MPI objects and their associated configuration structures is as follows:

Control
     MPIControlConfig
     SynqNet
          MPISynqNetConfig
          MPISynqNetInfo
          SqNode
               MPISqNodeConfig
               MPISqNodeInfo
              SqDrive
                   MPISqNodeDriveMonitorConfig
                   Params

Capture
     MPICaptureConfig

Compensator
     MPICompensatorConfig
     table

Axis
     MPIAxisConfig

Motion
     MPIMotionConfig

Motor
     MPIMotorConfig

Recorder
     MPIRecorderConfig

NOTE: The SqDrive object is not an MPI object. It is an object internal to meiConfig that allows the drive configuration and information to be saved and restored.

Node Types

object A container for sub-objects and properties.
property A terminal (leaf) node that contains an attribute of an object.
objectList A container for zero or more object nodes.
propertyList A container for zero or more property nodes.

 

Object Nodes

nodeType Always "object". Required
id A simple identifier. Optional.
objectType Type of the object. Optional.
_n Index of the object when it is in a list.

 

Example:

<MeiXmlConfig nodeType="object">

<Control id="Control 0" nodeType="object" objectType="Control">

<MPIControlConfig id="MPIControlConfig" nodeType="object" 
        objectType="MPIControlConfig">

 

Notes:

The id for MPI objects denotes the object and it's index, such as Axis 3. The id for data structures that are "owned" by an MPI object is the same as the objectType. For example:

<MPIAxisConfig id="MPIAxisConfig" 
               nodeType="object"        objectType="MPIAxisConfig">

The id of structures that are contained in other structures is the member name of the structure:

<userUnit
        id="userUnit " 
        nodeType="object" 
        objectType="MPIAxisUserUnit ">

If a structure is defined within the scope of another structure, then the objectType is of the form Parent.member. For example:

<feedForward id="feedForward " 
           nodeType="object" 
           objectType="MPIFilterGainPID.feedForward ">

Finally, if a structure is in an array, then the id will be of the form "member #" where # is the index of the structure in the array.

Example:

<axis _n="0" id="axis 0" nodeType="object" 
    objectType="MPIFilterAxisInput">

 

Property Nodes

nodeType Always property. Required
value The value of the property.
valueList The value of the property when the value is a list of items.
hex The hexadecimal value, when appropriate.
(others) Some properties have special attributes.
_n Index of the property when it is in a list.

Example:

<count nodeType="property" value="4"/>

<faultMask hex="00000011">
        nodeType="property"
        value="17"
        valueList="MPIMotorFaultMaskAMP MPIMotorFaultMaskFEEDBACK"/>

Property Values and MPI Version Independence:

The values of some configuration properties are saved in a manner that helps to maintain MPI version independence.

 
  • Enums are saved as text rather than their numeric values.
  • Bit masks that are defined as enums are saved as follows:
         - valueList: a list of enums
  • Firmware addresses are converted to their text equivalent.

Object List Nodes

nodeType Always objectList. Required
length The length of the list. Required
objectType Type of object in the list.

Example:

<AxisList length="4" nodeType="objectList" objectType="Axis">

<gain length="5" nodeType="objectList" objectType="MPIFilterGain">

Notes:

Objects contained in a list have an _n attribute that denotes the index within the list.

MPI objects of type Type are contained in a list named TypeList.
Example: Axis objects are contained in the AxisList.

Members of data structures that are arrays are named after the member name. Below is an example of an array of arrays:

<MPIFilterConfig id="MPIFilterConfig"
 nodeType="object"
 objectType="MPIFilterConfig">
   <gain length="5"
    nodeType="objectList"
     objectType="MPIFilterGain">
     <gain _n="0" id="gain 0"
         nodeType="object"
          objectType="MPIFilterGain">
     <User length="20" nodeType="propertyList">
       <User _n="0" nodeType="property" value="0.0"/>

 

Property List Nodes

nodeType Always propertyList. Required
length The number of elements in the list. Required

Example:

<axisFrameCount length="32" nodeType="propertyList">

<axisNumber length="16" nodeType="propertyList">

Previous | Next

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