Блок сравнения (Comparator)

Не понятно одно из условий работы блока

Вопросы по встроенным блокам
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Блок сравнения (Comparator)

#21

Сообщение Sancho » 25.02.2019{, 17:14}

brig62, Просто немного подумайте как должен работать счётчик в данном режиме, при коэффициенте деления 0? Чего ожидать на выходе?
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Аватара пользователя
brig62
Лейтенант
Сообщения: 469
Зарегистрирован: 13.05.2016{, 16:37}
Репутация: 13
Откуда: Казань
Имя: Игорь

Блок сравнения (Comparator)

#22

Сообщение brig62 » 25.02.2019{, 17:32}

Sancho, Попробовал выложенный вами вариант без сравнения, V02. Не работает. На шаге с нулевым временем зависает.

Отправлено спустя 1 минуту 29 секунд:
Sancho писал(а):
25.02.2019{, 17:14}
как должен работать счётчик в данном режиме, при коэффициенте деления 0? Чего ожидать на выходе?
Вы о чем? Какой счетчик с делением?

Отправлено спустя 11 минут 54 секунды:
Так тоже не работает. Без добавления 1 и триггера Тоже зависает на шаге с нулевым временем.
СпойлерПоказать
2019-02-25_17-44-12.png

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Блок сравнения (Comparator)

#23

Сообщение Sancho » 25.02.2019{, 17:46}

Представим, что на вход счётчика подаётся последовательность импульсов. В зависимости от установленного Вами значения, на выходе, который используется для сброса, будут присутствовать импульсы длительностью один цикл в количестве и частотой: входное / коэффициент....
А делить на ноль незя :)

Отправлено спустя 2 минуты 31 секунду:
Всё, здесь я умываю руки, удачи.
Совсем не хотите думать и проанализировать схему.
Звиняйте, если чего не так.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Rishelie
Сержант
Сообщения: 150
Зарегистрирован: 18.12.2017{, 03:16}
Репутация: 6
Откуда: Питер

Блок сравнения (Comparator)

#24

Сообщение Rishelie » 25.02.2019{, 19:11}

brig62, А у вас в программе не перепутаны переменные?
У вас два раза используется по ВХОДАМ "V тек паузы". На выходе вы получаете "ост V тек паузы".
Но насколько я посмотрел (бегло), эта полученная переменная у вас больше нигде не используется.
У вас, случайно, не должна верхняя, по схеме, переменная быть именно "ост V тек паузы"?

Аватара пользователя
brig62
Лейтенант
Сообщения: 469
Зарегистрирован: 13.05.2016{, 16:37}
Репутация: 13
Откуда: Казань
Имя: Игорь

Блок сравнения (Comparator)

#25

Сообщение brig62 » 25.02.2019{, 19:27}

Sancho писал(а):
25.02.2019{, 17:49}
А делить на ноль незя
Кто где на ноль делит?

Отправлено спустя 2 минуты 19 секунд:
Rishelie писал(а):
25.02.2019{, 19:11}
На выходе вы получаете "ост V тек паузы".
Это только для наглядной визуализации на планшете. Не более.
Rishelie писал(а):
25.02.2019{, 19:11}
"V тек паузы"
А это основная переменная по которой идет отсчет времени.

Отправлено спустя 5 минут 45 секунд:
Еще раз повторю. Все работает норм без добавления единицы если переменная "V тек паузы" больше нуля. Проблем нет. Но если в переменной ноль, то блок сравнения не срабатывает.

Rishelie
Сержант
Сообщения: 150
Зарегистрирован: 18.12.2017{, 03:16}
Репутация: 6
Откуда: Питер

Блок сравнения (Comparator)

#26

Сообщение Rishelie » 25.02.2019{, 19:54}

brig62 писал(а):
25.02.2019{, 19:35}
Еще раз повторю. Все работает норм без добавления единицы если переменная "V тек паузы" больше нуля. Проблем нет. Но если в переменной ноль, то блок сравнения не срабатывает.
Так.
Тут с логикой, по любому. Если второй вариант, без Р-триггера, то зависание обеспечено, ибо условие выполняется всегда: на 1ом входе компаратора ноль, значит на счетчике обеспечен вечный сброс.

А вот с Р-тиггером... Хм. Так вроде тоже получается фигня. Р-триггер, дал импульс, и вроде как должен пройти сброс счетчика. И он проходит. Но на компараторе то, при этом условие продолжает выполняться. А следовательно, продолжает висеть "1". Но Р-триггер, ее уже не обрабатывает, он же дает одиночный импульс. Ну и продолжает счетчик считать до бесконечности. Как говорится, те же яйца, только в профиль.

