
Сообщение от
RomAl
а вариант 2. конечно возможен, но не красив и трудоёмок (страниц и кнопок много)..
Кроме того заметил что если кнопку сильно нагрузить несколькими заданиями, она становится "капризной"
Можно не нагружать кнопки, а вставить 10 строк в начале блока, если еще не нашли более красивого решения 
Код:
TON1(PT:=t#1s); (*задержка обработки нажатий кнопок на 1 секунду при смене экрана*)
IF num <> old_num THEN (*если номер экрана изменился*)
TON1(IN:=TRUE); (*включаем таймер*)
IF NOT TON1.Q THEN (*если время еще не вышло*)
RETURN; (*выходим из блока, все что ниже не будет выполняться*)
ELSE (*если время вышло*)
TON1.IN:=FALSE; (*отключаем таймер*)
old_num:=num; (*сохраняем номер текущего экрана*)
END_IF
END_IF
(*ниже должен быть код обработки экранов и нажатий кнопок*)