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

Inherits IDispatch.

Collaboration diagram for IGroupMovement:
Collaboration graph

Public Member Functions

HRESULT MoveLinearAbsolute ([in] IRobotPoint *endPoint, [in] DOUBLE velocity, [in] DOUBLE acceleration, [in] DOUBLE deceleration, [in] DOUBLE jerk, [in] DOUBLE radius, [in] enum RobotSetMode setMode, [in] enum RobotSlopeType slopeType)
 
HRESULT MoveLinearRelative ([in] IRobotPoint *distance, [in] DOUBLE velocity, [in] DOUBLE acceleration, [in] DOUBLE deceleration, [in] DOUBLE jerk, [in] DOUBLE radius, [in] enum RobotSetMode setMode, [in] enum RobotSlopeType slopeType)
 
HRESULT MoveDirectAbsolute ([in] IRobotPoint *endPoint, [in] DOUBLE velocity, [in] DOUBLE acceleration, [in] DOUBLE deceleration, [in] DOUBLE jerk, [in] DOUBLE radius, [in] enum RobotSetMode setMode, [in] enum RobotSlopeType slopeType)
 
HRESULT MoveCircularAbsolute ([in] IRobotPoint *midPoint, [in] IRobotPoint *endPoint, [in] DOUBLE velocity, [in] DOUBLE acceleration, [in] DOUBLE deceleration, [in] DOUBLE jerk, [in] DOUBLE radius, [in] enum RobotSetMode setMode, [in] enum RobotSlopeType slopeType)
 
HRESULT SyncOnWithLimits ([in] AxisRef *beltAxis, [in] DOUBLE acceleration, [in] DOUBLE jerk)
 
HRESULT SyncOffWithLimits ([in] AxisRef *beltAxis, [in] DOUBLE deceleration, [in] DOUBLE jerk, [in] DOUBLE radius, [in] enum RobotSetMode setMode)
 
HRESULT WaitForDone ([in] LONG timeout)
 
HRESULT WaitForActive ([in] LONG timeout)
 
HRESULT WaitForInBuffer ([in] LONG timeout)
 
HRESULT Stop ([in] DOUBLE deceleration, [in] DOUBLE jerk, [in] BOOL stop)
 
HRESULT Interrupt ([in] DOUBLE deceleration, [in] DOUBLE jerk)
 
HRESULT Continue ()
 
HRESULT JogStep ([in] IRobotPoint *distance, [in] DOUBLE velocity, [in] DOUBLE acceleration, [in] DOUBLE deceleration, [in] DOUBLE jerk)
 
HRESULT JogCont ([in] IRobotPoint *direction, [in] DOUBLE velocity, [in] DOUBLE acceleration, [in] DOUBLE deceleration, [in] DOUBLE jerk)
 
HRESULT StopCmd ()
 

Detailed Description

Definition of the IGroupMovement interface used to access motion commands to move a group.

Use the IGroupMovement interface to physically move or control a group by using various motion commands.

Definition at line 70 of file IGroupMovement.idl.

Member Function Documentation

HRESULT IGroupMovement::MoveLinearAbsolute ( [in] IRobotPoint endPoint,
[in] DOUBLE  velocity,
[in] DOUBLE  acceleration,
[in] DOUBLE  deceleration,
[in] DOUBLE  jerk,
[in] DOUBLE  radius,
[in] enum RobotSetMode  setMode,
[in] enum RobotSlopeType  slopeType 
)

performs simple linear move to an absolute end position.

Parameters
[in]*endPointabsolute end position.
[in]velocitymaximum velocity.
[in]accelerationmaximum acceleration.
[in]jerkmaximum jerk.
[in]decelerationmaximum deceleration.
[in]radiusradius for blending a move.
[in]setMode"TO" or "VIA".
[in]slopeTypee.g. ROBOT_SLOPETYPE_BLOCK_SLOPE.
Returns
Return value indicating success (>=0) or error (<0).
Example C#:
// Move linear absolute to Point.
RobotPoint endPoint = connection.Robot.CreatePoint(new double[] { 0.0, 0.0, 0.0 }, RobotCoordinateSystem.ROBOT_CS_MCS);
connection.Robot.Groups[1].Movement.MoveLinearAbsolute(endPoint, 100.0, 100.0, 20000.0, 50.0, ROBOT_SETMODE_TO, ROBOT_SLOPETYPE_BLOCK_SLOPE);
Note:
This method maps to the mlpiCore function mlpiRobotMoveLinearAbs, where you can find further documentation.
HRESULT IGroupMovement::MoveLinearRelative ( [in] IRobotPoint distance,
[in] DOUBLE  velocity,
[in] DOUBLE  acceleration,
[in] DOUBLE  deceleration,
[in] DOUBLE  jerk,
[in] DOUBLE  radius,
[in] enum RobotSetMode  setMode,
[in] enum RobotSlopeType  slopeType 
)

