One of the most-used methods of implementing a "state-sequencer" is to use a numerical sequencer, based on the value in a "step" or "state" register.
The "Step" number is unique, totally visible, and cannot be ambiguous.
Spare "steps" are easily implemented at design time, to allow for future modifications.
On any "step", you simply need to program a rung of code that tests the conditions that allow the step number to increment (i.e. goto next step) or you can force a new step number
I've even seen applications where the "step number" displays the relevant step action (from the functional spec.) on the HMI or SCADA as an aid to debugging.
IMHO using a numerical step sequencer is easier to understand than using a sequencer based on bit logic.
The "Step" number is unique, totally visible, and cannot be ambiguous.
Spare "steps" are easily implemented at design time, to allow for future modifications.
On any "step", you simply need to program a rung of code that tests the conditions that allow the step number to increment (i.e. goto next step) or you can force a new step number
I've even seen applications where the "step number" displays the relevant step action (from the functional spec.) on the HMI or SCADA as an aid to debugging.
IMHO using a numerical step sequencer is easier to understand than using a sequencer based on bit logic.