I would agree with FrancisL. I have been programming PLC's for 20 years. I have been down that path of using subroutines like steps in a sequence. In the end, it becomes more confusing and the result is generally not as good.
The simplest method (put simply) is to move values into a STEP register to go to a step.
eg. IF (STEP==2), AND (Transition Conditions are True) THEN (STEP=3).
This allows you to jump to any step in a sequence. You can then use a comparison on STEP to activate whatever logic you want to do at that step.
eg. Start Saw blade at step 2, and stop at Step 5, you can use the logic (2<=STEP<5) THEN Run SAW
The other logic I would use, which is easier to follow, is program a start and stop bit for each device, then for each step have an activation logic, So for this example,
IF (STEP = 2) THEN START SAW
IF (STEP = 3) THEN (other actions)
.
.
IF (STEP = 5) THEN STOP SAW
As you can see, this code is the simplest to fault find, because you can easily see exactly what is happening at each step.
Finally, you can have your shutdown or fault conditions set STEP=0.
Hope this is of some help, and not too long winded.
Cheers