There is nothing wrong in the initial stage by ensuring you include plenty of interlocks, however, it can make the logic complex and often programmers will re-visit to reduce the complexity, but this can cause mistakes that may not show up initially. Programmers have their own ideas on sequences and how you control them personally I prefer using a register and integer rather than use bits. This gives a number of advantages, 1. you can use the value in the sequence register to possibly display messages on the screen what the current sequence is processing for example 10 = Startup, 20 = Adding ingredient X 30 = Settling etc. 2. Also if your documentation shows the step numbers and the process, displaying the value on the screen of an HMI can be useful for diagnostics, i.e. if it is stuck on a sequence it will tell you which one.
3. Also jumping back/forward & to idle is easy. a good example is the following:
based on recipe handling. split the seq. numbers into 0-500, 600-700, 800-1000 etc.
0-500 could be used for initial process start up (note: use increments of 10 or above this leaves spares for including extra steps). 600-700 could be water addition 1, 800-1000 powder addition 2 and so on.
10000 - step on.
The idea is that a recipe may have a number of processes i.e additions of ingredients, mix sequences, heating sequences etc. if the recipe contains type of addition or process this can be checked and the sequence forced to the start of that sequence step.
Example
Recipe fields are:
Type of process i.e. 1=Mix, 2=Heating, 3=Manual addition, 4=QA checks, 5=water addition, 6=powder addition, 7=discharge so this first variable will contain a number depicting the process required, the recipe steps are loaded and this variable is checked and forces the seq. to that area. when complete this would then force the seq. word to say 10000 to increment the recipe data, then force it back to the start of recipe addition and check the next type of recipe function. each of the program blocks a called based on the value in the seq. word so for water addition a compare for a value of between 600 and 700 will enable the call of block/program for water addition.
Many here will have their own preferences and ideas on how it should be done or not done and I'm sure you will get plenty of ideas both good and bad.