Open Core Interface - MLPI
MLPI-MotionLogicProgrammingInterface(mlpi4COM)  1.26.2
IMotion Interface Reference

Inherits IDispatch.

Collaboration diagram for IMotion:
Collaboration graph

Classes

struct  AxisInformation
 
struct  AxisRef
 
struct  AxisUnits
 
struct  AxisValues
 
struct  MotionStatus
 

Public Types

Public Member Functions

HRESULT GetConfiguredAxes ([out, retval] SAFEARRAY(struct AxisInformation)*axesInfo)
 
HRESULT GetAxisValues ([in]SAFEARRAY(struct AxisRef) axes, [out, retval] SAFEARRAY(struct AxisValues)*axisValues)
 
HRESULT GetAxisUnits ([in]SAFEARRAY(struct AxisRef) axes, [out, retval] SAFEARRAY(struct AxisUnits)*axisUnits)
 

Properties

IAxes Axes [get]
 

Detailed Description

Definition of the IMotion interface used to access the motion functionality of the MLPI Device.

Use the IMotion interface to access settings and functionality of motion devices which are connected to your MLPI device. This might be a drive for example.

Definition at line 72 of file IMotion.idl.

Member Enumeration Documentation

This enumeration defines the type of axis.

Enumerator
AXISTYPE_VIRTUAL 

Virtual axis, no physical drive attached.

AXISTYPE_REAL 

Real axis, this is the common axis during motion.

AXISTYPE_ENCODER 

An encoder attached to a real drive, no motion possible.

AXISTYPE_LINK 

A link ring axis.

AXISTYPE_CONTROLLER 

An axis that can be used when generating your own controller to operate the drive.

Definition at line 88 of file IMotion.idl.

This enumeration defines the direction in which synchronization takes place.

Enumerator
SYNC_SHORTESTWAY 

Axis will synchronize in the direction where it has to move the shortest distance.

SYNC_CATCHUP 

Axis will only move in positive direction.

SYNC_SLOWDOWN 

Axis will only move in negative direction.

Definition at line 100 of file IMotion.idl.

This enumeration defines the direction in which synchronization takes place.

Enumerator
SYNC_RAMPIN_SHORTESTWAY 

Axis will synchronize in the direction where it has to move the shortest distance.

SYNC_RAMPIN_CATCHUP 

Axis will only move in positive direction.

SYNC_RAMPIN_SLOWDOWN 

Axis will only move in negative direction.

SYNC_DIRECT 

No sync at all (only FlexProfile).

Definition at line 110 of file IMotion.idl.

This enumeration defines the method with which synchronization takes place.

Enumerator
STARTMODE_ABSOLUTE 

Slave axis position is absolutely synchronous with the master position.

STARTMODE_RELATIVE 

Slave axis position is relatively synchronous with the master position (velocity synchronous)

STARTMODE_ABSOLUTE_RAMPIN 

Slave axis position ramps to an absolutely synchronous position with the master position.

STARTMODE_RELATIVE_RAMPIN 

Slave axis position ramps to a relatively synchronous position with the master position.

Definition at line 121 of file IMotion.idl.

This enumeration defines how the flex profile is executed.

Enumerator
EXECUTE_CYCLIC 

Cyclic event.

EXECUTE_SINGLE 

Single event.

Definition at line 132 of file IMotion.idl.

This enumeration defines the method a flex profile uses to interpret the start point.

Enumerator
SLAVE_ORIGIN_MASTER_ORIGIN 

Synchronize absolute slave and master position.

SLAVE_CURRENT_MASTER_CURRENT 

Synchronize absolute to master position and relative to current slave position.

SLAVE_ORIGIN_MASTER_CURRENT 

Synchronize absolute to slave position and relative to current master position.

SLAVE_CURRENT_MASTER_ORIGIN 

Synchronize start point relative to current axis positions.

SLAVE_RELATIVE_MASTER_ORIGIN 

Synchronize current point of profile relative to current axis positions to create no slave axis jump.

Definition at line 141 of file IMotion.idl.

This enumeration defines the state of an axis. When disabled, the device connected to the axis cannot be physically in the sercos ring. A-parameter can not be accessed. When an axis is parked, the connected device must be in the ring, S and P-parameters can be read, but the axis cannot be moved:

Enumerator
AXIS_MODE_ACTIVE 

Drive in Ring; Setpoint calculation active.

AXIS_MODE_PARKING 

Drive in Ring; Setpoint calculation not active.

AXIS_MODE_DEACTIVATED 

Drive not in Ring; Setpoint calculation not active.

