Опрос кнопок

Простейшие вопросы в области инженерной разработки
Ответить
miklo
beginner
beginner
Сообщения: 17
Зарегистрирован: 02 июл 2020, 10:39
Версия LabVIEW: 17
Контактная информация:

Опрос кнопок

Сообщение miklo »

Здравствуйте.
В программе пытаюсь реализовать следующий алгоритм: При включении тумблера ОТКРЫТ загорается индикатор "откр 2". Затем пользователь должен нажать на кнопку ОК либо на кнопку CANCEL. Т.е. идет опрос этих кнопок. При этом остальные элементы ВИ работать не должны, т. е. нужно чтобы пользователь обязательно нажал ОК или CANCEL. Потом пользователь должен выключить тумблер (третий фрейм). В этом же фрейме проверяется выключен ли тумблер. Потом (4й фрейм) опять таки пользователь должен нажать кнопку ОК или CANCEL.
Прилагаю блок-диаграмму того, как я пытаюсь этот алгоритм реализовать. Но это не работает. Когда включаю тумблер, все ок, но кнопки OK или CANCEL после этого не нажимаются. Т. е. программа стопорится на втором фрейме. А мне бы хотелось, чтобы после нажатия OK или CANCEL происходил выход из цикла и переход к след. фрейму и т. д. Подскажите, пожалуйста, что я делаю не так?
Вложения
ДМА1.png
Аватара пользователя
jane_wild
master
master
Сообщения: 459
Зарегистрирован: 30 июн 2016, 02:11
Версия LabVIEW: 2020
Благодарил (а): 83 раза
Поблагодарили: 15 раз
Контактная информация:

Re: Опрос кнопок

Сообщение jane_wild »

Очень плохая идея использовать while циклы вложенные друг в друга, а уж тем более внутри event структуры.
Наберите в youtube " state machine LabVIEW " думаю для Вашего случая самое то.
Вложения
Untitled 1.vi
Вообщем вот Вам идея...
(7.74 КБ) 95 скачиваний
Artem.spb

Activity Автор
professor
professor
Сообщения: 3396
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: Опрос кнопок

Сообщение Artem.spb »

miklo писал(а): 08 июл 2020, 08:20. Подскажите, пожалуйста, что я делаю не так?
как говорится, "примерно всё" :D

1) в вольном переводе: "если это не должно быть нажато, это не должно выглядеть как кнопка"
если кнопка должна быть недоступна, она ДОЛЖНА быть не доступна
Блокируйте, скрывайте, сделайте так, чтобы кнопка убегала от курсора

2) очень плохая идея использовать PN для чтения значений. Используйте их для блокировки кнопок, а значения, если уж никак, читайте через локальные переменные

3) вот тут незачем сравнивать c F, достаточно поменять режим остановки цикла
not.PNG
not.PNG (3.91 КБ) 1941 просмотр
4) про цикл в цикле и машину состояний уже сказали

5) и самое главное почему это всё виснет - блокировка UI
lock.PNG
lock.PNG (4.66 КБ) 1941 просмотр
пока кейс не отработает, интерфейс заблокирован, а кейс не отработает, пока интерфейс заблокирован. Короче, взаимная блокировка.
miklo
beginner
beginner
Сообщения: 17
Зарегистрирован: 02 июл 2020, 10:39
Версия LabVIEW: 17
Контактная информация:

Re: Опрос кнопок

Сообщение miklo »

Спасибо большое за советы)
Artem.spb писал(а): 08 июл 2020, 23:23
2) очень плохая идея использовать PN для чтения значений. Используйте их для блокировки кнопок, а значения, если уж никак, читайте через локальные переменные
А что такое PN?
Аватара пользователя
zxc_pavel
adviser
adviser
Сообщения: 242
Зарегистрирован: 02 июн 2016, 12:07
Версия LabVIEW: 15
Благодарил (а): 9 раз
Поблагодарили: 23 раза
Контактная информация:

Re: Опрос кнопок

Сообщение zxc_pavel »

property node
miklo
beginner
beginner
Сообщения: 17
Зарегистрирован: 02 июл 2020, 10:39
Версия LabVIEW: 17
Контактная информация:

Re: Опрос кнопок

Сообщение miklo »

А чем плох PN в целях чтения значений? Он же, по сути, является дублером контрола?
Artem.spb

Activity Автор
professor
professor
Сообщения: 3396
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: Опрос кнопок

Сообщение Artem.spb »

miklo писал(а): 09 июл 2020, 14:19 А чем плох PN в целях чтения значений? Он же, по сути, является дублером контрола?
по сути он не является дублёром. Вообще, что есть дублёр?
а плох он исключительно производительностью:
http://labviewportal.org/viewtopic.php?p=82639#p82639
локальная переменная дёргает только данные, а PN грузит UI поток, обращаясь именно к интерфейсу, а не к значению в контроле
miklo
beginner
beginner
Сообщения: 17
Зарегистрирован: 02 июл 2020, 10:39
Версия LabVIEW: 17
Контактная информация:

Re: Опрос кнопок

Сообщение miklo »

Понял, спасибо
Ответить

Вернуться в «Для чайников»