performs simple linear move with a given relative distance.

Parameters
[in]*distancedistance to be moved.
[in]velocitymaximum velocity.
[in]accelerationmaximum acceleration.
[in]jerkmaximum jerk.
[in]decelerationmaximum deceleration.
[in]radiusradius for blending a move.
[in]setMode"TO" or "VIA".
[in]slopeTypee.g. ROBOT_SLOPETYPE_BLOCK_SLOPE.
Returns
Return value indicating success (>=0) or error (<0).
Example C#:
// Move linear relative to Point.
RobotPoint distance = connection.Robot.CreatePoint(new double[] { 100.0, 0.0, 0.0 }, RobotCoordinateSystem.ROBOT_CS_MCS);
connection.Robot.Groups[1].Movement.MoveLinearRelative(distance, 100.0, 100.0, 20000.0, 50.0, ROBOT_SETMODE_TO, ROBOT_SLOPETYPE_BLOCK_SLOPE);
Note:
This method maps to the mlpiCore function mlpiRobotMoveLinearRel, where you can find further documentation.
HRESULT IGroupMovement::MoveDirectAbsolute ( [in] IRobotPoint endPoint,
[in] DOUBLE  velocity,
[in] DOUBLE  acceleration,
[in] DOUBLE  deceleration,
[in] DOUBLE  jerk,
[in] DOUBLE  radius,
[in] enum RobotSetMode  setMode,
[in] enum RobotSlopeType  slopeType 
)

performs simple point to point move to an absolute end position.

Parameters
[in]*endPointabsolute end position.
[in]velocitymaximum velocity.
[in]accelerationmaximum acceleration.
[in]jerkmaximum jerk.
[in]decelerationmaximum deceleration.
[in]radiusradius for blending a move.
[in]setMode"TO" or "VIA".
[in]slopeTypee.g. ROBOT_SLOPETYPE_BLOCK_SLOPE.
Returns
Return value indicating success (>=0) or error (<0).
Example C#:
// Move direct absolute to Point.
RobotPoint endPoint = connection.Robot.CreatePoint(new double[] { 0.0, 0.0, 0.0 }, RobotCoordinateSystem.ROBOT_CS_MCS);
connection.Robot.Groups[1].Movement.MoveDirectAbsolute(endPoint, 100.0, 100.0, 20000.0, 50.0, ROBOT_SETMODE_TO, ROBOT_SLOPETYPE_BLOCK_SLOPE);
Note:
This method maps to the mlpiCore function mlpiRobotMoveDirectAbs, where you can find further documentation.
HRESULT IGroupMovement::MoveCircularAbsolute ( [in] IRobotPoint midPoint,
[in] IRobotPoint endPoint,
[in] DOUBLE  velocity,
[in] DOUBLE  acceleration,
[in] DOUBLE  deceleration,
[in] DOUBLE  jerk,
[in] DOUBLE  radius,
[in] enum RobotSetMode  setMode,
[in] enum RobotSlopeType  slopeType 
)

performs simple circular move to an absolute end position.