AXIS_MODE_ACTIVE_DECOUPLED 

Drive in Ring; Setpoint calculation active; No setpoint evaluation in drive.

AXIS_MODE_PARKING_DECOUPLED 

Drive in Ring; Setpoint calculation not active; No setpoint evaluation in drive.

AXIS_MODE_DEACTIVATED_DECOUPLED 

Drive not in Ring; Setpoint calculation not active; No setpoint evaluation in drive.

AXIS_MODE_ACTIVE_PARAMETERIZATION 

Drive in Ring; Setpoint calculation active; axis in parameterization.

AXIS_MODE_PARKING_PARAMETERIZATION 

Drive in Ring; Setpoint calculation not active; axis in parameterization.

AXIS_MODE_DEACTIVATED_PARAMETERIZATION 

Drive not in Ring; Setpoint calculation not active; axis in parameterization.

AXIS_MODE_ACTIVE_DECOUPLED_PARAMETERIZATION 

Drive in Ring; Setpoint calculation active; No setpoint evaluation in drive; axis in parameterization.

AXIS_MODE_PARKING_DECOUPLED_PARAMETERIZATION 

Drive in Ring; Setpoint calculation not active; No setpoint evaluation in drive; axis in parameterization.

AXIS_MODE_DEACTIVATED_DECOUPLED_PARAMETERIZATION 

Drive not in Ring; Setpoint calculation not active; No setpoint evaluation in drive; axis in parameterization.

Definition at line 156 of file IMotion.idl.

This enumeration defines the cam table id.

Definition at line 178 of file IMotion.idl.

This enumeration defines the state of an axis.

  • When disabled, the device connected to the axis cannot physically be in the sercos ring. A-parameter can not be accessed.
  • When an axis is parked, the connected device must be in the ring, S and P-parameters can be read but the axis cannot be moved.
  • When an axis is in parametrization, then it can be parameterized even if control mode and communication are in mode 'BB'.
Enumerator
AXIS_CONDITION_ACTIVE 

Drive in Ring; Setpoint calculation active.

AXIS_CONDITION_PARKING 

Drive in Ring; Setpoint calculation not active.

AXIS_CONDITION_DEACTIVATED 

Drive not in Ring; Setpoint calculation not active.

AXIS_CONDITION_ACTIVE_DECOUPLED 

Drive in Ring; Setpoint calculation active; No setpoint evaluation in drive.

AXIS_CONDITION_PARKING_DECOUPLED 

Drive in Ring; Setpoint calculation not active; No setpoint evaluation in drive.

AXIS_CONDITION_DEACTIVATED_DECOUPLED 

Drive not in Ring; Setpoint calculation not active; No setpoint evaluation in drive.

AXIS_CONDITION_ACTIVE_PARAMETERIZATION 

Drive in Ring; Setpoint calculation active; axis in parameterization.

AXIS_CONDITION_PARKING_PARAMETERIZATION 

Drive in Ring; Setpoint calculation not active; axis in parameterization.

AXIS_CONDITION_DEACTIVATED_PARAMETERIZATION 

Drive not in Ring; Setpoint calculation not active; axis in parameterization.

AXIS_CONDITION_ACTIVE_DECOUPLED_PARAMETERIZATION 

Drive in Ring; Setpoint calculation active; No setpoint evaluation in drive; axis in parameterization.

AXIS_CONDITION_PARKING_DECOUPLED_PARAMETERIZATION 

Drive in Ring; Setpoint calculation not active; No setpoint evaluation in drive; axis in parameterization.

AXIS_CONDITION_DEACTIVATED_DECOUPLED_PARAMETERIZATION 

Drive not in Ring; Setpoint calculation not active; No setpoint evaluation in drive; axis in parameterization.

Definition at line 290 of file IMotion.idl.

This enumeration defines the extended state of an axis.

Enumerator
STATE_EXTENDED_ERRORSTOP 

Axis is in state ErrorStop.

STATE_EXTENDED_STOPPING 

Axis is in state Stopping.

STATE_EXTENDED_HOMING 

Axis is in state Homing.

STATE_EXTENDED_POWERON 

Axis has power.

STATE_EXTENDED_DISCRETEMOTION 

Axis is in state DiscreteMotion.

STATE_EXTENDED_CONTINUOUSMOTION 

Axis is in state ContinousMotion.

STATE_EXTENDED_SYNCHRONIZEDMOTION 

Axis is in state SynchronizedMotion.

STATE_EXTENDED_STANDSTILL 

Axis is in state Standstill.

