Вопрос по событиям на лицевой панеле

Обсуждение, связанное с разработкой ПО верхнего уровня
Ответить
Vladimir_T
user
user
Сообщения: 72
Зарегистрирован: 13 сен 2011, 18:06
Версия LabVIEW: 2009
Контактная информация:

Вопрос по событиям на лицевой панеле

Сообщение Vladimir_T »

Здравствуйте, подскажите пожалуйста. Вопрос по Event. По задумке, когда загружается программа, то открывается файл конфигурации прибора и если были изменения настроек, то на выходе задать вопрос об сохранении изменений. Сколько литеретуры просмотрел, но хорошего описания об Event-структурах не нашел, да об самих событиях тоже мало написано. Может подскажите где об этом почитать с примерчиками бы, конечно. Заранее благодарен.
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Вопрос по событиям на лицевой панеле

Сообщение dadreamer »

Vladimir_T
user
user
Сообщения: 72
Зарегистрирован: 13 сен 2011, 18:06
Версия LabVIEW: 2009
Контактная информация:

Re: Вопрос по событиям на лицевой панеле

Сообщение Vladimir_T »

Здравствуйте, дорогие, коллеги! Почему при использовании Event структуры для определения событий на ЛП (нажал на кнопку, изменил значение слайдер-контрола) программа просто подвисает (видимо зацикливается на опросе Event-структур) ? Как сделать так, чтобы и программа автономно работала, и события на ЛП отслеживались, и по этим событиям программа их отрабатывала? Или нужно синхронизируемые процессы понадобятся?
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5462
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 86 раз

Re: Вопрос по событиям на лицевой панеле

Сообщение IvanLis »

Vladimir_T писал(а):Здравствуйте, дорогие, коллеги! Почему при использовании Event структуры для определения событий на ЛП (нажал на кнопку, изменил значение слайдер-контрола) программа просто подвисает (видимо зацикливается на опросе Event-структур) ? Как сделать так, чтобы и программа автономно работала, и события на ЛП отслеживались, и по этим событиям программа их отрабатывала? Или нужно синхронизируемые процессы понадобятся?
У Вас наверное события не верно определены.
Но без созерцания программы этого сказать нельзя :dntknw:
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Вопрос по событиям на лицевой панеле

Сообщение dadreamer »

Быть может, галку снять при настройке события
14-06-2013 13-04-05.jpg
14-06-2013 13-04-05.jpg (6.45 КБ) 5936 просмотров
AndreyDmitriev

Activity Professionalism Tutorials Gold Black
VIP
VIP
Сообщения: 1327
Зарегистрирован: 03 фев 2010, 00:42
Награды: 6
Версия LabVIEW: 6.1 - 2024
Откуда: Германия
Благодарил (а): 1 раз
Поблагодарили: 38 раз
Контактная информация:

Re: Вопрос по событиям на лицевой панеле

Сообщение AndreyDmitriev »

Vladimir_T писал(а):Здравствуйте, дорогие, коллеги! Почему при использовании Event структуры для определения событий на ЛП (нажал на кнопку, изменил значение слайдер-контрола) программа просто подвисает (видимо зацикливается на опросе Event-структур)?
Если у вас несколько таких структур - сведите всё к одной. Использовать несколько структур в одном инструменте сильно не рекомендуется
http://zone.ni.com/reference/en-XX/help ... dtnsevnts/
Vladimir_T
user
user
Сообщения: 72
Зарегистрирован: 13 сен 2011, 18:06
Версия LabVIEW: 2009
Контактная информация:

Re: Вопрос по событиям на лицевой панеле

Сообщение Vladimir_T »

Спасибо за ответы, как лучше прикрепить код в виде VI или блок схемы (картинкой)? Хотя последнее я не знаю как делается.... часто вижу, что картинки блок-схем выкладывают, а как это делается?
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Вопрос по событиям на лицевой панеле

Сообщение dadreamer »

Vladimir_T писал(а):Спасибо за ответы, как лучше прикрепить код в виде VI или блок схемы (картинкой)? Хотя последнее я не знаю как делается.... часто вижу, что картинки блок-схем выкладывают, а как это делается?
http://www.labviewportal.org/viewtopic. ... =15#p50360
Или вы имели в виду, как сохранить скрин БД? Проще всего так: на БД нажать Ctrl+A -> в меню Edit -> Create VI Snippet from Selection. Сохраненный файл загружайте на форум и выкладывайте.
Vladimir_T
user
user
Сообщения: 72
Зарегистрирован: 13 сен 2011, 18:06
Версия LabVIEW: 2009
Контактная информация:

Re: Вопрос по событиям на лицевой панеле

Сообщение Vladimir_T »

Приложил кусок программы для проверки идеи. Идея в том, чтобы при любых изменениях органов управления на ЛП, именно это изменение сохранялось в переменной Command, которая затем должна передаваться в реальный прибор. Сейчас идея работатет и не подвисает, в переменной Command сохраняются значения, но дальше передача не идет, даже принудительно по кнопке Передача.
Вложения
Check_Event_Struct.vi
Тест на события ЛП
(16.3 КБ) 147 скачиваний
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Вопрос по событиям на лицевой панеле

Сообщение dadreamer »

Vladimir_T
У вас на инструмент ИЛИ приходят два провода, один с кнопки "Передача/Прием", другой - из структуры события. Даже если вы нажали кнопку "Передача/Прием", :labview: будет ожидать наступления события - изменения состояния элементов LASER, LED_MODE, Power. Как только оба входа ИЛИ будут определены, тогда программа перейдёт к структуре Case. А вообще, если поменять местами True и False в Case, то получится примерно то, что вы хотите: при активации состояния "Передача" и нажатии LASER, LED_MODE, Power лампочка будет мигать. Нужно ещё сделать "отжатие" кнопок при их нажатии. И, возможно, определить таймаут для Event'а. Хотя, я бы обошелся в вашем случае обычными кейсами и селекторами вместо событий.
Vladimir_T
user
user
Сообщения: 72
Зарегистрирован: 13 сен 2011, 18:06
Версия LabVIEW: 2009
Контактная информация:

Re: Вопрос по событиям на лицевой панеле

Сообщение Vladimir_T »

Спасибо за помощь, ошибку исправил: условие в стркутуре Case поменял. Действительно все события отслеживаются, но кнопка "Передача" теперь стала зависеть от Event - структуры. Почему так?
Вложения
Check_Event_Struct.vi
(11.9 КБ) 136 скачиваний
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Вопрос по событиям на лицевой панеле

Сообщение dadreamer »

Vladimir_T, измените у кнопки Mechanical Action с Latch на Switch, если хотите, чтобы она оставалась в прежнем состоянии. Просто сейчас она у вас отжимается на следующей итерации цикла, вот и всё.
Vladimir_T
user
user
Сообщения: 72
Зарегистрирован: 13 сен 2011, 18:06
Версия LabVIEW: 2009
Контактная информация:

Re: Вопрос по событиям на лицевой панеле

Сообщение Vladimir_T »

Вот хочу приложить фрагмент. Это только тестовый кусок для проверки самой идеи. Все получилось, как по задумке.
Вложения
Check_Event_Structure_2.vi
(14.71 КБ) 144 скачивания
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Лицевая панель»