Move Until Control Error

Monitor the control error of the XBot in a specified axis. When the monitoring condition is met, the move until command will finish, and the XBot will stop.

image-20260706-203542.png

Fieldbus Interface

PMC_MoveUntilControlError 

Inputs

Name

Data Type

Description

Execute

BOOL

Execution of the function block begins on a rising edge of this input.

cmdLB

UINT

Any 2 byte Command Label, user defined.

XbotID

USINT

ID of the XBot. Real XBot IDs [1,78]. Virtual XBot IDs [100,127]. Macro IDs [128,191]

Mode

USINT

0: Absolute Position. 1: Relative Positioning

Priority

USINT

0: No priority. 1: High priority - the specified mover will move on its travel path before other movers. Other movers are not allowed to enter the travel path until the specified mover completes its motion

AxisID

USINT

Axid IDs: 0 = no axis, 1 = X, 2 = Y, 3 = Z, 4 = RX, 5 = RY, 6 = RZ

Pos

REAL

Target position (m or rad)

EndVel

REAL

Ending Speed  (m/s or rad/s), default = 0

MaxVel

REAL

Maximum Speed (m/s or rad/s), default = 1.0 m/s

MaxAcc

REAL

Maximum Acceleration (m/s2 or rad/s2), default = 10.0 m/s2 or 10.0 rad/s2

TriggerAxisID

USINT

Axis that will be monitored to trigger stop of the move

Axid IDs: 0 = no axis, 1 = X, 2 = Y, 3 = Z, 4 = RX, 5 = RY, 6 = RZ

Threshold

REAL

Error threshold (m or rad) to move until

PM_Controller

PMControllerType

Data structure that specifies which PMC to connect to. There should be only 1 instance of this variable for each connected PMC.
Outputs

Name

Data Type

Description

Ack

BOOL

Command has been accepted by the PMC when Ack = TRUE.

Done

BOOL

Execution successful. Function block is finished. (Note: Done will not become TRUE if Execute is already FALSE) 

Busy

BOOL

Function block is active and must continue to be called.

Aborted

BOOL

Command aborted by another command.

Error

BOOL

If there is an error in processing the command, then Error = TRUE, otherwise, FALSE.

ErrorID

UINT

0x0: All OK. Otherwise, please see Fieldbus Reply Codes.

TravelTime

REAL

Time needed for the motion to complete, in seconds

Ethernet Interface 

MotionRtn MoveUntilControlError(uint cmdLabel, int xbotID, POSITIONMODE positionMode, AXISNAMES axis, double targetPos, double maxSpeed, double maxAcceleration, double ctrlErrThreshold)

Parameters

Name

Type

Description

cmdLabel

uint

Any 2 byte Command Label, user defined.

xbotID

int

ID of the XBot. Real XBot IDs [1,78]. Virtual XBot IDs [100,127]. Macro IDs [128,191]

positionMode

enum

ABSOLUTE (0) = absolute positioning, RELATIVE(1) = relative positioning

axis

enum

Axid IDs: 0 = no axis, 1 = X, 2 = Y, 3 = Z, 4 = RX, 5 = RY, 6 = RZ

targetPos

double

Target position, or relative increment, in meters or radians

maxSpeed

double

Max Speed (m/s or rad/s)

maxAcceleration

double

Max Acceleration (m/s2 or rad/s2)

ctrlErrThreshold

double

Control error threshold (m or rad)

Returns

Name

Type

Description

MotionRtn.PmcRtn

PMCRTN enum

ALLOK (0): Command Accepted. Otherwise, please see Ethernet Reply Codes.

MotionRtn.TravelTimeSecs

float

Time needed for the motion to complete, in seconds

Conditions

Operating Conditions

Preconditions

XBot is in the Idle state, Obstacle Detected state, Motion state, Stopped state, Hold Position state, or Waiting state.

Postconditions

If the XBot is ready to immediately begin executing the command, then the XBot will enter the Motion state. Otherwise, the XBot state remains unchanged, but the command will be added to the XBot's motion buffer.

Description

Move Until commands enable the user to send an XBot towards a target and specify a monitoring condition. Once the monitoring condition is met, the XBot will stop at its current position along the trajectory. If the condition is not met, the XBot will simply finish its trajectory and come to rest at the target position.

Changelog

PMC v117.26.74 (Fieldbus v6.03.055.00) (Ethernet v117.15.01) - Command released in fieldbus libraries