STATE_EXTENDED_COORDINATEDMOTION 

Axis is in state CoordinatedMotion.

Definition at line 312 of file IMotion.idl.

Member Function Documentation

HRESULT IMotion::GetConfiguredAxes ( [out, retval] SAFEARRAY(struct AxisInformation)*  axesInfo)

This method returns a struct array with information about the currently configured axes in the device. Use this method to get a quick overview of the motion configuration of your target. You can then use the Name or AxisRef.AxisNo element of the returned structure as an index for the Axes property of this interface to get more information of the given axis.

Parameters
[out]axesInfoStruct array containing information about the current axis configuration. Contains one element for each axis.
Returns
Return value indicating success (>=0) or error (<0).
Example C#:
try
{
// read list of configured axes
AxisInformation[] axisInformations = (AxisInformation[])connection.Motion.GetConfiguredAxes();
// print to console
for each (AxisInformation axisInformation in axisInformations)
{
Console.WriteLine("-> " + axisInformation.axis.axisNo + ": " + axisInformation.name);
}
}
catch (System.Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
Note:
This method maps to the mlpiCore function mlpiMotionGetConfiguredAxes, where you can find further documentation.
HRESULT IMotion::GetAxisValues ( [in] SAFEARRAY(struct AxisRef axes,
[out, retval] SAFEARRAY(struct AxisValues)*  axisValues 
)

This function fills an array of AxisValues structures. Use the axes input parameter to specify the axes for which information should be read. You may want to use this method to read several sets of axis information for several axes using one single method call during operation of the axes. This provides increased performance in comparison to reading the values bit by bit and axis by axis.

Parameters
[in]axesAn array of AxisRef structures which specify the axis you want to read.
[out]axisValuesReturns a struct with the current operation information about axes.
Returns
Return value indicating success (>=0) or error (<0).
Example C#:
try
{
// read list of configured axes
AxisInformation[] axisInformations = (AxisInformation[])connection.Motion.GetConfiguredAxes();
// build a list of axis refs with all axes
AxisRef[] axes = new AxisRef[axisInformations.Length];
for (int i = 0; i < axisInformations.Length; i++)
{
axes[i] = axisInformations[i].axis;
}
// read values of axis as well as corresponding unit information
AxisValues[] axisValues = (AxisValues[])connection.Motion.GetAxisValues(axes);
AxisUnits[] axisUnits = (AxisUnits[])connection.Motion.GetAxisUnits(axes);
// print to console
for (int i = 0; i < axisValues.Length; i++)
{
Console.WriteLine("-> " + axisInformations[i].axis.axisNo + ": " + axisInformations[i].name);
Console.WriteLine(" Position: " + axisValues[i].actualPosition + " " + axisUnits[i].position);
Console.WriteLine(" Velocity: " + axisValues[i].actualVelocity + " " + axisUnits[i].velocity);
Console.WriteLine(" Acceleration: " + axisValues[i].actualAcceleration + " " + axisUnits[i].acceleration);
Console.WriteLine(" Torque: " + axisValues[i].actualTorque + " " + axisUnits[i].torque);
Console.WriteLine(" Diagnosis: " + axisValues[i].diagnosisNumber);
}
}
catch (System.Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
Note:
This method maps to the mlpiCore function mlpiMotionGetAxisValues, where you can find further documentation.
HRESULT IMotion::GetAxisUnits ( [in] SAFEARRAY(struct AxisRef axes,
[out, retval] SAFEARRAY(struct AxisUnits)*  axisUnits 
)

This function fills an array of AxisUnits structures with information about the units of the axis. Use the axes input parameter to specify the axes for which information should be read. bit by bit and axis by axis.

Parameters
[in]axesAn array of AxisRef structures which specify the axis you want to read.
[out]axisUnitsReturns a struct with the current unit information about axes.
Returns
Return value indicating success (>=0) or error (<0).
Example C#:
See GetAxisValues.
Note:
This method maps to the mlpiCore function mlpiMotionGetAxisUnits, where you can find further documentation.

Property Documentation

IAxes IMotion::Axes
get

This property returns a IAxes object which allows access to different IAxis objects. The IAxes interface is a collection interface.

Parameters
[out]axesReturns an object of the type IAxes.
Returns
Return value indicating success (>=0) or error (<0).
Example C#:
try
{
// get object of first axis
IAxis axis = connection.Motion.Axes[1];
// print to console
Console.WriteLine("Name of Axis 1: " + axis.GetName());
}
catch (System.Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}

The documentation for this interface was generated from the following file: