Пользовательские события (Custom Events) в RealTime

Простейшие вопросы в области инженерной разработки
Ответить
rsv
advanced
advanced
Сообщения: 170
Зарегистрирован: 18 июл 2019, 13:53
Версия LabVIEW: 2020
Откуда: Россия, Ижевск
Благодарил (а): 33 раза
Контактная информация:

Пользовательские события (Custom Events) в RealTime

Сообщение rsv »

Доброго времени суток.
Пытаюсь сделать обработку нажатий кнопок в RealTime. Пока есть две кнопки: Play & Stop.
В теории по кнопке Play должен начать опрос аналоговых входов и отображение графиков, а по кнопке Stop опрос должен прекратиться.
А на практике при запуске сразу же срабатывают оба пользовательских события (без нажатия кнопок), а потом отрабатывает только Timeout и на кнопки не реагирует.
Подскажите, пожалуйста, как правильно создавать пользовательские события на нажатие кнопок?
Вложения
User Events - Play.JPG
User Events - Timeout.JPG
User Events - Stop.JPG
Artem.spb

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

Re: Пользовательские события (Custom Events) в RealTime

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

Касаемо глобальной идеи: если вам надо отловить нажатия кнопок, то зачем user event?
event.PNG
event.PNG (5.19 КБ) 2402 просмотра
Ну а "почему-то сразу срабатывает" вовсе не "почему-то".
Вы под циклом сами генерируете эти события, вот они и происходят
event2.PNG
На кнопки же не реагирует, потому что вы кнопки и не отслеживаете
rsv
advanced
advanced
Сообщения: 170
Зарегистрирован: 18 июл 2019, 13:53
Версия LabVIEW: 2020
Откуда: Россия, Ижевск
Благодарил (а): 33 раза
Контактная информация:

Re: Пользовательские события (Custom Events) в RealTime

Сообщение rsv »

>>Касаемо глобальной идеи: если вам надо отловить нажатия кнопок, то зачем user event?
Потому что Value Change в RealTime не работает (привожу скрин из помощи к 2018 версии).
>>На кнопки же не реагирует, потому что вы кнопки и не отслеживаете
А как кнопки отслеживать?
Вложения
Real-Time Module Details.PNG
Real-Time Module Details.PNG (8.45 КБ) 2398 просмотров
Artem.spb

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

Re: Пользовательские события (Custom Events) в RealTime

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

Странно, что они вообще рекомендуют события, с самого начала события в любом виде были только под виндой, и в остальных системах их рекомендовали избегать.
И если написано, что value change не работает, с чего вы решили, что таким странным способом оно заработает?
Ради двух кнопок стоит ли вообще связываться с событиями? Я бы рекомендовал сначала освоиться с событиями в обычной системе.
send.PNG
rsv
advanced
advanced
Сообщения: 170
Зарегистрирован: 18 июл 2019, 13:53
Версия LabVIEW: 2020
Откуда: Россия, Ижевск
Благодарил (а): 33 раза
Контактная информация:

Re: Пользовательские события (Custom Events) в RealTime

Сообщение rsv »

>>И если написано, что value change не работает, с чего вы решили, что таким странным способом оно заработает?
В разделе user events есть пример. Я его переделал под кнопки, правда не понял как он работает :)
>>Ради двух кнопок стоит ли вообще связываться с событиями? Я бы рекомендовал сначала освоиться с событиями в обычной системе.
Я их и использую в обычной системе. Простая и понятная логика, все кнопки в интерфейсе обрабатываю с помощью событий. Поэтому и в RealTime пытался эту же технологию использовать.

С очередями не работал совсем, но попробую разобраться.
ujin
user
user
Сообщения: 94
Зарегистрирован: 28 июл 2019, 13:16
Версия LabVIEW: 19
Благодарил (а): 2 раза
Поблагодарили: 3 раза
Контактная информация:

Re: Пользовательские события (Custom Events) в RealTime

Сообщение ujin »

С очередями не работал совсем, но попробую разобраться.
Если возникнет необходимость передавать сообщения в RealTime Target можно разобраться с Asynchronous Message Communication (AMC) Library.
http://www.ni.com/example/31091/en/
Либо с Shared Variable либо еще с чем-то еще из Interprocess communication все равно придется разбираться.
rsv
advanced
advanced
Сообщения: 170
Зарегистрирован: 18 июл 2019, 13:53
Версия LabVIEW: 2020
Откуда: Россия, Ижевск
Благодарил (а): 33 раза
Контактная информация:

Re: Пользовательские события (Custom Events) в RealTime

Сообщение rsv »

Спасибо,
ujin
. Обязательно посмотрю.
rsv
advanced
advanced
Сообщения: 170
Зарегистрирован: 18 июл 2019, 13:53
Версия LabVIEW: 2020
Откуда: Россия, Ижевск
Благодарил (а): 33 раза
Контактная информация:

Re: Пользовательские события (Custom Events) в RealTime

Сообщение rsv »

Вот что получилось если использовать User Events. Проверено, работает.
Слева получилось некрасиво - слишком много пересечений. Но как сделать проще, не знаю.
Вложения
User Events - New.JPG
AnalogInputMonitoring.vi
(45.49 КБ) 99 скачиваний
Artem.spb

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

Re: Пользовательские события (Custom Events) в RealTime

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

Ну справа ещё менее красиво.
Во-первых, в такой конфигурации события вообще незачем городить, просто кейсы с кнопками внутрь "событий" запихать.
Машину состояний посмотрите, её тут вполне зватит.
А лучше кнопки вынести в отдельный цикл. В целом лучше делать именно так: один цикл чисто под UI и он ловит кнопки. максимум что-то отображает. а параллельные циклы уже всё остальное делают.
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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