Цитата Сообщение от UAN Посмотреть сообщение
Доброго дня.
Сделал функцию:
Код:
FUNCTION Wait : BOOL
VAR_INPUT
	T: TIME;
END_VAR
VAR
	Timer: TON;
END_VAR
Timer(IN:=TRUE, PT:=T);
WHILE NOT(Timer.Q) DO
	Timer(PT:=T);
END_WHILE
Timer(IN:=FALSE);
которую кроме прочего использую для ожидания ответа от внешнего устройства:
Код:
WHILE NOT(ExtDevice.Status=ExtDeviceStatus.Stop) DO
	Wait(T#0.5S);
END_WHILE
Все работает, но в процессе ожидания замирает визуализация. Можно как-то устранить этот эффект?
Добрый день.
В вашей реализации - нет.
Опишите, пожалуйста, задачу, а не выбранное вами решение.

Почему бы просто каждый цикл задачи контроллера не проверять состояние ExtDevice.Status вместо использования WHILE?