Restarting Motion with PipeNetwork
An advantage of the Pipe Network is the ability to minimize machine downtime and reduce material waste when a non-fatal error occurs. After stopping the motion with MLAxisStop command, it can be restarting by using the MLAxisReAlign function block.
-
-
MLAxisReAlign must be called after the MLAxisStop command, otherwise all motion commands are ignored
For each axis:
Step | Example Application Code |
---|---|
Check Axis Status |
AxisStatus := MLAxisStatus(PipeNetwork.AXI_A1_Axis); |
Turn axis back on (re-enable) |
IF MLAxisPower(PipeNetwork.AXI_A1_Axis, PowerUp) THEN |
Calculate position difference between the Reference and Actual Positions |
DeltaPos := (MLAxisCmdPos(PipeNetwork.AXI_A1_Axis) - MLAxisReadActPos(PipeNetwork.AXI_A1_Axis)); |
Determine how far to move |
IF DeltaPos > LREAL#0.5*DEF_A1_PosPeriod THEN |
Wait for move to be completed |
IF MLAxisReAlgnRdy(PipeNetwork.AXI_A1_Axis) THEN |
For the machine:
Step | Example Application Code |
---|---|
Execute multi-axis move |
MLMstRun(PipeNetwork.MASTER, 500); |