With the method Inverse(), the inverse transformation of the additional user-defined transformation for all robot axes can be calculated. The inputs represent the reference positions of the axes.
When a value unequal to zero for an unconfigured axis (q_alrRefPositionAxis[…]) or auxiliary axis (q_alrRefPositionAuxAx[…]) is calculated and transferred to the robot, the robot returns a diagnostic message.
In case of axis, the diagnostic message ET_Diag.ExecutionAborted / ET_DiagExt.DriveNotConfigured is returned by the robot.
In case of auxiliary axis, the diagnostic message ET_Diag.ExecutionAborted / ET_DiagExt.AuxiliaryAxisNotConfigured is returned by the robot.
Input |
Data type |
Description |
---|---|---|
i_alrRefPositionAxis |
ARRAY [ET_RobotComponent.AxisA .. ET_RobotComponent.AxisAll +Gc_udiMaxNumberOfAxes] OF LREAL |
Reference position of robot axes |
i_alrRefPositionAuxAx |
ARRAY [ET_RobotComponent.AuxAx1.. ET_RobotComponent.AuxAxAll +Gc_udiMaxNumberOfAuxiliaryAxes] OF LREAL |
Reference position of auxiliary axes |
Output |
Data type |
Description |
---|---|---|
q_etDiag |
General library-independent statement on the diagnostic. A value not equal to ET_Diag.Ok corresponds to a diagnostic message. |
|
q_etDiagExt |
POU-specific output on the diagnostic. q_etDiag = ET_Diag.Ok -> Status message q_etDiag <> ET_Diag.Ok -> Diagnostic message |
|
q_sMsg |
STRING[80] |
Event-triggered message that gives additional information on the diagnostic state. |
q_alrRefPositionAxis |
ARRAY [ET_RobotComponent.AxisA .. ET_RobotComponent.AxisAll +Gc_udiMaxNumberOfAxes] OF LREAL |
Reference position of robot axes |
q_alrRefPositionAuxAx |
ARRAY [ET_RobotComponent.AuxAx1.. ET_RobotComponent.AuxAxAll +Gc_udiMaxNumberOfAuxiliaryAxes] OF LREAL |
Reference position of auxiliary axes |
q_etDiag |
q_etDiagExt |
Enumeration value |
Description |
---|---|---|---|
ExecutionAborted |
DriveNotConfigured |
65 |
The drive is not configured. |
ExecutionAborted |
AuxiliaryAxisNotConfigured |
127 |
The auxiliary axis is not configured. |
Enumeration name: |
AuxiliaryAxisNotConfigured |
Enumeration value: |
127 |
Description: |
The auxiliary axis is not configured. |
Issue |
Cause |
Solution |
---|---|---|
Using additional transformation axes was not successful. |
A position value unequal to zero of an unconfigured auxiliary axis is calculated and transferred to the robot. |
Ensure that the position value zero is transferred to the not configured auxiliary axis. |
Enumeration name: |
DriveNotConfigured |
Enumeration value: |
65 |
Description: |
The drive is not configured. |
Issue |
Cause |
Solution |
---|---|---|
Using additional transformation axes was not successful. |
A position value unequal to zero of an unconfigured robot axis is calculated and transferred to the robot. |
Ensure that the position value zero is transferred to the not configured robot axes. |
Declaration:
METHOD Inverse
VAR_INPUT
i_alrRefPositionAxis : ARRAY [ROB.ET_RobotComponent.AxisA..
(ROB.ET_RobotComponent.AxisAll +
ROB.Gc_udiMaxNumberOfAxes)] OF LREAL;
i_alrRefPositionAuxAx : ARRAY [ROB.ET_RobotComponent.AuxAx1..
(ROB.ET_RobotComponent.AuxAxAll +
ROB.Gc_udiMaxNumberOfAuxiliaryAxes)] OF LREAL;
END_VAR
VAR_OUTPUT
q_etDiag : GD.ET_Diag := GD.ET_Diag.Ok;
q_etDiagExt : ROB.ET_DiagExt := ROB.ET_DiagExt.Ok;
q_sMsg : STRING[80];
q_alrRefPositionAxis : ARRAY [ROB.ET_RobotComponent.AxisA..
(ROB.ET_RobotComponent.AxisAll +
ROB.Gc_udiMaxNumberOfAxes)] OF LREAL;
q_alrRefPositionAuxAx : ARRAY [ROB.ET_RobotComponent.AuxAx1..
(ROB.ET_RobotComponent.AuxAxAll +
ROB.Gc_udiMaxNumberOfAuxiliaryAxes)] OF LREAL;
END_VAR
Implementation:
// Copy inputs to outputs first
q_alrRefPositionAxis := i_alrPositionAxis;
q_alrRefPositionAuxAx := i_alrPositionAuxAx;
// Implement additional transformation for robot axes here
// For example:
// q_alrRefPositionAxis[ROB.ET_RobotComponent.AxisB] :=
i_alrRefPositionAxis [ROB.ET_RobotComponent.AxisB] + 90.0;
// q_alrRefPositionAuxAx[ROB.ET_RobotComponent.AuxAx3] :=
i_alrRefPositionAuxAx[ROB.ET_RobotComponent.AuxAx1] -
i_alrRefPositionAuxAx[ROB.ET_RobotComponent.AuxAx2];