Skip to content

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