Страница 1 из 2
Вход En Разрешение выполнения блока
Добавлено: 07 июн 2024, 15:29
CraCk
Собрал блок пользователя на FBD со входом En Разрешение выполнения блока, чтоб не работал все время в цикле. Но получаю странное поведение, кода на выходе блока true и в это время на Вход En подать false, то есть его отключить. Получаю на выходе блока застывший true. Который будет висеть пока снова на в вход En не подать 1. Это баг или так должно работать?
Вход En Разрешение выполнения блока
Добавлено: 07 июн 2024, 20:55
montirovka
Логически все правильно. Мультиплексор после блока поставьте, что бы обойти подвисший выход. Управление мультиплексора от En.
Вход En Разрешение выполнения блока
Добавлено: 08 июн 2024, 12:22
Phazz
CraCk писал(а): 07 июн 2024, 15:29
так должно работать?
Должно, когда en переходит в состояние false, все переменные в блоке замораживают свое состояние.
Вход En Разрешение выполнения блока
Добавлено: 09 июн 2024, 10:23
georgsp
Блок пользовательский, можно прямо в блоке прописать сброс выхода в ноль при подаче False в EN если именно это нужно.
Вход En Разрешение выполнения блока
Добавлено: 09 июн 2024, 18:52
CraCk
montirovka писал(а): 07 июн 2024, 20:55
Логически все правильно. Мультиплексор после блока поставьте, что бы обойти подвисший выход. Управление мультиплексора от En.
Тоже про это думал. Но хотелось как бы по правильному на в ходе En 0 значит на выходе тоже 0.
georgsp писал(а): 09 июн 2024, 10:23
Блок пользовательский, можно прямо в блоке прописать сброс выхода в ноль при подаче False в EN если именно это нужно.
Да как раз так нужно. Возможно для блока пользовательского на коде возможно. Но на блоке где внутри FBD такого нет.
Вход En Разрешение выполнения блока
Добавлено: 09 июн 2024, 20:24
WildCat
CraCk писал(а): 09 июн 2024, 18:52
Но на блоке где внутри FBD такого нет.
Используйте блок switch.
Вход En Разрешение выполнения блока
Добавлено: 10 июн 2024, 11:57
CraCk
WildCat писал(а): 09 июн 2024, 20:24
Используйте блок switch.
То есть в самом блоке?
[spoiler]
Снимок экрана 2024-06-10 115617.png
[/spoiler]
Вход En Разрешение выполнения блока
Добавлено: 10 июн 2024, 13:02
WildCat
CraCk писал(а): 10 июн 2024, 11:57
То есть в самом блоке?
Да, так
Вход En Разрешение выполнения блока
Добавлено: 21 июн 2024, 10:21
Утвш
Может быть кто-то cможет ввести в блок Грачика вход En? В мониторе Com-порта вижу, что блок производит отправку в UART даже при пустом входе ""send.
Тест блока Грачика.flp
Вход En Разрешение выполнения блока
Добавлено: 21 июн 2024, 11:33
montirovka
Утвш писал(а): 21 июн 2024, 10:21
Может быть кто-то cможет ввести в блок Грачика вход En?
А для чего? Что это даст?
Вход En Разрешение выполнения блока
Добавлено: 21 июн 2024, 12:04
Утвш
montirovka писал(а): 21 июн 2024, 11:33
Что это даст?
Странный вопрос. самопроизвольная отправка переключает Nextion на другой экран. Приложенный тест - чисто демонстрационный.
Вход En Разрешение выполнения блока
Добавлено: 21 июн 2024, 16:42
montirovka
Утвш писал(а): 21 июн 2024, 12:04Странный вопрос.
Что бы подсказывать, порой нужно полное понимание как работает весь проект. Перед Nextion вставьте логическое И.Один вход En, другой - с блока.
В блоке передача Nextion по умолчанию не прописано значение Send.
Вход En Разрешение выполнения блока
Добавлено: 22 июн 2024, 08:28
Утвш
montirovka писал(а): 21 июн 2024, 16:42
как работает весь проект
Весь проект еще не готов, но в нем уже более 30 плат. Кто будет убивать время и разбираться? Давайте упростим. Выкладываю тестовый проект на 1 плате. Назначение: Программа через 15 сек после включения должна отослать на Nextion значение переменной va0=5. По получении Nextion перейдет на другую страницу.
Компилируем, подключаем монитор порта и видим, что сразу после подключения, на Nextion отправляется значение va0=5, и через 15 сек отправляется вторая отправка va0=5. Простое отключение сигнала на send исключает только вторую отправку. Вот мне и кажется, что введение входа en может исправить положение.
Тест.flp
Вход En Разрешение выполнения блока
Добавлено: 22 июн 2024, 15:43
montirovka
А попробуйте с переменной, которой по умолчанию присвоено значение FALSE.
тест_с_переменной.jpg
Вход En Разрешение выполнения блока
Добавлено: 22 июн 2024, 16:49
Утвш
montirovka писал(а): 22 июн 2024, 15:43
А попробуйте с переменной
А что изменилось? Я же писал, что если отключить сигнал на send, т.е. оставить вход send свободным, то это исключает только вторую отправку.
Вход En Разрешение выполнения блока
Добавлено: 22 июн 2024, 16:55
montirovka
Утвш писал(а): 22 июн 2024, 08:28
Компилируем, подключаем монитор порта и видим, что сразу после подключения, на Nextion отправляется значение va0=5, и через 15 сек отправляется вторая отправка va0=5.
В этом варианте точно так же?
Вход En Разрешение выполнения блока
Добавлено: 22 июн 2024, 18:02
Утвш
Да
Вход En Разрешение выполнения блока
Добавлено: 22 июн 2024, 21:59
montirovka
Добавил для проверки дисплей. На дисплее все нормально. А вот Nextion дважды выдает значения в ком порт. А если инвертировать вход блока Nextion, то срабатывает один раз.
Вход En Разрешение выполнения блока
Добавлено: 22 июн 2024, 23:30
garikb
Ну если хочется отключать блок, тогда так:
Тест2.flp
Вход En Разрешение выполнения блока
Добавлено: 22 июн 2024, 23:33
ecoins
montirovka писал(а): 22 июн 2024, 21:59
Добавил для проверки дисплей. На дисплее все нормально. А вот Nextion дважды выдает значения в ком порт. А если инвертировать вход блока Nextion, то срабатывает один раз.
Переходите на дисплей Nextion в новой версии FLProg - старая поддерживаться не будет.
В новых блоках EN есть.
С уважением, ecoins.