Аватара пользователя
brig62
Лейтенант
Сообщения: 469
Зарегистрирован: 13.05.2016{, 16:37}
Репутация: 13
Откуда: Казань
Имя: Игорь

Блок сравнения (Comparator)

#27

Сообщение brig62 » 25.02.2019{, 20:33}

Rishelie писал(а):
25.02.2019{, 19:54}
Так.
Тут с логикой, по любому. Если второй вариант, без Р-триггера, то зависание обеспечено, ибо условие выполняется всегда: на 1ом входе компаратора ноль, значит на счетчике обеспечен вечный сброс.

А вот с Р-тиггером... Хм. Так вроде тоже получается фигня. Р-триггер, дал импульс, и вроде как должен пройти сброс счетчика. И он проходит. Но на компараторе то, при этом условие продолжает выполняться. А следовательно, продолжает висеть "1". Но Р-триггер, ее уже не обрабатывает, он же дает одиночный импульс. Ну и продолжает счетчик считать до бесконечности. Как говорится, те же яйца, только в профиль.
Вот абсолютно точно. Об этом же мне объяснил в личке ув. Sancho, Теперь логика выглядит вот так. И работает без костылей
СпойлерПоказать
2019-02-25_20-27-53.png
2019-02-25_20-27-53.png (11.02 КБ) 1128 просмотров
Спасибо Sancho,

Rishelie
Сержант
Сообщения: 150
Зарегистрирован: 18.12.2017{, 03:16}
Репутация: 6
Откуда: Питер

Блок сравнения (Comparator)

#28

Сообщение Rishelie » 25.02.2019{, 21:00}

brig62 писал(а):
25.02.2019{, 20:33}
Вот абсолютно точно. Об этом же мне объяснил в личке ув. Sancho, Теперь логика выглядит вот так. И работает без костылей
А чего в личке то? Знания как никак.
Не совсем мне нравится ваше решение. Странное. У вас следующий шаг только для сброса счетчика служит?

Аватара пользователя
brig62
Лейтенант
Сообщения: 469
Зарегистрирован: 13.05.2016{, 16:37}
Репутация: 13
Откуда: Казань
Имя: Игорь

Блок сравнения (Comparator)

#29

Сообщение brig62 » 25.02.2019{, 21:09}

Rishelie писал(а):
25.02.2019{, 21:00}
У вас следующий шаг только для сброса счетчика служит?
Не только. Еще идет на командоаппарат для перехода к следующему шагу. Что это меняет? Чем не нравится? Как бы вы сделали?
Поставить генератор вместо триггера было мне предложено как простое быстрое решение. Которое сработало.
Rishelie писал(а):
25.02.2019{, 21:00}
Знания как никак.
Ну результат бы здесь был бы опубликован по любому. Но вы это сделали раньше.

Rishelie
Сержант
Сообщения: 150
Зарегистрирован: 18.12.2017{, 03:16}
Репутация: 6
Откуда: Питер

Блок сравнения (Comparator)

#30

Сообщение Rishelie » 25.02.2019{, 21:47}

brig62 писал(а):
25.02.2019{, 21:09}
Еще идет на командоаппарат для перехода к следующему шагу. Что это меняет? Чем не нравится?
Ну смотрите, если у вас возникает условия, когда срабатывает компаратор, возникает последовательность шагов, которые дальше выполняются программой. Я не знаю, как там у вас что дальше, но думаю, вам же не нужна цепочка из переключения шагов.
Вы в самом начале про феншуй говорили, про ноль упоминая. Ну а тут тоже, вроде как костыль.

Аватара пользователя
brig62
Лейтенант
Сообщения: 469
Зарегистрирован: 13.05.2016{, 16:37}
Репутация: 13
Откуда: Казань
Имя: Игорь

Блок сравнения (Comparator)

#31

Сообщение brig62 » 25.02.2019{, 22:29}

Rishelie, Продолжительность шага у меня если не ноль то от 5 до 60 минут. Поставив частоту генератора например в 1 сек я не вижу условий для проскакивания. Не феншуйно это искусственно менять значение переменной. А заменить один блок на другой, с которым работает, что плохого? Возможно есть более изящные решения. Но пока так устраивает вполне. Предвижу в дальнейшем сложность. Когда добавится еще переменная по температуре. Но это уже другая тема. К компараторам не относящаяся. С ними вроде бы разобрались. Сам проект готов обсуждать в теме про пивоварни. Алгоритм прохождения температурных пауз основной в автоматике для этих целей.

Аватара пользователя
rw6cm
Полковник
Сообщения: 2284
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 335
Имя: Владимир

Блок сравнения (Comparator)

#32

Сообщение rw6cm » 25.02.2019{, 23:59}

