Interfaces
I_XTS_ApplicationStation
Application Stations are the function blocks that hold the actual logic of a machine station. They are responsible for positioning movers and performing any other operations on the part(s) being conveyed.
Application Stations are linked 1:1 via interface pointer to their respective InfoStations. In other words, an Application Station can only have one linked InfoStation and vice-versa. This link is bi-directional.
InfoStations take care of the intricacies of buffer management, station relationships, etc. and actually contain the buffer of movers within them. Application Stations work alongside InfoStations at the application layer to signal when their particular logic and sequence can either accommodate a new mover or is finished with a mover under its control.
Properties
Property |
Type |
Access |
Description |
CanAcceptMover |
BOOL |
R |
Get whether or not this station can accept an additional mover into its buffer |
CanReleaseMover |
BOOL |
R |
Get whether or not this station can release a mover from its buffer |
Config |
ST_XTSStationConfig |
RW |
Get/Set configuration struction for this station |
InfoStation |
I_XTS_InfoStation |
W |
Set the InfoStation that is associated with this station |
Name |
STRING |
R |
Get the friendly name of this station |
TrackOID |
OTCID |
R |
Get the OID of the Track that this station is associated with |
I_XTS_InfoStation
An InfoStation is a zone which spans a part, as defined by a Start and End position along the part. Additionally, stop positions can be defined relative to the Start position.
Warning
Note that the XTS configuration tool allows for the specification of multiple parts in an InfoStation definition. This is not supported by this component/framework. An InfoStation can only be defined across a single part.
Properties
Property |
Type |
Access |
Description |
ApplicationStation |
I_XTS_ApplicationStation |
RW |
Get/Set interface pointer to the function block who is controlling the application logic for this InfoStation |
Color |
E_Colors_ARGB |
RW |
Get/Set the color of this InfoStation that will be displayed on the XTS Viewer |
MoverQueue |
REFERENCE TO FB_MoverQueue |
R |
Get a reference to the buffer of movers currently under this station's control |
NumberOfStops |
UDINT |
R |
Get the number of stop positions defined for this station |
StopPositions |
REFERENCE TO ARRAY[1..TcIoXtsEnvironmentParameterList.MaxXtsStopPositionsPerStation] OF LREAL |
R |
Get a reference to the stop positions defined for this station |
Methods
Method |
Return Type |
Description |
GetMover |
BOOL |
Returns TRUE when a mover has been successfully passed from the upstream neighbor station and is ready to be commanded by this station |
GetPositionOnTrack |
LREAL |
Given a position on a relative to the start position of this station, along with the OTCID of the desired track, returns the corresponding track position |
I_XTS_Mover
(extends I_CyclicFB
)
Defines basic required functionality for an XTS mover.
Properties
Property |
Type |
Access |
Description |
Axis |
REFERENCE TO AXIS_REF |
R |
Returns an AXIS_REF for use in external motion functions, etc. |
LimitBipolarCurrent |
BOOL |
RW |
Enable/Disable the limiting of current to the mover |
MoverID |
UDINT |
R |
Returns the mover index on its associated XTS |
Override |
LREAL |
RW |
Get/Set axis override (100.0 = 100%) |
Station |
I_XTS_ApplicationStation |
RW |
Get/Set the station to which this mover has been assigned |
Dynamics
Property |
Type |
Access |
Description |
Acceleration |
LREAL |
RW |
Get/Set acceleration input to motion functions |
Deceleration |
LREAL |
RW |
Get/Set deceleration input to motion functions |
Jerk |
LREAL |
RW |
Get/Set jerk input to motion functions |
Velocity |
LREAL |
RW |
Get/Set velocity input to motion functions (exception: MoveVelocity() ) |
Feedback
Property |
Type |
Access |
Description |
ActualAcceleration |
LREAL |
R |
Get actual acceleration of axis |
ActualPosition |
LREAL |
R |
Get actual position of axis |
ActualPositionModulo |
LREAL |
R |
Get actual modulo position of axis |
ActualTorque |
LREAL |
R |
Get actual torque of axis |
ActualVelocity |
LREAL |
R |
Get actual velocity of axis |
PositionLag |
LREAL |
R |
Get position lag of axis |
SetAcceleration |
LREAL |
R |
Get setpoint acceleration of axis |
SetPosition |
LREAL |
R |
Get setpoint position of axis |
SetPositionModulo |
LREAL |
R |
Get setpoint modulo position of axis |
SetVelocity |
LREAL |
R |
Get setpoint velocity of axis |
Status
Property |
Type |
Access |
Description |
Enabled |
BOOL |
R |
Axis is enabled |
InPosition |
BOOL |
R |
Axis is within target position window |
InSync |
BOOL |
R |
Axis is synchronized with its master |
Stopped |
BOOL |
R |
Axis is not moving |
Methods
Method |
Return Type |
Description |
Disable |
BOOL |
Disable axis |
Enable |
BOOL |
Enable axis |
GearInPosCA |
BOOL |
Initiate gearing synchronization\ |
JoinGroup |
BOOL |
Join the associated collision avoidance group |
LeaveGroup |
BOOL |
Leave the associated collision avoidance group |
MoveAbsoluteCA |
BOOL |
Initiate an absolute move with collision avoidance |
MoveRelativeCA |
BOOL |
Initiate a relative move with collision avoidance |
Reset |
BOOL |
Reset axis |
Stop |
BOOL |
Commands a stop of the mover |
I_XTS_Part
A part is a collection of XTS motor modules, typically segmented by infeed modules. An XTS system is comprised of one or many parts.
Properties
Property |
Type |
Access |
Description |
Name |
STRING |
R |
Returns the object name of the associated XPU part |
ReadyToEnable |
BOOL |
R |
Returns TRUE if the DriveState of the part is satisfactory for enabling movers |
I_XTS_StationNeighbor
Don't use this directly
Internal type used to keep track of upstream/downstream relationships between InfoStations. This should not be used at the application level and is only documented here for clarity.
Properties
Property |
Type |
Access |
Description |
StationName |
STRING |
R |
Returns friendly name of the associated Application Station |
Methods
Method |
Return Type |
Description |
GiveMover |
BOOL |
Returns TRUE when an InfoStation has successfully passed a mover to its downstream neighbor |
TakeMover |
BOOL |
Returns TRUE when an InfoStation accepts a mover into its buffer |
I_XTS_Track
A track is a logical path that XTS movers exist on. Tracks are defined by including one or many parts. The datum point of a track is typically the upstream side of the first part. Multiple tracks can exist in the same XTS system, and can also overlap. This means that a the same physical position on an XTS system can be a different track position, depending on how the track is defined. A mover can only be assigned to one track at a time. Collision avoidance is performed according to track. This means that given a lineup of stationary movers, all avoiding collision, if a mover is assigned to a different track the movers upstream of that one will advance and collide.
Properties
Property |
Type |
Access |
Description |
IsClosed |
BOOL |
R |
Returns TRUE if the track is a closed loop |
Length |
LREAL |
R |
Returns the length of the part in millimeters |
Name |
STRING |
R |
Returns the object name of the track |
Methods
Method |
Return Type |
Description |
GetTrackPositionByPart |
LREAL |
Given a position on a particular part, along with the OTCID of the part, returns the corresponding track position |
I_XTS_Xpu
Properties
Property |
Type |
Access |
Description |
InSimulationMode |
BOOL |
R |
Returns TRUE if the XPU driver is set to run in simulation mode |
Methods
Method |
Return Type |
Description |
GetPositionOnTrack |
LREAL |
Given a position on a particular part, along with the OTCID of part & track, returns the corresponding track position |
GiveMover |
BOOL |
Returns TRUE when a mover has been added to the MoverQueue of the requesting station |