Кнопка push push (Триггерный режим) и лед индикация

Простейшие вопросы в области инженерной разработки
Ответить
Аватара пользователя
Integro
beginner
beginner
Сообщения: 44
Зарегистрирован: 04 окт 2009, 16:10
Версия LabVIEW: 14, 18
Откуда: Israel
Поблагодарили: 1 раз

Кнопка push push (Триггерный режим) и лед индикация

Сообщение Integro »

Всем привет, для симулятора режимов управления понадобилась кнопка Push Push с лед индикацией запуска и останова.
Возможно существует относительно простой не громоздкий метод такого способа контроля леда, чтоб потушить его после включения повторным нажатием той же кнопкой.
Из за специфики управления я не могу отказаться от обозначенного механического свойства кнопки.
Буду благодарен за идеи и возможные решения.
Диаграмму прикрепляю.
Вложения
push push-button
push push-button
screenshot 2022-05-03 001.jpg (14.12 КБ) 1554 просмотра
Последний раз редактировалось Integro 11 авг 2022, 12:16, всего редактировалось 1 раз.
"Coding is not the main event anymore. Building software is the main event."
Chris Wanstrath, Co-Founder, CEO of GitHUB
Аватара пользователя
Vasiliy Baev

Activity Gold Bronze
leader
leader
Сообщения: 545
Зарегистрирован: 31 окт 2011, 09:02
Награды: 4
Версия LabVIEW: 2019
Откуда: Санкт-Петербург
Благодарил (а): 8 раз
Поблагодарили: 10 раз
Контактная информация:

Re: Кнопка push push и лед индикация

Сообщение Vasiliy Baev »

Добрый день!
Используйте сдвиговый регистр и элемент инверсии логического сигнала.
Аватара пользователя
Integro
beginner
beginner
Сообщения: 44
Зарегистрирован: 04 окт 2009, 16:10
Версия LabVIEW: 14, 18
Откуда: Israel
Поблагодарили: 1 раз

Re: Кнопка push push и лед индикация

Сообщение Integro »

Благодарю, попробую, результат выставлю
"Coding is not the main event anymore. Building software is the main event."
Chris Wanstrath, Co-Founder, CEO of GitHUB
Аватара пользователя
Integro
beginner
beginner
Сообщения: 44
Зарегистрирован: 04 окт 2009, 16:10
Версия LabVIEW: 14, 18
Откуда: Israel
Поблагодарили: 1 раз

Re: Кнопка push push и лед индикация

Сообщение Integro »

Vasiliy Baev писал(а): 04 май 2022, 08:12 Добрый день!
Используйте сдвиговый регистр и элемент инверсии логического сигнала.
Метод влияет на событие, которым управляет кнопка. Увы шифт регистр сбрасывает основную возложенную на кнопку процедуру теряя фокус в пользу леда :dntknw: .
Вложения
screenshot 2022-05-03 001.jpg
screenshot 2022-05-03 001.jpg (19.41 КБ) 1454 просмотра
"Coding is not the main event anymore. Building software is the main event."
Chris Wanstrath, Co-Founder, CEO of GitHUB
Аватара пользователя
Vasiliy Baev

Activity Gold Bronze
leader
leader
Сообщения: 545
Зарегистрирован: 31 окт 2011, 09:02
Награды: 4
Версия LabVIEW: 2019
Откуда: Санкт-Петербург
Благодарил (а): 8 раз
Поблагодарили: 10 раз
Контактная информация:

Re: Кнопка push push и лед индикация

Сообщение Vasiliy Baev »

Извините, не правильно Вам подсказал.
Можно использовать события и ловить Mouse Down или Mouse Up. (правая часть картинки)
2022-05-05_13-17-20.png
2022-05-05_13-17-20.png (9.85 КБ) 1451 просмотр
Или пересмотреть логику и сменить механизм нажатия (тогда левая часть картинки).
Аватара пользователя
Integro
beginner
beginner
Сообщения: 44
Зарегистрирован: 04 окт 2009, 16:10
Версия LabVIEW: 14, 18
Откуда: Israel
Поблагодарили: 1 раз

Re: Кнопка push push и лед индикация

Сообщение Integro »

Премного благодарен, применил 2-й метод, добавил в Event небольшую задержку на 5 ms. :drink:
"Coding is not the main event anymore. Building software is the main event."
Chris Wanstrath, Co-Founder, CEO of GitHUB
Аватара пользователя
Integro
beginner
beginner
Сообщения: 44
Зарегистрирован: 04 окт 2009, 16:10
Версия LabVIEW: 14, 18
Откуда: Israel
Поблагодарили: 1 раз

Re: Кнопка push push и лед индикация

Сообщение Integro »

Я рано обрадовался, после добавления аналогичного блока к другой кнопке, проект нереально стал зависать.
Буду дальше думать :dntknw:
"Coding is not the main event anymore. Building software is the main event."
Chris Wanstrath, Co-Founder, CEO of GitHUB
Аватара пользователя
alerm

