Цитата Сообщение от 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
(*ниже должен быть код обработки экранов и нажатий кнопок*)