Parameters
[in]*midPointmid point to create a circular move.
[in]*endPointabsolute end position.
[in]velocitymaximum velocity.
[in]accelerationmaximum acceleration.
[in]jerkmaximum jerk.
[in]decelerationmaximum deceleration.
[in]radiusradius for blending a move.
[in]setMode"TO" or "VIA".
[in]slopeTypee.g. ROBOT_SLOPETYPE_BLOCK_SLOPE.
Returns
Return value indicating success (>=0) or error (<0).
Example C#:
// Move circular absolute to Point.
RobotPoint midPoint = connection.Robot.CreatePoint(new double[] { 0.0, 0.0, 0.0 }, RobotCoordinateSystem.ROBOT_CS_MCS);
RobotPoint endPoint = connection.Robot.CreatePoint(new double[] { 0.5, 0.5, 0.5 }, RobotCoordinateSystem.ROBOT_CS_MCS);
connection.Robot.Groups[1].Movement.MoveCircularAbsolute(midPoint, endPoint, 100.0, 100.0, 20000.0, 50.0, 20.0, ROBOT_SETMODE_TO, ROBOT_SLOPETYPE_BLOCK_SLOPE);
Note:
This method maps to the mlpiCore function mlpiRobotMoveCircularAbs, where you can find further documentation.
HRESULT IGroupMovement::SyncOnWithLimits ( [in] AxisRef *  beltAxis,
[in] DOUBLE  acceleration,
[in] DOUBLE  jerk 
)

performs a synchronization to a belt with movement limits.

Parameters
[in]beltAxisaxis reference of the belt.
[in]accelerationmaximum acceleration.
[in]jerkmaximum jerk.
Returns
Return value indicating success (>=0) or error (<0).
Example C#:
// Synchronize to beltAxis.
AxisRef beltAxis;
connection.Robot.Groups[1].Movement.SyncOnWithLimits(beltAxis, 100.0, 20000.0);
Note:
This method maps to the mlpiCore function mlpiRobotSyncOnWithLimits, where you can find further documentation.
HRESULT IGroupMovement::SyncOffWithLimits ( [in] AxisRef *  beltAxis,
[in] DOUBLE  deceleration,
[in] DOUBLE  jerk,
[in] DOUBLE  radius,
[in] enum RobotSetMode  setMode 
)

performs a desynchronization of a belt with movement limits.

Parameters
[in]beltAxisaxis reference of the belt.
[in]jerkmaximum jerk.
[in]decelerationmaximum deceleration.
[in]radiusradius for blending a move.
[in]setMode"TO" or "VIA".
Returns
Return value indicating success (>=0) or error (<0).
Example C#:
// Desynchronize to beltAxis.
AxisRef beltAxis;
connection.Robot.Groups[1].Movement.SyncOnWithLimits(beltAxis, 100.0, 20000.0, 50.0, ROBOT_SETMODE_TO);
Note:
This method maps to the mlpiCore function mlpiRobotSyncOffWithLimits, where you can find further documentation.
HRESULT IGroupMovement::WaitForDone ( [in] LONG  timeout)

this function waits until the command status is set to done.

Parameters
[in]timeoutif the timeout is exceeded, this function fails with "MLPI_E_TIMEOUT".
Returns
Return value indicating success (>=0) or error (<0).
Example C#:
// Wait 100s for command status set to done. If 100s is exceeded without command status set to done, return "MLPI_E_TIMEOUT".
connection.Robot.Groups[1].Movement.WaitForDone(100);
Note:
This method maps to the mlpiCore function mlpiRobotMotionGetStatus, where you can find further documentation.
HRESULT IGroupMovement::WaitForActive ( [in] LONG  timeout)

this function waits until the command status is set to active

Parameters
[in]timeoutif the timeout is exceeded, this function fails with "MLPI_E_TIMEOUT".
Returns
Return value indicating success (>=0) or error (<0).
Example C#:
// Wait 100s for command status set to active. If 100s is exceeded without command status set to active, return "MLPI_E_TIMEOUT".
connection.Robot.Groups[1].Movement.WaitForActive(100);
Note:
This method maps to the mlpiCore function mlpiRobotMotionGetStatus, where you can find further documentation.
HRESULT IGroupMovement::WaitForInBuffer ( [in] LONG  timeout)

this function waits until the command is in buffer

Parameters
[in]timeoutif the timeout is exceeded, this function fails with "MLPI_E_TIMEOUT".
Returns
Return value indicating success (>=0) or error (<0).
Example C#:
// Wait 100s for command to get in buffer. If 100s is exceeded without command getting in buffer, return "MLPI_E_TIMEOUT".
connection.Robot.Groups[1].Movement.WaitForInBuffer(100);
Note:
This method maps to the mlpiCore function mlpiRobotMotionGetStatus, where you can find further documentation.
HRESULT IGroupMovement::Stop ( [in] DOUBLE  deceleration,
[in] DOUBLE  jerk,
[in] BOOL  stop 
)

