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

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

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

Сообщение Sancho »

[ref]brig62[/ref], Просто немного подумайте как должен работать счётчик в данном режиме, при коэффициенте деления 0? Чего ожидать на выходе?
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Аватара пользователя
brig62
Лейтенант
Сообщения: 469
Зарегистрирован: 13 май 2016, 16:37
Откуда: Казань
Имя: Игорь
Благодарил (а): 1 раз

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

Сообщение brig62 »

[ref=#ff8000]Sancho[/ref], Попробовал выложенный вами вариант без сравнения, V02. Не работает. На шаге с нулевым временем зависает.

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

Отправлено спустя 11 минут 54 секунды:
Так тоже не работает. Без добавления 1 и триггера Тоже зависает на шаге с нулевым временем.
[spoiler]
2019-02-25_17-44-12.png
[/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

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

Сообщение Sancho »

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

Отправлено спустя 2 минуты 31 секунду:
Всё, здесь я умываю руки, удачи.
Совсем не хотите думать и проанализировать схему.
Звиняйте, если чего не так.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Rishelie
Сержант
Сообщения: 150
Зарегистрирован: 18 дек 2017, 03:16
Откуда: Питер

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

Сообщение Rishelie »

[ref]brig62[/ref], А у вас в программе не перепутаны переменные?
У вас два раза используется по ВХОДАМ "V тек паузы". На выходе вы получаете "ост V тек паузы".
Но насколько я посмотрел (бегло), эта полученная переменная у вас больше нигде не используется.
У вас, случайно, не должна верхняя, по схеме, переменная быть именно "ост V тек паузы"?
Аватара пользователя
brig62
Лейтенант
Сообщения: 469
Зарегистрирован: 13 май 2016, 16:37
Откуда: Казань
Имя: Игорь
Благодарил (а): 1 раз

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

Сообщение brig62 »

Sancho писал(а): 25 фев 2019, 17:49А делить на ноль незя
Кто где на ноль делит?

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

Отправлено спустя 5 минут 45 секунд:
Еще раз повторю. Все работает норм без добавления единицы если переменная "V тек паузы" больше нуля. Проблем нет. Но если в переменной ноль, то блок сравнения не срабатывает.
Rishelie
Сержант
Сообщения: 150
Зарегистрирован: 18 дек 2017, 03:16
Откуда: Питер

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

Сообщение Rishelie »

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

А вот с Р-тиггером... Хм. Так вроде тоже получается фигня. Р-триггер, дал импульс, и вроде как должен пройти сброс счетчика. И он проходит. Но на компараторе то, при этом условие продолжает выполняться. А следовательно, продолжает висеть "1". Но Р-триггер, ее уже не обрабатывает, он же дает одиночный импульс. Ну и продолжает счетчик считать до бесконечности. Как говорится, те же яйца, только в профиль.
Аватара пользователя
brig62
Лейтенант
Сообщения: 469
Зарегистрирован: 13 май 2016, 16:37
Откуда: Казань
Имя: Игорь
Благодарил (а): 1 раз

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

Сообщение brig62 »

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

А вот с Р-тиггером... Хм. Так вроде тоже получается фигня. Р-триггер, дал импульс, и вроде как должен пройти сброс счетчика. И он проходит. Но на компараторе то, при этом условие продолжает выполняться. А следовательно, продолжает висеть "1". Но Р-триггер, ее уже не обрабатывает, он же дает одиночный импульс. Ну и продолжает счетчик считать до бесконечности. Как говорится, те же яйца, только в профиль.
Вот абсолютно точно. Об этом же мне объяснил в личке ув. [ref=#ff8000]Sancho[/ref], Теперь логика выглядит вот так. И работает без костылей
[spoiler]
2019-02-25_20-27-53.png
[/spoiler]

Спасибо [ref=#ff8000]Sancho[/ref],
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Rishelie
Сержант
Сообщения: 150
Зарегистрирован: 18 дек 2017, 03:16
Откуда: Питер

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

Сообщение Rishelie »

brig62 писал(а): 25 фев 2019, 20:33Вот абсолютно точно. Об этом же мне объяснил в личке ув. Sancho, Теперь логика выглядит вот так. И работает без костылей
А чего в личке то? Знания как никак.
Не совсем мне нравится ваше решение. Странное. У вас следующий шаг только для сброса счетчика служит?
Аватара пользователя
brig62
Лейтенант
Сообщения: 469
Зарегистрирован: 13 май 2016, 16:37
Откуда: Казань
Имя: Игорь
Благодарил (а): 1 раз

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

Сообщение brig62 »

Rishelie писал(а): 25 фев 2019, 21:00У вас следующий шаг только для сброса счетчика служит?
Не только. Еще идет на командоаппарат для перехода к следующему шагу. Что это меняет? Чем не нравится? Как бы вы сделали?
Поставить генератор вместо триггера было мне предложено как простое быстрое решение. Которое сработало.
Rishelie писал(а): 25 фев 2019, 21:00Знания как никак.
Ну результат бы здесь был бы опубликован по любому. Но вы это сделали раньше.
Rishelie
Сержант
Сообщения: 150
Зарегистрирован: 18 дек 2017, 03:16
Откуда: Питер

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

Сообщение Rishelie »

brig62 писал(а): 25 фев 2019, 21:09Еще идет на командоаппарат для перехода к следующему шагу. Что это меняет? Чем не нравится?
Ну смотрите, если у вас возникает условия, когда срабатывает компаратор, возникает последовательность шагов, которые дальше выполняются программой. Я не знаю, как там у вас что дальше, но думаю, вам же не нужна цепочка из переключения шагов.
Вы в самом начале про феншуй говорили, про ноль упоминая. Ну а тут тоже, вроде как костыль.
Аватара пользователя
brig62
Лейтенант
Сообщения: 469
Зарегистрирован: 13 май 2016, 16:37
Откуда: Казань
Имя: Игорь
Благодарил (а): 1 раз

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

Сообщение brig62 »

[ref]Rishelie[/ref], Продолжительность шага у меня если не ноль то от 5 до 60 минут. Поставив частоту генератора например в 1 сек я не вижу условий для проскакивания. Не феншуйно это искусственно менять значение переменной. А заменить один блок на другой, с которым работает, что плохого? Возможно есть более изящные решения. Но пока так устраивает вполне. Предвижу в дальнейшем сложность. Когда добавится еще переменная по температуре. Но это уже другая тема. К компараторам не относящаяся. С ними вроде бы разобрались. Сам проект готов обсуждать в теме про пивоварни. Алгоритм прохождения температурных пауз основной в автоматике для этих целей.
Аватара пользователя
rw6cm
Полковник
Сообщения: 2372
Зарегистрирован: 06 сен 2015, 20:25
Имя: Владимир
Поблагодарили: 41 раз

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

Сообщение rw6cm »

brig62 писал(а): 25 фев 2019, 22:29Возможно есть более изящные решения.
Достаточно в Вашем алгоритме выдержать правильную последовательность.
[spoiler]
2019_02_25_23_53_00_FLProg_4.2.4.png
[/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Win10-64, FLProg (portable)
Rishelie
Сержант
Сообщения: 150
Зарегистрирован: 18 дек 2017, 03:16
Откуда: Питер

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

Сообщение Rishelie »

rw6cm писал(а): 25 фев 2019, 23:59Достаточно в Вашем алгоритме выдержать правильную последовательность.
[ref=#ff8000]rw6cm[/ref], Так в этом случае, при "V тек паузы"=0, мы точно также получаем вечный сброс и зависание программы. ;)

Отправлено спустя 6 минут 22 секунды:
brig62 писал(а): 25 фев 2019, 22:29Поставив частоту генератора например в 1 сек я не вижу условий для проскакивания. Не феншуйно это искусственно менять значение переменной. А заменить один блок на другой, с которым работает, что плохого?
[ref]brig62[/ref],
Я так понял, у вас возникла претензия к нулю. :) Но, в вашем, последнем случае, с вторым генератором, при "V тек паузы"=0, точно так же происходит зависание на зацикленном сбросе. И при этом, вам в программу "сыпятся следующие шаги", которые вам не нужны. Сигнал сброса, он же следующий шаг, становится хроническим.
Вроде не глючу. Коль поняли, где собака зарыта, просто исправьте и все. ;)
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

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

Сообщение Sancho »

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

Отправлено спустя 2 минуты 41 секунду:
Дополню - в командоаппарате, в параметрах шага, записаны время цикла(длительность шага) и ещё чего-то.
Почему иногда шаги равны нулю - вопросы к автору проекта, значит иногда нужно так.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Аватара пользователя
brig62
Лейтенант
Сообщения: 469
Зарегистрирован: 13 май 2016, 16:37
Откуда: Казань
Имя: Игорь
Благодарил (а): 1 раз

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

Сообщение brig62 »

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

Отправлено спустя 10 минут 32 секунды:
Sancho писал(а): 26 фев 2019, 08:29При 0 происходит остановка счёта(зацикливание на нуле),
Вот тут я с вами не согласен. Счет продолжается как положено. Мы же с вами обсудили это. А вот выход компаратора не опускается после предыдущего шага. Остается высоким. Так как условие сохраняется. Ноль с первого момента меньше или равен выходу со счетчика. И триггер не дает импульса. Так как на на его входе ничего не изменилось. На нем висит единица по прежнему.
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

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

Сообщение Sancho »

brig62 писал(а): 26 фев 2019, 08:53Вот тут я с вами не согласен. Счет продолжается как положено. Мы же с вами обсудили это. А вот выход компаратора не опускается после предыдущего шага. Остается высоким. Так как условие сохраняется. Ноль с первого момента меньше или равен выходу со счетчика. И триггер не дает импульса. Так как на на его входе ничего не изменилось. На нем висит единица по прежнему.
Это я о последнем варианте - без триггера счётчик стоит на нуле, висит. Но второй генератор тикает :)
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Аватара пользователя
rw6cm
Полковник
Сообщения: 2372
Зарегистрирован: 06 сен 2015, 20:25
Имя: Владимир
Поблагодарили: 41 раз

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

Сообщение rw6cm »

Rishelie писал(а): 26 фев 2019, 03:41в этом случае, при "V тек паузы"=0, мы точно также получаем вечный сброс и зависание программы. ;)
Вы уверенны в этом? )
test копаратора_0.flp
[ref]brig62[/ref], Вы проверьте этот вариант, уверен все будет работать.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Win10-64, FLProg (portable)
Rishelie
Сержант
Сообщения: 150
Зарегистрирован: 18 дек 2017, 03:16
Откуда: Питер

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

Сообщение Rishelie »

[ref=#ff8000]rw6cm[/ref], Полную уверенность дает только страховой полис. :smile38:

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

Отправлено спустя 6 минут 9 секунд:
brig62 писал(а): 26 фев 2019, 08:53Все нормально работает. На железе опробовано уже.
[ref]brig62[/ref], Ну оно и должно работать. Я не говорю, что не будет. Просто, на мое ХО, это не совсем изящно. С меня, конечно, тот еще программист, но вот это ощущение, что в программе вдруг начнутся переключатся шаги, если по какой то причине паузы станут равны нулю. Вроде и логично все, а как то неуютно. :D
Аватара пользователя
brig62
Лейтенант
Сообщения: 469
Зарегистрирован: 13 май 2016, 16:37
Откуда: Казань
Имя: Игорь
Благодарил (а): 1 раз

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

Сообщение brig62 »

rw6cm писал(а): 26 фев 2019, 10:08brig62, Вы проверьте этот вариант, уверен все будет работать.
На выделенной связи, при приходе нуля в переменной, так и останется высокий уровень. Триггер не даст импульса. так как он уже дал на предыдущем шаге, и после этого на его входе ничего не изменилось. Как был высокий так и остался. В этом и есть засада с триггером.
[spoiler]
2019-02-26_11-38-43.png
[/spoiler]

Отправлено спустя 6 минут 48 секунд:
Rishelie писал(а): 26 фев 2019, 11:34но вот это ощущение, что в программе вдруг начнутся переключатся шаги, если по какой то причине паузы станут равны нулю. Вроде и логично все, а как то неуютно.
Они и должны переключатся если включено затирание и время паузы равно нулю. Но когда после последнего 5 шага произойдет переключение на нулевой, то затирание остановится. И все переключения тоже.
[spoiler]
2019-02-26_11-51-11.png
[/spoiler]

Отправлено спустя 5 минут 3 секунды:
И генератор работает только при включенном режиме затирания
[spoiler]
2019-02-26_11-56-35.png
[/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
rw6cm
Полковник
Сообщения: 2372
Зарегистрирован: 06 сен 2015, 20:25
Имя: Владимир
Поблагодарили: 41 раз

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

Сообщение rw6cm »

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

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

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость