Сообщение от
klad_Fe2O3
В данном случае практически из одной. Сейчас тестовый режим подключения нового оборудования.
if knop_26 then
myTON(IN:=knop_26,PT:=t#5s);
if myTON.Q then
d_N3:= true;
end_if
end_if
Вернемся к началу...
myTON(IN:=knop_26,PT:=t#5s); надо вообще наружу вынести, зачем это внутри условия, непонятно, т.к. IN:=knop_26 это тоже само по себе условие. Тем более время таймера если больше не меняется, то зачем его в условие пихать.
Помню я в case такое запихал, но у меня таймеры переназначались по времени работы, и тоже начался какой то мрак...
Код:
myTON(IN:=knop_26,PT:=t#5s);
d_N3:= knop_26 and myTON.Q;
Посмотрел, как ведет себя ваш код в эмуляторе... Это тот еще мрак.
1. Нажимаем кнопку knop_26 и отпускаем... В момент нажатия таймер начинает отсчет, в момент отпускания таймер остается взведен, что логично, но отсчет в переменных уже не ведется (хотя таймер считает), так как находимся вне условия IF.
2. Проходит хоть час, хоть два... Ничего не произойдет, пока снова не нажмем knop_26 и тогда попадем в 2 условия и загорится выход...
3. Все, таймер больше не сбросить, так как вне условия IF код myTON(IN:=knop_26,PT:=t#5s) не выполняется ни при каких условиях...
Вы сами намудрили с кодом и поэтому так и вышло... Это похоже не 3 секунды (или 15), а вы просто задолбались ждать исполнения багованого кода, повторно нажали кнопку и о чудо, выхода включились...
Вот с виртуальной визуализацией тоже все норм...
121212121.png