This function stops the group with the given deceleration and jerk.

Parameters
[in]decelerationCommanded deceleration of movement.
[in]jerkCommanded jerk of movement.
[in]stopTRUE: stopping, FALSE: exit stopping mode Important Note: This command is special in the way that it has to be called one time with 'stop' = TRUE. This will bring the group to a standstill. And when the group is standing still, the command has to be called again with 'stop' = FALSE in order to enter the PLCopen 'Standstill' mode.
Returns
Return value indicating success (>=0) or error (<0).
Example:
// Stop the group.
connection.Robot.Groups[1].Movement.Stop(100.0, 20000.0, true);
Note:
This method maps to the mlpiCore function mlpiRobotStop, where you can find further documentation.
HRESULT IGroupMovement::Interrupt ( [in] DOUBLE  deceleration,
[in] DOUBLE  jerk 
)

This function interrupts the group.

Parameters
[in]decelerationCommanded deceleration of movement.
[in]jerkCommanded jerk of movement.
Returns
Return value indicating success (>=0) or error (<0).
Example:
// Interrupt the group with settings of paramSet.
connection.Robot.Groups[1].Movement.Interrupt(100.0, 20000.0);
Note:
This method maps to the mlpiCore function mlpiRobotInterrupt, where you can find further documentation.
HRESULT IGroupMovement::Continue ( )

This function continues the group.

Returns
Return value indicating success (>=0) or error (<0).
Example:
// Continue the group.
connection.Robot.Groups[1].Movement.Continue();
Note:
This method maps to the mlpiCore function mlpiRobotContinue, where you can find further documentation.
HRESULT IGroupMovement::JogStep ( [in] IRobotPoint distance,
[in] DOUBLE  velocity,
[in] DOUBLE  acceleration,
[in] DOUBLE  deceleration,
[in] DOUBLE  jerk 
)

This function jogs a step.

Parameters
[in]distancedistance for the jog step.
[in]velocitymaximum velocity of movement.
[in]accelerationmaximum acceleration of movement.
[in]decelerationmaximum deceleration of movement.
[in]jerkmaximum jerk of movement.
Returns
Return value indicating success (>=0) or error (<0).
Example:
// Jog a step
RobotPoint distance = connection.Robot.CreatePoint(new double[] { 10.0, 0.0, 0.0 }, RobotCoordinateSystem.ROBOT_CS_MCS);
connection.Robot.Groups[1].Movement.JogStep(distance, 10.0, 100.0, 100.0, 1000.0);
Note:
This method maps to the mlpiCore function mlpiRobotJogStep, where you can find further documentation.
HRESULT IGroupMovement::JogCont ( [in] IRobotPoint direction,
[in] DOUBLE  velocity,
[in] DOUBLE  acceleration,
[in] DOUBLE  deceleration,
[in] DOUBLE  jerk 
)

This function jogs continuously.

Parameters
[in]directiondirection for the continuous jog movement.
[in]velocitymaximum velocity of movement.
[in]accelerationmaximum acceleration of movement.
[in]decelerationmaximum deceleration of movement.
[in]jerkmaximum jerk of movement.
Returns
Return value indicating success (>=0) or error (<0).
Example:
// Jog continuously
RobotPoint direction = connection.Robot.CreatePoint(new double[] { 1.0, 0.0, 0.0 }, RobotCoordinateSystem.ROBOT_CS_MCS);
connection.Robot.Groups[1].Movement.JogStep(direction, 10.0, 100.0, 100.0, 1000.0);
connection.Robot.Groups[1].Movement.StopCmd();
Note:
This method maps to the mlpiCore function mlpiRobotJogCont, where you can find further documentation.
HRESULT IGroupMovement::StopCmd ( )

This function stops last command.

Returns
Return value indicating success (>=0) or error (<0).
Example:
// Stop last command
connection.Robot.Groups[1].Movement.StopCmd();
Note:
This method maps to the mlpiCore function mlpiRobotStopCmd, where you can find further documentation.

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