Requesting a change to a configured coordinate system, for example a linear tracking system configured by IF_RobotConfiguration.AddLinearTrackingSystem(…).
With the method ChangeCoordinateSystem2(...), a change to a configured coordinate system can be requested set by a calling the method IF_RobotMotion.SetCoordinateSystem(…).
If the method ChangeCoordinateSystem2(…) is called to set a different coordinate system without a previous call of the method IF_RobotMotion.SetCoordinateSystem(…), the robot stays synchronous in the coordinate system set last.
Behavior of changing the coordinate system in case of a tracking system:
If at the time of the change in the requested tracking system no tracking is active, the change to the requested tracking system is initiated.
If at the time of the change in the requested tracking system a tracking is active and the change to that tracking system is finished, the change to the requested tracking system is initiated.
If at the time of the change in the requested tracking system a tracking is active and the change to that tracking system is not finished, the active change is aborted/stopped first. When the aborted change is finished, the change to the requested tracking system is initiated.
Assuming that the velocity of a velocity source of a tracking system is constant, the change to a requested tracking system is done by keeping the limit of the maximum resulting acceleration for the tracking movement.
The maximum resulting acceleration must be set by IF_RobotMotion.SetMaxAccelerationResultant for the robot component ET_RobotComponent.Tracking.
If possible, the resulting acceleration used for tracking is reduced to a value that the change to the requested coordinate system is finished at the requested end position of the path motion defined by i_udiEndSegmentId and i_lrEndOffset.
If it is not possible to reduce the resulting acceleration for tracking, the resulting acceleration for tracking is limited to the configured value set by IF_RobotMotion.SetMaxAccelerationResultant(…) for the robot component ET_RobotComponent.Tracking. In this case, the behavior of ChangeCoordinateSystem2(…) is equal to ChangeCoordinateSystem(…).
Also refer to:
Input |
Data type |
Description |
---|---|---|
i_udiStartSegmentId |
UDINT |
Id of the path motion segment in which the change of the coordinate system starts. |
i_lrStartOffset |
LREAL |
Position of the path motion within the segment with i_udiStartSegmentId Id where the change to the coordinate system starts. Positive values of i_IrStartOffset refer to the segment start and negative values refer to the segment end. Special case: i_lrStartOffset = 0.0 In this case, the change of the coordinate system starts at the start of the segment. Valid values are: 0.0 ≤ |i_lrStartOffset| ≤ Length of the segment |
i_udiEndSegmentId |
UDINT |
Id of the path motion segment in which the change of the coordinate system ends. |
i_lrEndOffset |
LREAL |
Position of the path motion within the segment with i_udiEndSegmentId Id where the change to the coordinate system should end. Positive values of i_IrEndOffset refer to the segment start and negative values refer to the segment end. Special case: i_lrEndOffset = 0.0 In this case, the change of the coordinate system should end at the end of the segment. Valid values are: 0.0 ≤ |i_lrEndOffset| ≤ Length of the segment |
Output |
Data type |
Description |
---|---|---|
q_etDiag |
General, library-independent statement on the diagnostic. A value not equal to GD.ET_Diag.Ok corresponds to a diagnostic message. |
|
q_etDiagExt |
POU-specific output for 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_etDiag |
q_etDiagExt |
Enumeration value |
Description |
---|---|---|---|
OK |
Ok |
0 |
Ok |
ExecutionAborted |
CommandRefused |
10 |
The command has been denied. |
ExecutionAborted |
ExternalPositionSourceConfigured |
205 |
The external position source is configured. |
InputParameterInvalid |
StartSegmentIdRange |
27 |
The start segment Id is out of range. |
InputParameterInvalid |
EndSegmentIdRange |
28 |
The end segment Id is out of range. |
ExecutionAborted |
StartSegmentIdNotFound |
31 |
The start segment Id was not found. |
ExecutionAborted |
EndSegmentIdNotFound |
32 |
The end segment Id was not found. |
ExecutionAborted |
NoConnectedPathAvailable |
9 |
There is no connected path available. |
InputParameterInvalid |
StartOffsetRange |
116 |
The start offset is out of range. |
InputParameterInvalid |
EndOffsetRange |
78 |
The end offset is out of range. |
ExecutionAborted |
PathPositionStartAlreadyPassed |
81 |
The robot already passed the start position on the path. |
ExecutionAborted |
PathPositionStartInvalid |
24 |
The start position on the path is invalid. |
ExecutionAborted |
PathPositionEndInvalid |
25 |
The end position on the path is invalid. |
ExecutionAborted |
NoMoreTrackingEventsAvailable |
171 |
There are no more tracking events available. |
ExecutionAborted |
MaxAccelerationResultantRange |
170 |
The MaxAccelerationResultant is out of range. |
UnexpectedProgramBehavior |
InterfaceInvalid |
3 |
An interface is invalid. |
UnexpectedProgramBehavior |
UnexpectedFeedback |
13 |
A feedback value was invalid. |
Enumeration name: |
CommandRefused |
Enumeration value: |
10 |
Description: |
The command has been denied. |
Issue |
Cause |
Solution |
---|---|---|
The request to change the coordinate system was not successful. |
A positioning command is already being processed. A command, for example MoveL(...), MoveC(...), MoveS(...) or MoveSync(...), is called simultaneously to the call of ChangeCoordinateSystem2(…). |
Ensure that move commands and a command to change the coordinate system are called one after the other and not simultaneously. |
Enumeration name: |
EndOffsetRange |
Enumeration value: |
78 |
Description: |
The end offset is out of range. |
Issue |
Cause |
Solution |
---|---|---|
The request to change the coordinate system was not successful. |
The value transferred at the input i_lrEndOffset of the method IF_RobotMotion. ChangeCoordinateSystem2() lies outside the valid range. |
At the input i_lrEndOffset, a value less than or equal to the length of the selected segment (i_udiEndSegmentId) must be transferred. |
Enumeration name: |
EndSegmentIdNotFound |
Enumeration value: |
32 |
Description: |
The end segment Id was not found. |
Issue |
Cause |
Solution |
---|---|---|
The request to change the coordinate system was not successful. |
The segment with the Id transferred at the input i_udiEndSegmentId of the method IF_RobotMotion. ChangeCoordinateSystem2() was not found in the latest connected path. |
Ensure that the segment with the Id i_udiEndSegmentId is contained in the latest connected path. |
Enumeration name: |
EndSegmentIdRange |
Enumeration value: |
28 |
Description: |
The end segment Id is out of range. |
Issue |
Cause |
Solution |
---|---|---|
The request to change the coordinate system was not successful. |
The value transferred at the input i_udiEndSegmentId lies outside the valid range. |
At the input i_udiEndSegmentId, a value greater than or equal to 1 must be transferred. |
Enumeration name: |
ExternalPositionSourceConfigured |
Enumeration value: |
205 |
Description: |
The external position source is configured. |
Issue |
Cause |
Solution |
---|---|---|
The request to change the coordinate system was not successful. |
An external position source for the robot components cartesian, orientation and auxiliary axes is configured. |
A request to change the coordinate system is not possible when an external position source for the robot components is configured. Do not request a change of the coordinate system. |
Enumeration name: |
InterfaceInvalid |
Enumeration value: |
3 |
Description: |
An interface is invalid. |
The request to change the coordinate system was not successful.
Enumeration name: |
MaxAccelerationResultantRange |
Enumeration value: |
170 |
Description: |
The MaxAccelerationResultant is out of range. |
Issue |
Cause |
Solution |
---|---|---|
The request to change the coordinate system was not successful. |
The maximum resulting acceleration for changing the coordinate system is not configured. |
Call the method IF_RobotMotion.SetMaxAccelerationResultant for the robot component ET_RobotComponent.Tracking first. |
Enumeration name: |
NoConnectedPathAvailable |
Enumeration value: |
9 |
Description: |
There is no connected path available. |
Issue |
Cause |
Solution |
---|---|---|
The request to change the coordinate system was not successful. |
IF_RobotMotion. ChangeCoordinateSystem2() was called but no connected path is available. |
Create a connected path before calling IF_RobotMotion.Execute (i_xValue := TRUE). |
Enumeration name: |
NoMoreTrackingEventsAvailable |
Enumeration value: |
171 |
Description: |
There are no more tracking events available. |
Issue |
Cause |
Solution |
---|---|---|
The request to change the coordinate system was not successful. |
No further coordinate system change requests can be issued. The maximum number of change requests has been reached. |
Wait until requests to change the coordinate system have been executed before sending new requests. |
Enumeration name: |
Ok |
Enumeration value: |
0 |
Description: |
Ok |
The request to change the coordinate system was successful.
Enumeration name: |
PathPositionEndInvalid |
Enumeration value: |
25 |
Description: |
The end position on the path is invalid. |
Issue |
Cause |
Solution |
---|---|---|
The request to change the coordinate system was not successful. |
IF_RobotMotion. ChangeCoordinateSystem2() was called. The end position of the tracking synchronization phase on the path lies in front of the start position of the synchronization phase on the path. |
Ensure that the path position end is greater than the path position start. Verify the values of i_udiStartSegmentId, i_lrStartOffset, i_udiEndSegmentId, and i_lrEndOffset of IF_RobotMotion. ChangeCoordinateSystem2(). |
Enumeration name: |
PathPositionStartAlreadyPassed |
Enumeration value: |
81 |
Description: |
The robot already passed the start position on the path. |
Issue |
Cause |
Solution |
---|---|---|
The request to change the coordinate system was not successful. |
The robot has already passed the specified start position of the tracking synchronization phase on the path. |
Ensure that IF_RobotMotion.Execute (i_xValue := TRUE) is called early enough to make sure that the robot has not passed the start position on the path yet. |
Enumeration name: |
PathPositionStartInvalid |
Enumeration value: |
24 |
Description: |
The start position on the path is invalid. |
Issue |
Cause |
Solution |
---|---|---|
The request to change the coordinate system was not successful. |
IF_RobotMotion. ChangeCoordinateSystem2() was called. The start position of the tracking synchronization phase on the path lies in front of the start position of a previous call of IF_RobotMotion. ChangeCoordinateSystem2(). |
Ensure that the path position start is greater than the path position start of the previous call. Verify the values of i_udiStartSegmentId, i_lrStartOffset, i_udiEndSegmentId, and i_lrEndOffset of IF_RobotMotion. ChangeCoordinateSystem2(). |
Enumeration name: |
StartOffsetRange |
Enumeration value: |
116 |
Description: |
The start offset is out of range. |
Issue |
Cause |
Solution |
---|---|---|
The request to change the coordinate system was not successful. |
The value transferred at the input i_lrStartOffset of the method IF_RobotMotion. ChangeCoordinateSystem2() lies outside the valid range. |
At the input i_lrStartOffset, a value less than or equal to the length of the selected segment (i_udiStartSegmentId) must be transferred. |
Enumeration name: |
StartSegmentIdNotFound |
Enumeration value: |
31 |
Description: |
The start segment Id was not found. |
Issue |
Cause |
Solution |
---|---|---|
The request to change the coordinate system was not successful. |
The segment with the Id transferred at the input i_udiSartSegmentId of the method IF_RobotMotion. ChangeCoordinateSystem2() was not found in the latest connected path. |
Ensure that the segment with the Id i_udiStartSegmentId is contained in the latest connected path. |
Enumeration name: |
StartSegmentIdRange |
Enumeration value: |
27 |
Description: |
The start segment Id is out of range. |
Issue |
Cause |
Solution |
---|---|---|
The request to change the coordinate system was not successful. |
The value transferred at the input i_udiStartSegmentId lies outside the valid range. |
At the input i_udiStartSegmentId, a value greater than or equal to 1 must be transferred. |