Не понятно одно из условий работы блока
Вы о чем? Какой счетчик с делением?
Кто где на ноль делит?
Это только для наглядной визуализации на планшете. Не более.
А это основная переменная по которой идет отсчет времени.
Так.
Вот абсолютно точно. Об этом же мне объяснил в личке ув. Sancho, Теперь логика выглядит вот так. И работает без костылейRishelie писал(а): ↑25.02.2019{, 19:54}Так.
Тут с логикой, по любому. Если второй вариант, без Р-триггера, то зависание обеспечено, ибо условие выполняется всегда: на 1ом входе компаратора ноль, значит на счетчике обеспечен вечный сброс.
А вот с Р-тиггером... Хм. Так вроде тоже получается фигня. Р-триггер, дал импульс, и вроде как должен пройти сброс счетчика. И он проходит. Но на компараторе то, при этом условие продолжает выполняться. А следовательно, продолжает висеть "1". Но Р-триггер, ее уже не обрабатывает, он же дает одиночный импульс. Ну и продолжает счетчик считать до бесконечности. Как говорится, те же яйца, только в профиль.
Не только. Еще идет на командоаппарат для перехода к следующему шагу. Что это меняет? Чем не нравится? Как бы вы сделали?
Ну результат бы здесь был бы опубликован по любому. Но вы это сделали раньше.
Ну смотрите, если у вас возникает условия, когда срабатывает компаратор, возникает последовательность шагов, которые дальше выполняются программой. Я не знаю, как там у вас что дальше, но думаю, вам же не нужна цепочка из переключения шагов.
Достаточно в Вашем алгоритме выдержать правильную последовательность.
rw6cm, Так в этом случае, при "V тек паузы"=0, мы точно также получаем вечный сброс и зависание программы. ;)
brig62,
При 0 происходит остановка счёта(зацикливание на нуле), но генератор включается и даёт импульс для командоаппарата о переходе на следующий шаг.Rishelie писал(а): ↑26.02.2019{, 03:41}Но, в вашем, последнем случае, с вторым генератором, при "V тек паузы"=0, точно так же происходит зависание на зацикленном сбросе. И при этом, вам в программу "сыпятся следующие шаги", которые вам не нужны. Сигнал сброса, он же следующий шаг, становится хроническим.
Вроде не глючу. Коль поняли, где собака зарыта, просто исправьте и все. ;)
Претензия снята. Дело было не в бабинеRishelie писал(а): ↑26.02.2019{, 03:41}Я так понял, у вас возникла претензия к нулю.
Ничего подобного. После одного импульса генератора при нулевой переменной, происходит переключение и приходит новое значение переменной. Все нормально работает. На железе опробовано уже.Rishelie писал(а): ↑26.02.2019{, 03:41}Но, в вашем, последнем случае, с вторым генератором, при "V тек паузы"=0, точно так же происходит зависание на зацикленном сбросе. И при этом, вам в программу "сыпятся следующие шаги", которые вам не нужны. Сигнал сброса, он же следующий шаг, становится хроническим.
Так это и сделано. Заменой триггера на генератор.Rishelie писал(а): ↑26.02.2019{, 03:41}Коль поняли, где собака зарыта, просто исправьте и все. ;)
Вот тут я с вами не согласен. Счет продолжается как положено. Мы же с вами обсудили это. А вот выход компаратора не опускается после предыдущего шага. Остается высоким. Так как условие сохраняется. Ноль с первого момента меньше или равен выходу со счетчика. И триггер не дает импульса. Так как на на его входе ничего не изменилось. На нем висит единица по прежнему.
Это я о последнем варианте - без триггера счётчик стоит на нуле, висит. Но второй генератор тикаетbrig62 писал(а): ↑26.02.2019{, 08:53}Вот тут я с вами не согласен. Счет продолжается как положено. Мы же с вами обсудили это. А вот выход компаратора не опускается после предыдущего шага. Остается высоким. Так как условие сохраняется. Ноль с первого момента меньше или равен выходу со счетчика. И триггер не дает импульса. Так как на на его входе ничего не изменилось. На нем висит единица по прежнему.
Вы уверенны в этом? ) brig62, Вы проверьте этот вариант, уверен все будет работать.
brig62, Ну оно и должно работать. Я не говорю, что не будет. Просто, на мое ХО, это не совсем изящно. С меня, конечно, тот еще программист, но вот это ощущение, что в программе вдруг начнутся переключатся шаги, если по какой то причине паузы станут равны нулю. Вроде и логично все, а как то неуютно.
На выделенной связи, при приходе нуля в переменной, так и останется высокий уровень. Триггер не даст импульса. так как он уже дал на предыдущем шаге, и после этого на его входе ничего не изменилось. Как был высокий так и остался. В этом и есть засада с триггером.
Они и должны переключатся если включено затирание и время паузы равно нулю. Но когда после последнего 5 шага произойдет переключение на нулевой, то затирание остановится. И все переключения тоже.
Понял, Вам нужен импульс с ноля, да этого не будет.
тогда расстановка позиций это исправит,