brig62 писал(а):
25.02.2019{, 22:29}
Возможно есть более изящные решения.
Достаточно в Вашем алгоритме выдержать правильную последовательность.
СпойлерПоказать
2019_02_25_23_53_00_FLProg_4.2.4.png
2019_02_25_23_53_00_FLProg_4.2.4.png (9.43 КБ) 1102 просмотра
Win10-64, FLProg (portable)

Rishelie
Сержант
Сообщения: 150
Зарегистрирован: 18.12.2017{, 03:16}
Репутация: 6
Откуда: Питер

Блок сравнения (Comparator)

#33

Сообщение Rishelie » 26.02.2019{, 03:35}

rw6cm писал(а):
25.02.2019{, 23:59}
Достаточно в Вашем алгоритме выдержать правильную последовательность.
rw6cm, Так в этом случае, при "V тек паузы"=0, мы точно также получаем вечный сброс и зависание программы. ;)

Отправлено спустя 6 минут 22 секунды:
brig62 писал(а):
25.02.2019{, 22:29}
Поставив частоту генератора например в 1 сек я не вижу условий для проскакивания. Не феншуйно это искусственно менять значение переменной. А заменить один блок на другой, с которым работает, что плохого?
brig62,
Я так понял, у вас возникла претензия к нулю. :) Но, в вашем, последнем случае, с вторым генератором, при "V тек паузы"=0, точно так же происходит зависание на зацикленном сбросе. И при этом, вам в программу "сыпятся следующие шаги", которые вам не нужны. Сигнал сброса, он же следующий шаг, становится хроническим.
Вроде не глючу. Коль поняли, где собака зарыта, просто исправьте и все. ;)

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Блок сравнения (Comparator)

#34

Сообщение Sancho » 26.02.2019{, 08:26}

Rishelie писал(а):
26.02.2019{, 03:41}
Но, в вашем, последнем случае, с вторым генератором, при "V тек паузы"=0, точно так же происходит зависание на зацикленном сбросе. И при этом, вам в программу "сыпятся следующие шаги", которые вам не нужны. Сигнал сброса, он же следующий шаг, становится хроническим.
Вроде не глючу. Коль поняли, где собака зарыта, просто исправьте и все. ;)
При 0 происходит остановка счёта(зацикливание на нуле), но генератор включается и даёт импульс для командоаппарата о переходе на следующий шаг.
Компаратор выключается, счёт начинается с нуля "и далее по списку" :)
Если и следующий шаг(время) равен нулю, за счёт генератора идёт перебор шагов командоаппарата
далее.
Как-то так :)

Отправлено спустя 2 минуты 41 секунду:
Дополню - в командоаппарате, в параметрах шага, записаны время цикла(длительность шага) и ещё чего-то.
Почему иногда шаги равны нулю - вопросы к автору проекта, значит иногда нужно так.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Аватара пользователя
brig62
Лейтенант
Сообщения: 469
Зарегистрирован: 13.05.2016{, 16:37}
Репутация: 13
Откуда: Казань
Имя: Игорь

Блок сравнения (Comparator)

#35

Сообщение brig62 » 26.02.2019{, 08:43}

Rishelie писал(а):
26.02.2019{, 03:41}
Я так понял, у вас возникла претензия к нулю.
Претензия снята. Дело было не в бабине :smile390:
Rishelie писал(а):
26.02.2019{, 03:41}
Но, в вашем, последнем случае, с вторым генератором, при "V тек паузы"=0, точно так же происходит зависание на зацикленном сбросе. И при этом, вам в программу "сыпятся следующие шаги", которые вам не нужны. Сигнал сброса, он же следующий шаг, становится хроническим.
Ничего подобного. После одного импульса генератора при нулевой переменной, происходит переключение и приходит новое значение переменной. Все нормально работает. На железе опробовано уже.
Rishelie писал(а):
26.02.2019{, 03:41}
Коль поняли, где собака зарыта, просто исправьте и все. ;)
Так это и сделано. Заменой триггера на генератор.

Отправлено спустя 10 минут 32 секунды:
Sancho писал(а):
26.02.2019{, 08:29}
При 0 происходит остановка счёта(зацикливание на нуле),
Вот тут я с вами не согласен. Счет продолжается как положено. Мы же с вами обсудили это. А вот выход компаратора не опускается после предыдущего шага. Остается высоким. Так как условие сохраняется. Ноль с первого момента меньше или равен выходу со счетчика. И триггер не дает импульса. Так как на на его входе ничего не изменилось. На нем висит единица по прежнему.

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Блок сравнения (Comparator)

#36

Сообщение Sancho » 26.02.2019{, 08:59}

