For commanding between 1 to 4 unique XBots to begin executing their respective XY motion commands at the same time.

Fieldbus Interface
PMC_SyncMotion
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 synchronously move, from 1 to 4 |
XbotID | USINT[0..3] | Array of size 4, enter up to 4 XBot IDs of the XBots that should be moved |
PosX | REAL[0..3] | Array of size 4, Absolute target X Coordinates (m), for the up to 4 XBots specified in the XbotID array |
PosY | REAL[0..3] | Array of size 4, Absolute target Y Coordinates (m), for the up to 4 XBots specified in the XbotID array |
EndVel | REAL[0..3] | Array of size 4, Ending Speed (m/s), for the up to 4 XBots specified in the XbotID array |
MaxVel | REAL[0..3] | Array of size 4, Maximum Speed (m/s) , for the up to 4 XBots specified in the XbotID array |
MaxAcc | REAL[0..3] | Array of size 4, Maximum Acceleration (m/s2) , for the up to 4 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. |
TravelTime | REAL | Traveling time (s) |
Ethernet Interface
MotionRtn SyncMotionSI(int XBOTCount, int[] xbotIDs, double[] targetsXMeters, double[] targetsYMeters, double[] finalSpeedsMetersPs, double[] maxSpeedsMetersPs, double[] maxAccelerationMetersPs2)
Parameters
Name | Type | Description |
---|
XBOTCount | int | Number of XBots in this command, max 4 |
xbotIDs | int[] | Array of XBot IDs that will use synchronous motion |
targetsXMeters | double[] | Target X position for the corresponding XBot, meters |
targetsYMeters | double[] | Target Y position for the corresponding XBot, meters |
finalSpeedsMetersPs | double[] | Final speed for the corresponding XBot, m/s |
maxSpeedsMetersPs | double[] | Max speed for the corresponding XBot, m/s |
maxAccelerationMetersPs2 | double[] | Max acceleration for the corresponding XBot, m/s^2 |
Returns
Name | Type | Description |
---|
MotionRtn.PmcRtn | PMCRTN enum | ALLOK (0): Command Accepted. Otherwise, please see Ethernet Reply Codes. |
MotionRtn.TravelTimeSecs | float | Time required to complete this command, in seconds |
Conditions
Operating Conditions |
---|
Preconditions | XBot(s) State is Idle or Stopped. |
Postconditions | The specified XBot(s) will enter the Motion State. |
Description
For commanding between 1 to 4 unique XBots to begin executing their respective XY motion commands at the same time.
Only linear motion commands and absolute coordinates are accepted
The commanded XBots’ state must be in the Idle or Stopped state
The commanded XBots’ Motion buffer must be empty and cannot be blocked, otherwise this command will be rejected