Skip to main content
Skip table of contents

Auto Driving Default Velocity

Commanding many XBots to move to their respective target positions according to an auto generated paths, avoiding collisions with each other collaboratively. It uses the default speed and acceleration from the configuration to complete the motions.

For RoutingType, labeled routing means the specified XBots must go the corresponding positions specified in the position arrays, i.e., XbotID[0] must go to PosX[0] and PosY[0]. This should be used if the order of XBots is important, such as XBots 1 through 8 must line up in a line in ascending order.

For unlabeled routing, any of the XBots specified in the XBot ID array can go to any of the positions specified in the position arrays, i.e., XbotID[1] may go to PosX[0] and PosY[0], using the most convenient way possible. This should be used if the order of the XBots is NOT important, such as when 8 XBots should be in a line, but it does not matter which XBot is first, etc.

image-20250730-183211.png

Fieldbus Interface 

PMC_AutoDrivingMotion

Inputs

Name

Data Type

Description

Execute

BOOL

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

nXbots

USINT

Number of XBots to move, from 1 to 78. Multiple Auto Driving Motion command can be sent sequentially to move more than 78 XBots

RoutingType

USINT

  • 0: Labeled routing (Order of XBots in the arrays is preserved)

  • 1: Unlabeled routing (XBots will go to most convenient XY coordinates, regardless of their order in the arrays)

OverhangAllowed

BOOL

  • 0: XBots are not allowed to overhang flyways

  • 1: XBots are allowed to overhang flyways

ZoneID

USINT

(>0) Zone within which to route the XBots. Note: 0 means no specific zone.

XbotID

USINT[0..77]

Array of size 78, enter up to 78 XBot IDs of the XBots that should be moved.

PosX

REAL[0..77]

Array of size 78, Absolute target X Coordinates (m), for the up to 78 XBots specified in the XbotID array

PosY

REAL[0..77]

Array of size 78, Absolute target Y Coordinates (m), for the up to 78 XBots specified in the XbotID array

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 PMC Reply Codes.

Ethernet Interface 

PMCRTN AutoDrivingMotionSI(int xbotCount, ASYNCOPTIONS mode, int[] xbotIDs, double[] targetsXMeters, double[] targetsYMeters) 

Parameters

Name

Type

Description

xbotCount

int

Number of XBots in this command

mode

enum

MOVEALL (0): Labeled routing; MOVEALL_UNLABELED (1): Unlabeled routing

xbotIDs

int[]

Array of XBot IDs that should move

targetsXMeters

double[]

Target X position for the corresponding XBot, meters

targetsYMeters

double[]

Target Y position for the corresponding XBot, meters

Returns

Name

Type

Description

PMCRTN

PMCRTN enum

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

Conditions

Operating Conditions

Preconditions

XBot(s) State is Idle or Stopped.

Postconditions

The specified XBot(s) will enter the Motion State.

Description

Commanding many XBots to move to their respective target positions according to an auto generated paths, avoiding collisions with each other collaboratively.  

  • User does not need to specify how each XBot gets to its destination, greatly reducing the Controller computation burden

  • The XBots will move at a pre-configured maximum speed and acceleration

  • At the start of the command, the system determines the rectangular routing area based on the starting and ending positions of the specified XBots. During this stage, all the XBots inside the routing area/specified zone must be Idle or Stopped

  • During the auto driving motion, XBots not involved in the motion may not enter the routing area, but may continue their motions as usual outside of this area

For RoutingType, labeled routing means the specified XBots must go the corresponding positions specified in the position arrays. Ie. XbotID[0] must go to PosX[0] and PosY[0]. This should be used if the order of XBots is important, such as XBots 1 through 8 must line up in a line in ascending order.

For unlabeled routing, any of the XBots specified in the XBot ID array can go to any of the positions specified in the position arrays. Ie. XbotID[1] may go to PosX[0] and PosY[0], using the most convenient way possible. This should be used if the order of the XBots is NOT important, such as when 8 XBots should be in a line, but it does not matter which XBot is first, etc.

Changelog

PMC v117.6.17 - Added ZoneID: the user can now define a zone and route only within that region by suppling the ZoneID to the command

PMC v.117.20.40 - Added OverhangAllowed: the user can now choose if the XBots can extend beyond flyway boundaries (15 mm)

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.