Значение выходных переменных обновляется только после вызова ФБ,
таймер запускается по фронту IN, повторный вызов с IN:=true к перезапуску не приводит. Для перезапуска надо сначала выполнить вызов с
IN:=false, затем снова с IN:=true.

Должно быть так:

CASE RO OF
0: (* Vkl*)
CH1:=CH1+1; // CH переменная нужна для не повторения запуска таймера
DO8a:= 1; DO8b:= 1;


IF CH1=1 THEN // Запуск таймера если CH1=1
myTON(IN:= TRUE ,PT:=t#5s);
END_IF;

myTON(); (*вызов ФБ для обновления переменных *)

IF myTON.Q THEN

(* Vikl *)
DO2e:= 0; DO2f:= 0; ; (* Wo2*)
myTON(IN:= FALSE) ; // сбрасываем счетчик

END_IF
IF CH1>20 THEN CH1:=2 END_IF;
1: (*Vkl*)
CH1:=0;
DO8a:= 1;
END_CASE;