Calling Conflicting Pipe Network Functions in the Same Cycle
With the Pipe Network motion engine, it is possible to execute conflicting actions in the same cycle.
Example
In this example, an axis is commanded to stop followed immediately by a command to realign the axis.
Here, the realign command overwrites the command to stop the axis.
MLAxisMoveVel( PipeNetwork.AXIS1, 0 ); // Stop the axis
MLAxisReAlign( PipeNetwork.AXIS1, LREAL#360.0, LREAL#360.0, LREAL#360.0, LREAL#0.0);
- While this example is easy to see, it is possible that conflicting actions happen in different programs, subprograms, or user-defined function blocks (UDFBs).
- When conflicting actions occur in different parts of the application, it can be confusing why some action does not occur while debugging.
- To help users identify conflicting actions, when the controller runtime detects conflicting actions, a warning is generated at runtime.
This example generates this motion warning:
Axis pipe block: 'MLAxisReAlign' action overrode previous action 'MLAxisMoveVel'.
When motion warnings occur that state ‘action overrode previous action’ occur, it is recommended that the application be updated to avoid producing these warnings.
Pipe Network Functions - Motion-related Actions and Parameters
See Also




