После запуска таймер до конца отработки уставки ни на что не реагирует, а заканчивает в не подходящий момент. Как его досрочно загасить?
После запуска таймер до конца отработки уставки ни на что не реагирует, а заканчивает в не подходящий момент. Как его досрочно загасить?
Если суть в том, чтобы Входу TP IN:=false то он на это не реагирует. Если можно поподробнее пожалуйста?
Спасибо, гораздо понятнее!
Столкнулся с проблемой зависания таймера. Возникает если его запустить в одном блоке, а результат опрашивать в другом. В этом случае, что бы он тикал, необходимо вызывать в конце программного блока хотя бы пустой оператор, например TP(), или есть еще способы?
Последний раз редактировалось Назаров Александр; 01.11.2008 в 12:46.
Конечно, надо вызывать! При пуске таймер смотрит на аппаратные часы и вычисляет время, когда будет пора. Затем просто проверяет по часам пора или не пора, при каждом очередном вызове. Мы сами поступаем аналогично. В ходе ожидания надо регулярно посматривать на часы (вызывать экземпляр блока), иначе можно уехать далеко…
Альтернатива? Не использовать таймеры МЭК, а засекать время самому по часам, пользуясь функцией TIME().
Так это тоже самое будет, что и готовые таймера, не вижу ни какой разницы. Просто сначала было представление, что сравнением времен занимается ядро. А на самом деле я сам их постоянно перезапускал и такой случай, когда запустил таймер в блоке Case, а опрашивал результат из него выйдя, был впервые. Всем успехов!