brig62 писал(а):
26.02.2019{, 08:53}
Вот тут я с вами не согласен. Счет продолжается как положено. Мы же с вами обсудили это. А вот выход компаратора не опускается после предыдущего шага. Остается высоким. Так как условие сохраняется. Ноль с первого момента меньше или равен выходу со счетчика. И триггер не дает импульса. Так как на на его входе ничего не изменилось. На нем висит единица по прежнему.
Это я о последнем варианте - без триггера счётчик стоит на нуле, висит. Но второй генератор тикает :)
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Аватара пользователя
rw6cm
Полковник
Сообщения: 2284
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 335
Имя: Владимир

Блок сравнения (Comparator)

#37

Сообщение rw6cm » 26.02.2019{, 10:08}

Rishelie писал(а):
26.02.2019{, 03:41}
в этом случае, при "V тек паузы"=0, мы точно также получаем вечный сброс и зависание программы. ;)
Вы уверенны в этом? )
test копаратора_0.flp
(192.77 КБ) 76 скачиваний
brig62, Вы проверьте этот вариант, уверен все будет работать.
Win10-64, FLProg (portable)

Rishelie
Сержант
Сообщения: 150
Зарегистрирован: 18.12.2017{, 03:16}
Репутация: 6
Откуда: Питер

Блок сравнения (Comparator)

#38

Сообщение Rishelie » 26.02.2019{, 11:28}

rw6cm, Полную уверенность дает только страховой полис. :smile38:

Мне кажется, да. Ведь если "V тек паузы"=0, то на входе счетчика "сброс" висит хроническая "1". В таком варианте, даже шаги не будут переключаться, ибо Р-Триггер, не будет пропускать через себя "сигнал".

Отправлено спустя 6 минут 9 секунд:
brig62 писал(а):
26.02.2019{, 08:53}
Все нормально работает. На железе опробовано уже.
brig62, Ну оно и должно работать. Я не говорю, что не будет. Просто, на мое ХО, это не совсем изящно. С меня, конечно, тот еще программист, но вот это ощущение, что в программе вдруг начнутся переключатся шаги, если по какой то причине паузы станут равны нулю. Вроде и логично все, а как то неуютно. :D

Аватара пользователя
brig62
Лейтенант
Сообщения: 469
Зарегистрирован: 13.05.2016{, 16:37}
Репутация: 13
Откуда: Казань
Имя: Игорь

Блок сравнения (Comparator)

#39

Сообщение brig62 » 26.02.2019{, 11:46}

rw6cm писал(а):
26.02.2019{, 10:08}
brig62, Вы проверьте этот вариант, уверен все будет работать.
На выделенной связи, при приходе нуля в переменной, так и останется высокий уровень. Триггер не даст импульса. так как он уже дал на предыдущем шаге, и после этого на его входе ничего не изменилось. Как был высокий так и остался. В этом и есть засада с триггером.
СпойлерПоказать
2019-02-26_11-38-43.png
2019-02-26_11-38-43.png (7.6 КБ) 1056 просмотров
Отправлено спустя 6 минут 48 секунд:
Rishelie писал(а):
26.02.2019{, 11:34}
но вот это ощущение, что в программе вдруг начнутся переключатся шаги, если по какой то причине паузы станут равны нулю. Вроде и логично все, а как то неуютно.
Они и должны переключатся если включено затирание и время паузы равно нулю. Но когда после последнего 5 шага произойдет переключение на нулевой, то затирание остановится. И все переключения тоже.
СпойлерПоказать
2019-02-26_11-51-11.png
2019-02-26_11-51-11.png (6.39 КБ) 1054 просмотра
Отправлено спустя 5 минут 3 секунды:
И генератор работает только при включенном режиме затирания
СпойлерПоказать
2019-02-26_11-56-35.png
2019-02-26_11-56-35.png (9.31 КБ) 1052 просмотра

Аватара пользователя
rw6cm
Полковник
Сообщения: 2284
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 335
Имя: Владимир

Блок сравнения (Comparator)

#40

Сообщение rw6cm » 26.02.2019{, 12:17}

brig62 писал(а):
26.02.2019{, 11:53}
при приходе нуля в переменной, так и останется высокий уровень. Триггер не даст импульса. так как он уже дал на предыдущем шаге,
Понял, Вам нужен импульс с ноля, да этого не будет.
я понял из сообщения, проблема что счетчик не останавливается.
brig62 писал(а):
25.02.2019{, 13:47}
Если убрать блок добавления единицы, и в переменной приходит ноль, то блок сравнения не выдает сигнал на своем выходе. Счетчик продолжает считать до бесконечности.
тогда расстановка позиций это исправит,
а так да, только генератор
Win10-64, FLProg (portable)

Ответить

Вернуться в «Штатные блоки»