Activity
leader
leader
Сообщения: 682
Зарегистрирован: 02 май 2012, 21:28
Награды: 1
Версия LabVIEW: 20
Благодарил (а): 57 раз
Поблагодарили: 9 раз
Контактная информация:

Re: Кнопка push push и лед индикация

Сообщение alerm »

Integro писал(а): 06 май 2022, 11:59 Я рано обрадовался, после добавления аналогичного блока к другой кнопке, проект нереально стал зависать.
Буду дальше думать :dntknw:
Необходимо все кнопки обрабатывать в одной Event Structure.
Vasiliy Baev писал(а): 05 май 2022, 13:22 Или пересмотреть логику и сменить механизм нажатия
Аватара пользователя
Integro
beginner
beginner
Сообщения: 44
Зарегистрирован: 04 окт 2009, 16:10
Версия LabVIEW: 14, 18
Откуда: Israel
Поблагодарили: 1 раз

Re: Кнопка push push и лед индикация

Сообщение Integro »

alerm писал(а): 06 май 2022, 12:14 Необходимо все кнопки обрабатывать в одной Event Structure.
Vasiliy Baev писал(а): 05 май 2022, 13:22 Или пересмотреть логику и сменить механизм нажатия
у меня довольно объемный код в основном цикле, все нереально загнать в event :cry:
больше склоняюсь к построению какого либо события на инверсию для в.у. ледов, их 16 шт. и на них конечная цель не завершается...
"Coding is not the main event anymore. Building software is the main event."
Chris Wanstrath, Co-Founder, CEO of GitHUB
Аватара пользователя
Kosist

Activity Gold
expert
expert
Сообщения: 1236
Зарегистрирован: 21 фев 2011, 23:44
Награды: 2
Версия LabVIEW: 2013-2020
Благодарил (а): 23 раза
Поблагодарили: 30 раз
Контактная информация:

Re: Кнопка push push и лед индикация

Сообщение Kosist »

Integro писал(а): 06 май 2022, 16:00 у меня довольно объемный код в основном цикле, все нереально загнать в event :cry:
Значит, у Вас неправильно выбранная архитектура. Нужно разбить минимум на два цикла - один будет ловить события, а второй их обрабатывать. Паттерны программирования придумали не просто так, забавы ради.
Мы делили апельсин - много наших полегло...
Аватара пользователя
Integro
beginner
beginner
Сообщения: 44
Зарегистрирован: 04 окт 2009, 16:10
Версия LabVIEW: 14, 18
Откуда: Israel
Поблагодарили: 1 раз

Re: Кнопка push push и лед индикация

Сообщение Integro »

Kosist писал(а): 07 май 2022, 10:05
Integro писал(а): 06 май 2022, 16:00 у меня довольно объемный код в основном цикле, все нереально загнать в event :cry:
Значит, у Вас неправильно выбранная архитектура. Нужно разбить минимум на два цикла - один будет ловить события, а второй их обрабатывать. Паттерны программирования придумали не просто так, забавы ради.
Не все так однозначно, в моем случае более !100 структур на паттернах, да так, что при реконструкции набора процедур одной задачи, происходит нарушение общего порядка переходов. Это все равно как нарушать порядок организации кернел в OS ради пары тройки визуальных эффектов. От того и просил подкинуть не так чтоб громоздкую идею идею.
В случае с мышкой, я был в восторге, т.к. экспериментировал в отдельном временном :vi: , пока не перенес код в проект...
Загонял всю часть нужной мне функции со всеми элементами в отдельный event, при этом всё что запускается до него или дежурит события, курит на заборе.
В целом те маленькие вкусности, которые хотелось бы изменить, не стоят таких усилий. Буду подождать озарения.
Есть более существенные "ликичи", которые таки да, реально мешают жить. К примеру очистка ранних значений в стринг индикаторах после повторного к ним обращения, и традиционно без танцев с бубном.
Скоро открою тему на эту ситуацию.
"Coding is not the main event anymore. Building software is the main event."
Chris Wanstrath, Co-Founder, CEO of GitHUB
Аватара пользователя
Kosist

Activity Gold
expert
expert
Сообщения: 1236
Зарегистрирован: 21 фев 2011, 23:44
Награды: 2
Версия LabVIEW: 2013-2020
Благодарил (а): 23 раза
Поблагодарили: 30 раз
Контактная информация:

Re: Кнопка push push и лед индикация

Сообщение Kosist »

