А я бы главный цикл организовал бы так:
VAR
status:int:=1;
END_VAR
CASE status OF
1: Init(); //начальная иницилизация
status:=10;
10:avto();
20rgMan();
END_CASE
proverka();// проверяем условия работы

состояния работы изменяется протым присвоением переменной status нужного числа, после инициализации по умолчанию включается автоматический режим. Если какое либо условие не соблюдается то командой status:=20; врубается другой режим работы...