Здравствуйте возникла следующая проблемма:
Есть подпрограмма, в ней производится опрос счетчика...по шагам примерный код:

CASE Step OF
0:
(*Запрос 1*)
Step:=1;
Timer(IN:=TRUE, PT:=PollingDelay );
1:
Timer();
IF Timer.Q THEN
Timer(IN:=FALSE);
Step:=2;
END_IF

2:

(*Запрос 2*)
Step:=3;
Timer(IN:=TRUE, PT:=PollingDelay );
3:
Timer();
IF Timer.Q THEN
Timer(IN:=FALSE);
Step:=4;
END_IF
4:

(*Запрос 2*)
Step:=5;
Timer(IN:=TRUE, PT:=PollingDelay );


5:
Timer();
IF Timer.Q THEN
Timer(IN:=FALSE);
Step:=0;
END_IF

END_CASE
Так вот переменная Step ведет себя обсолютно непонятно....она может ВДРУГ получить значение 66 или 95486 или.....ну вобщем как это возможно ведь присвоение везде явное переменная объявлена в этом программном блоке.