Ну примерно так
1) выход из любого места на начало - return
2) в начале ставим case переменная_состояния
3) Внути case другие case не ставьте - глючит. Код разбиваем на POU и не стараемся написать листинг на 50 страниц.
Я думаю это поможет