Integro писал(а): 07 май 2022, 11:59Не все так однозначно, в моем случае более !100 структур на паттернах, да так, что при реконструкции набора процедур одной задачи, происходит нарушение общего порядка переходов. Это все равно как нарушать порядок организации кернел в OS ради пары тройки визуальных эффектов. От того и просил подкинуть не так чтоб громоздкую идею идею.
Меня всегда веселили такие заявления. Ничего личного, без обид - но только моя практика показывает, что при правильной архитектуре мелкие изменения просто не в состоянии изменить все приложение. Поэтому паттерны и используют, поэтому и продумывают архитектуру приложения, чтобы оно было надежное, масштабируемое и поддерживаемое.
Не знаю, как Ваше приложение устроено. Но Вы пишете о симуляции режимов управления - отлично. Значит, в приложении должен быть модуль, отвественный за режим управления. Он должен быть общим, generic, и иметь внешнее API для остального приложения. А потом, этот модуль может иметь две имплементации - "реальную", и для симуляции. При исполнении приложения, выбирается нужная имплементация. И все, изменяя внутренность одного модуля но сохраняя его внешние связи, Вы не "мешаете" работе остальных частей приложения. Поверьте, это работает. И чем больше проект - тем более критчино его разбивать на такие отдельные модули.
Мы делили апельсин - много наших полегло...
Аватара пользователя
Integro
beginner
beginner
Сообщения: 44
Зарегистрирован: 04 окт 2009, 16:10
Версия LabVIEW: 14, 18
Откуда: Israel
Поблагодарили: 1 раз

Re: Кнопка push push и лед индикация

Сообщение Integro »

В том то и проблема, проекту более 3 лет, это FSM фреймворк на оригинальном железе, никто не знал, что в финале возникнет хотелка симулировать всю работу программно.
"Coding is not the main event anymore. Building software is the main event."
Chris Wanstrath, Co-Founder, CEO of GitHUB
Аватара пользователя
taras_33

Activity
professional
professional
Сообщения: 391
Зарегистрирован: 31 окт 2009, 18:25
Награды: 1
Версия LabVIEW: 2019
Поблагодарили: 13 раз
Контактная информация:

Re: Кнопка push push и лед индикация

Сообщение taras_33 »

Integro писал(а): 07 май 2022, 11:59 Загонял всю часть нужной мне функции со всеми элементами в отдельный event, при этом всё что запускается до него или дежурит события, курит на заборе.
В целом те маленькие вкусности, которые хотелось бы изменить, не стоят таких усилий. Буду подождать озарения.
Есть более существенные "ликичи", которые таки да, реально мешают жить. К примеру очистка ранних значений в стринг индикаторах после повторного к ним обращения, и традиционно без танцев с бубном.
Скоро открою тему на эту ситуацию.
Напомомнило... Оно конечно ежели, хотя однако всетаки, но если что случится вдруг, то вот вам и пожалуйста!
Мне одному тяжело понимать написанное? Если да, то видимо пора уходить с форума - старый стал :D Если я не одинок, то топикастеру пожелание излогать свои мысли в более понятным стиле - шанс получить вразумительный ответ гораздо выше.
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots.
So far, the Universe is winning!
Аватара пользователя
Integro
beginner
beginner
Сообщения: 44
Зарегистрирован: 04 окт 2009, 16:10
Версия LabVIEW: 14, 18
Откуда: Israel
Поблагодарили: 1 раз

Re: Кнопка push push и лед индикация

Сообщение Integro »

taras_33 писал(а): 08 май 2022, 19:53 Напомомнило... Оно конечно ежели, хотя однако всетаки, но если что случится вдруг, то вот вам и пожалуйста!
Мне одному тяжело понимать написанное? Если да, то видимо пора уходить с форума - старый стал :D Если я не одинок, то топикастеру пожелание излогать свои мысли в более понятным стиле - шанс получить вразумительный ответ гораздо выше.
taras_33 Старался как мог, но все же изначально вопрос был поставлен мной предельно ясно.

За что я люблю https://labviewportal.org так это за детонацию, в моем случае к поиску оптимальных решений своими силами и это работает и если мои мысли здесь кого либо вводят в уныние, мои им извинения и благодарность за мотивацию, не останавливаться на авторитетных сторонних мнениях одного источника.

В качестве компенсации за участие в обсуждении, с удовольствием поделюсь найденным, и на мой взгляд вполне элегантным решением в обход применения дополнительных паттернов и тотального пересмотра логики всего проекта. Я конечно понимаю, что полную диаграмму предпочтительней рассматривать в разрезе 1 ситуации, но такова селяви, что это нереально и не есть open source.

Итак после экспериментов с мышкой и структурными вариациями я рассмотрел возможность применения функций Jk-trigger.
Для тех кто не в танке, в электронике это универсальный цифровой автомат с двумя информационными входами J и К, обладающий расширенными функциональными возможностями.
Пусть этот пример будет подтверждением того, что NI разработали :labview: прежде всего для профильного инженера и одними навыками классических кодеров не стоит перегружать свои мозги.
Его :labview: реализация.
Надеюсь такое решение облегчит кому-то нашу непростую жизнь.
Всем спасибо за участие и мира во всем мире. :bye:
Вложения
Jk-trigger
Jk-trigger
Jk trigger.png (4.96 КБ) 1231 просмотр
"Coding is not the main event anymore. Building software is the main event."
Chris Wanstrath, Co-Founder, CEO of GitHUB
Ответить

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