AXES_GROUP_REF
An AXES_GROUP_REF identifies a group of axes that work together as a single mechanical unit. AXES_GROUP_REF is used as a VAR_IN_OUT for PLCopen Part 4 - Interpolation Function Blocks.
Variables of this type are automatically declared when the i cube Engineer project is configured with a Group.
AXES_GROUP_REF: STRUCT
| Element | Data Type | Description | Usage |
|---|---|---|---|
| Name | Yt_NameBytes | ARRAY[1..32] OF BYTE. An array of ASCII characters representing the Group name as entered in the Hardware Configuration. Tip: Use the BUF_TO_STRING function block to convert this data to a STRING type. See example below. | MyAXES_GROUP_REF.Name |
|
Handle
|
UINT | This is a unique value used internally to identify the group with lower level function blocks. | MyAXES_GROUP_REF.Handle |
| Mechanism | Yt_NameBytes | ARRAY[1..32] OF BYTE] Reserved for future use. | MyAXES_GROUP_REF.Mechanism |
|
AxisRef
|
Yt_AXIS_ID_ARRAY
|
Array of axis ID identifying the physical motors or virtual axes. Note that this array is 1 based, not 0. | MyAXES_GROUP_REF.AxisRef[1] |
| Padding1 | UINT | reserved |
|
| Status | Yt_GROUP_STATUS | Structure containing status and alarm information. |
|
| Axis | Yt_GROUP_COORD_SYS | Structure containing position, velocity and acceleration data for the Axis Coordinate System. | MyAxesGroup.Axis.CmdPos[1] |
| Machine | Yt_GROUP_COORD_SYS | Structure containing position, velocity and acceleration data for the Machine Coordinate System. | MyAxesGroup.Machine.CmdPos[1] |
| World | Yt_GROUP_COORD_SYS_6 | Structure containing position, velocity and acceleration data for the World Coordinate System. | MyAxesGroup.World.CmdPos[1] |
| Part | Yt_GROUP_COORD_SYS_6 | Structure containing position, velocity and acceleration data for the Part Coordinate System. | MyAxesGroup.Part.CmdPos[1] |
| Tool | Yt_GROUP_COORD_SYS_6 | Structure containing position, velocity and acceleration data for the Tool Coordinate System. | MyAxesGroup.Tool.CmdPos[1] |
| Limits | Yt_GROUP_LIMITS | Position, Velocity, Acceleration and Jerk limits for the Axes, Machine and Tool Coordinate Systems | MyAxesGroup.Limits.MachineLimits.MaxVelocity[1] |
| Reserved | Yt_GROUP_RESERVED_TYP | Reserved for future expansion. | --- |
| Host_ID | INT | 0 = Locally hosted group controlled by the FMK. 1 = Remotely hosted group controlled over EtherCAT IO, 2 = Remotely hosted group controlled over EtherNet/IP. | MyAXES_GROUP_REF.Host_ID |
| Mechanism_ID | INT | Indicates the type of mechanism: 0 = Gantry, 1 = Scara, 2 = MPP3, custom = 32767 | MyAXES_GROUP_REF.Mechanism_ID |
| Interface_ID | INT | Required when Host_ID > 0. Interface_ID is zero based. This identifies the Host index on which the AxesGroup is controlled. For example, if Host_ID = 2 (MotomanSync over EtherNet/IP), an Interface_ID = 4 would mean that this group is the fifth EtherNet/IP MotomanSync device in the application. | MyAXES_GROUP_REF.Interface_ID |
| Device_ID | INT | Group index. If a unique Interface_ID (remote kinematic controller) can host more than one group, the groups can be distinguished using Device_ID. | MyAXES_GROUP_REF.Device_ID |
| Input | Yt_GROUP_CONTROL_INPUT | List of auxiliary flags that indicate hardware interlocks relevant to groups | MyAXES_GROUP_REF.Input |
| MaxLinearVelocity | LREAL | Maximum linear velocity of the TCP | MyAXES_GROUP_REF.MaxLinearVelocity |
| MaxAngularVelocity | LREAL | Maximum angular velocity of the TCP | MyAXES_GROUP_REF.MaxAngularVelocity |
| MaxLinearAcceleration | LREAL | Maximum linear acceleration of the TCP | MyAXES_GROUP_REF.MaxLinearAcceleration |
| MaxAngularAcceleration | LREAL | Maximum angular acceleration of the TCP | MyAXES_GROUP_REF.MaxAngularAcceleration |
| MaxLinearJerk | LREAL | Maximum linear jerk of the TCP | MyAXES_GROUP_REF.MaxLinearJerk |
| MaxAngularJerk | LREAL | Maximum angular jerk of the TCP | MyAXES_GROUP_REF.MaxAngularJerk |
| ActiveCoordinateFrame | INT | ACS, MCS, PCS... | MyAXES_GROUP_REF.ActiveCoordinateFrame |
| ActiveCoordinateSystem | INT | Cartesian, Polar, Spherical. (Only Cartesian is supported.) Others for future use. | MyAXES_GROUP_REF.ActiveCoordinateSystem |
| ActiveTool | INT | As entered in the UserApplicationData structure. | MyAXES_GROUP_REF.ActiveTool |
| ActivePartFrame | INT | As entered in the UserApplicationData structure. | MyAXES_GROUP_REF.ActivePartFrame |
Yt_NameBytes: ARRAY
| Array Name | Data Type | Range | Description | Usage |
|---|---|---|---|---|
| Yt_NameBytes | BYTE | 1..32 | Name of the 32 byte array | MyAXES_GROUP_REF.Name |
Yt_AXIS_ID_ARRAY: ARRAY
| Array Name | Data Type | Range | Description | Usage |
|---|---|---|---|---|
| Yt_AXIS_ID_ARRAY | UINT | 1..32 | Logical axis reference. This value can be located on the Configuration tab in the Hardware Configuration (logical axis number). Note that this array is 1 based, not zero. | MyAXES_GROUP_REF.AxisRef[1] |
Yt_GROUP_STATUS: STRUCT
| Element | Data Type | Description | Usage |
|---|---|---|---|
| Active | BOOL | Indicates if the group is made active via the MC_GroupEnable function block. | MyAXES_GROUP_REF.Status.Active |
| Padding1 | BYTE | Reserved for future use |
|
| State | UINT | Indicates the group state. | MyAXES_GROUP_REF.Status.State |
| Alarm | UDINT | Indicates if there is an alarm for the group or any axis of the group. | MyAXES_GROUP_REF.Status.Alarm |
| NumMotionSegments | UINT | The number of motion segments currently in the motion queue. | MyAXES_GROUP_REF.Status.NumMotionSegments |
| FreeMotionSegments | UINT | The number of motion segments available to be added to the motion queue. | MyAXES_GROUP_REF.Status.FreeMotionSegments |
| AxisStatus | Yt_GROUP_AXIS_STATUS_ARRAY | Array which reports the power status of each axis. For Mechatrolink Servo axes, this is equivalent to the PON flag. | MyAXES_GROUP_REF.Status.AxisStatus[1] |
| Reserved | Yt_GROUP_STS_RESERVED_TYP | --- |
|
Yt_GROUP_AXIS_STATUS_ARRAY: ARRAY
| Array Name | Data Type | Range | Description | Usage |
|---|---|---|---|---|
| Yt_GROUP_AXIS_STATUS_ARRAY | Yt_GROUP_AXIS_STATUS | 1..32 | Array that contains the status of various axes in the group | MyAXES_GROUP_REF.Status.AxisStatus[1] |
Yt_GROUP_AXIS_STATUS: STRUCT
| Element | Data Type | Description | Usage |
|---|---|---|---|
| Enabled | BOOL | Flag to show if the axis in the group is powered or not | MyAXES_GROUP_REF.Status.AxisStatus[1].Enabled |
| Padding1 | BYTE |
|
|
| Padding2 | WORD |
|
|
| Reserved | Yt_AXIS_STS_RESERVED_TYP |
|
|
Yt_AXIS_STS_RESERVED_TYP: ARRAY
| Array Name | Data Type | Range | Description | Usage |
|---|---|---|---|---|
| Yt_AXIS_STS_RESERVED_TYP | BYTE | 1..4 | Reserved |
|
Yt_GROUP_STS_RESERVED_TYP: ARRAY
| Array Name | Data Type | Range | Description | Usage |
|---|---|---|---|---|
| Yt_GROUP_STS_RESERVED_TYP | BYTE | 1..32 | Reserved |
|
Yt_GROUP_COORD_SYS: STRUCT
| Element | Data Type | Description | Usage |
|---|---|---|---|
| Dim | UINT | Dimension. Indicates the total number of axes in the GROUP_COORD_SYS. For example, a Gantry system with X, X Prime, Y, and Z axes has four physical motors, but only three axes in the Joint Coordinate system. | MyAxesGroup.Joint.Dim |
| GroupReserved | Yt_GROUP_CS_RESERVED1_TYP | Reserved for future use. |
|
| Label | Yt_NameBytesArray | Reserved for future use. |
|
| Unit | Yt_NameBytesArray | Reserved for future use. |
|
| CmdPos | VECTOR | The commanded positions of each of the axes in the coordinate system. | MyAxesGroup.Joint.CmdPos[1] |
| CmdVel | VECTOR | The commanded velocities of each of the axes in the coordinate system. | MyAxesGroup.Joint.CmdVel[1] |
| CmdAccel | VECTOR | The commanded accelerations of each of the axes in the coordinate system. | MyAxesGroup.Joint.CmdAccel[1] |
| ActualPos | VECTOR | The actual / feedback positions of each of the axes in the coordinate system. | MyAxesGroup.Joint.ActualPos[1] |
| ActualVel | VECTOR | The actual / feedback velocities of each of the axes in the coordinate system. | MyAxesGroup.Joint.ActualVel[1] |
| ActualAccel | VECTOR | The actual / feedback accelerations of each of the axes in the coordinate system. | MyAxesGroup.Joint.ActuaAccel[1] |
| Name | Yt_NameBytes | Name of the coordinate frame | MyAxesGroup.Axis.Name |
| Reserved2 | Yt_GROUP_CS_RESERVED2_TYP |
|
|
Yt_GROUP_CS_RESERVED1_TYP: ARRAY
| Array Name | Data Type | Range | Description | Usage |
|---|---|---|---|---|
| Yt_GROUP_CS_RESERVED1_TYP | BYTE | 1..6 | Reserved |
|
Yt_NamesBytesArray: ARRAY
| Array Name | Data Type | Range | Description | Usage |
|---|---|---|---|---|
| Yt_NameBytesArray | STRING32 | 1..32 | Array of 32 byte strings |
|
VECTOR: ARRAY
| Array Name | Data Type | Range | Description | Usage |
|---|---|---|---|---|
| VECTOR | LREAL | 1..32 | Array of 32 LREALS |
|
Yt_GROUP_CS_RESERVED2_TYP: ARRAY
| Array Name | Data Type | Range | Description | Usage |
|---|---|---|---|---|
| Yt_GROUP_CS_RESERVED2_TYP | BYTE | 1..128 | Reserved |
|
Yt_GROUP_COORD_SYS_6: STRUCT
| Element | Data Type | Description | Usage |
|---|---|---|---|
| CmdPos | MC_COORD_REF | The commanded positions of each of the axes in the coordinate system. | MyAxesGroup.Joint.CmdPos[1] |
| CmdVel | MC_COORD_REF | The commanded velocities of each of the axes in the coordinate system. | MyAxesGroup.Joint.CmdVel[1] |
| CmdAccel | MC_COORD_REF | The commanded accelerations of each of the axes in the coordinate system. | MyAxesGroup.Joint.CmdAccel[1] |
| ActualPos | MC_COORD_REF | The actual / feedback positions of each of the axes in the coordinate system. | MyAxesGroup.Joint.ActualPos[1] |
| ActualVel | MC_COORD_REF | The actual / feedback velocities of each of the axes in the coordinate system. | MyAxesGroup.Joint.ActualVel[1] |
| ActualAccel | MC_COORD_REF | The actual / feedback accelerations of each of the axes in the coordinate system. | MyAxesGroup.Joint.ActuaAccel[1] |
| Name | Yt_NameByte | ARRAY[1..32] OF BYTE | MyAxesGroup.Joint.ActuaAccel[1] |
| Offset | MC_COORD_REF | Offset from the Machine Coordinate System. | MyAxesGroup.Joint.ActuaAccel[1] |
| Reserved | Yt_GROUP_CS_6_RESERVED_TYP | Reserved |
|
MC_COORD_REF: ARRAY
| Array Name | Data Type | Range | Description | Usage |
|---|---|---|---|---|
| MC_COORD_REF | LREAL | 1..6 | This array of 6 values specifies an orientation as X, Y, Z, Rx, Ry, Rz. | MyCoordRef[1] |
Yt_GROUP_CS_6_RESERVED_TYP: ARRAY
| Array Name | Data Type | Range | Description | Usage |
|---|---|---|---|---|
| Yt_GROUP_CS_6_RESERVED_TYP | BYTE | 1..48 | Reserved |
|
Yt_GROUP_LIMITS: STRUCT
| Element | Data Type | Description | Usage |
|---|---|---|---|
| AxisLimits | Yt_COORD_SYS_LIMITS | Represents position, velocity, acceleration and jerk limits in the axis coordinate frame. | MyAxesGroup.Limits.AxisLimits |
| MachineLimits | Yt_COORD_SYS_LIMITS | Represents position, velocity, acceleration and jerk limits in the machine coordinate frame. | MyAxesGroup.Limits.MachineLimits |
| WorldLimits | Yt_COORD_SYS_LIMITS_6 | Represents position, velocity, acceleration and jerk limits in the world coordinate frame. | MyAxesGroup.Limits.WorldLimtis |
| PartLimits | Yt_COORD_SYS_LIMITS_6 | Represents position, velocity, acceleration and jerk limits in the part coordinate frame. | MyAxesGroup.Limits.PartLimits |
Yt_COORD_SYS_LIMITS: STRUCT
| Element | Data Type | Description | Usage |
|---|---|---|---|
| MinPosition | VECTOR | Vector of minimum position limits of axes in the group | MyAxesGroup.Limits.AxisLimits.MinPosition[1] |
| MinVelocity | VECTOR | Vector of minimum velocity limits of axes in the group | MyAxesGroup.Limits.AxisLimits.MinVelocity[1] |
| MinAcceleration | VECTOR | Vector of minimum acceleration limits of axes in the group | MyAxesGroup.Limits.AxisLimits.MinAcceleration[1] |
| MinJerk | VECTOR | Vector of minimum jerklimits of axes in the group | MyAxesGroup.Limits.AxisLimits.MinJerk[1] |
| MaxPosition | VECTOR | Vector of maximum position limits of axes in the group | MyAxesGroup.Limits.AxisLimits.MaxPosition[1] |
| MaxVelocity | VECTOR | Vector of maximum velocity limits of axes in the group | MyAxesGroup.Limits.AxisLimits.MaxVelocity[1] |
| MaxAcceleration | VECTOR | Vector of maximum acceleration limits of axes in the group | MyAxesGroup.Limits.AxisLimits.MaxAcceleration[1] |
| MaxJerk | VECTOR | Vector of maximum jerk limits of axes in the group | MyAxesGroup.Limits.AxisLimit.MaxJerk[1] |
Yt_COORD_SYS_LIMITS_6: STRUCT
| Element | Data Type | Description | Usage |
|---|---|---|---|
| MinPosition | MC_COORD_REF | Vector of minimum position limits of axes in the group | MyAxesGroup.Limits.AxisLimits.MinPosition[1] |
| MinVelocity | MC_COORD_REF | Vector of minimum velocity limits of axes in the group | MyAxesGroup.Limits.AxisLimits.MinVelocity[1] |
| MinAcceleration | MC_COORD_REF | Vector of minimum acceleration limits of axes in the group | MyAxesGroup.Limits.AxisLimits.MinAcceleration[1] |
| MinJerk | MC_COORD_REF | Vector of minimum jerklimits of axes in the group | MyAxesGroup.Limits.AxisLimits.MinJerk[1] |
| MaxPosition | MC_COORD_REF | Vector of maximum position limits of axes in the group | MyAxesGroup.Limits.AxisLimits.MaxPosition[1] |
| MaxVelocity | MC_COORD_REF | Vector of maximum velocity limits of axes in the group | MyAxesGroup.Limits.AxisLimits.MaxVelocity[1] |
| MaxAcceleration | MC_COORD_REF | Vector of maximum acceleration limits of axes in the group | MyAxesGroup.Limits.AxisLimits.MaxAcceleration[1] |
| MaxJerk | MC_COORD_REF | Vector of maximum jerk limits of axes in the group | MyAxesGroup.Limits.AxisLimit.MaxJerk[1] |
Yt_GROUP_RESERVED_TYP: ARRAY
| Array Name | Data Type | Range | Description | Usage |
|---|---|---|---|---|
| Yt_GROUP_RESERVED_TYP | BYTE | 1..968 | Reserved |
|
Yt_GROUP_CONTROL_INPUTS: STRUCT
| Element | Data Type | Description | Usage |
|---|---|---|---|
| ControlMode | BOOL | Control Mode of the group | MyAXES_GROUP_REF.Input.ControlMode |
| EStop | BOOL | Flag to show if the EStop circuit is broken. | MyAXES_GROUP_REF.Input.EStop |
| GuardCircuit | BOOL | Flag to show if the guard circuit is broken | MyAXES_GROUP_REF.Input.GuardCircuit |
| IZViolation | BOOL | FLag to show if an interference zone is broken | MyAXES_GROUP_REF.Input.IZViolation |
| LiveMan | BOOL | Flag to show if the live man switch is on | MyAXES_GROUP_REF.Input.Liveman |
| PendantConnected | BOOL | Flag to indicate if the pendant is connected to the controller | MyAXES_GROUP_REF.Input.PendantConnected |
| SafetyCircuit | BOOL | Flag to indicate the status of the safety circuit | MyAXES_GROUP_REF.Input.SafetyCitcuit |
| InputsValid | BOOL | Flag to indicate if the control inputs are valid or not | MyAXES_GROUP_REF.Input.InputsValid |