Автоматическое повторное нажатие кнопки

Простейшие вопросы в области инженерной разработки

Автоматическое повторное нажатие кнопки

Postby Select on 20 Oct 2018, 23:53

Всем добрый вечер,
Задача построить кнопку, которая бы симулировала аппаратную PUSH BUSH, т.е. в отжатом положении имеет Off, нажатие On.
Кнопка после первого ручного нажатия, спустя 70 - 100 ms должна еще раз нажаться, ее :labview: механическое свойство Latch When Relased.
Для чего мне это нужно:
у меня по входным портам CPU (доступа к hex нет) конфигурируется аппаратно свитчами на 1 из 8 вариантов открытия выходных портов, к примеру после нажатия по входу = 1, выходной порт переходит в непрерывный высокий уровень 1, или открывается на 1 с, или наоборот постоянно открытый высокий уровень переходит в низкий до следующего нажатия и т.д. Из за отсутствия возможности манипулирования этими свойствами на одном CPU, я вынужден брать 2, 3, и более CPU и настраивать их под нужные варианты управления, запитывать, строить обвязку от встречных напряжений на задействованные порты и прочий гимор.
Имея программную :labview: кнопку PUSH BUSH, с настройкой времени повторного автоматического нажатия, я бы смог как минимум посадить на 1 CPU одновременно 2 варианта управления, при этом с конфигурацией под 1 вариант.
Здесь на форуме я рассматривал вариант автоматического отключения кнопки спустя заданное время, но мой алгоритм иного назначения, поэтому не стал все валить в одну кучу.
Набросок какой то диаграммы, если мало что понятно из в.с. загружу.
LabView 14
User avatar
Select
assistant
assistant
 
Posts: 110
Joined: 12 Dec 2017, 23:56
Location: Врата надежды.
LabVIEW Version: 14
Karma: 0

Re: Автоматическое повторное нажатие кнопки

Postby Kosist on 21 Oct 2018, 20:15

Диаграмму в студию, т.к. лично для меня объяснение было довольно путанное, и не вполне понятное...
Но вопрос следующий - а обязательно это делать именно кнопкой? Почему бы не организовать логику управления в стейт-машине, и там уже отслеживать состояние управляющих сигналов, и по таймеру их повторно отжимать/нажимать? Ведь все сигналы можно представить как массив булеанов - вот и изменяйте их значения на True/False, и отсылайте куда нужно с нужным интервалом.
Т.е. жмете кнопку на интерфейсе -> отлавливаете это событие -> переходите в нужный стейт стейт машины -> отслеживаете таймер -> делаете что нужно + можете также "клацать" кнопкой программно, чтобы юзеру было видно, что происходит.
Мы делили апельсин - много наших полегло...
User avatar
Kosist
leader
leader
 
Posts: 899
Joined: 21 Feb 2011, 23:44
Medals: 2
Activity (1) Gold (1)
LabVIEW Version: 2013-2017
Karma: 253
CLAD I/O VIP students

Re: Автоматическое повторное нажатие кнопки

Postby Select on 22 Oct 2018, 00:07

Диаграмма и vi.
При нажатии на кнопку, открывается 1, нужно чтоб она после первого открытия 1и перехода в 0, еще раз открылась 1 спустя 100 ms и вернулась в 0.
организовать логику управления в стейт-машине, и там уже отслеживать состояние управляющих сигналов, и по таймеру их повторно отжимать/нажимать? Ведь все сигналы можно представить как массив булеанов - вот и изменяйте их значения на True/False, и отсылайте куда нужно с нужным интервалом.

Может я не правильно понял, Вы пердлагаете посредством Visa мониторить объект лист, производить сбор состояния портов CPU и т.д.?
Это в данной ситуации мне представляется громоздко и вовлекает в дополнительные аппаратные вложения.
Attachments
Push Bush.png
Push Bush.png (4.24 KiB) Viewed 534 times
Push push.vi
(8.31 KiB) Downloaded 14 times
LabView 14
User avatar
Select
assistant
assistant
 
Posts: 110
Joined: 12 Dec 2017, 23:56
Location: Врата надежды.
LabVIEW Version: 14
Karma: 0

Re: Автоматическое повторное нажатие кнопки

Postby Vitekkz88 on 22 Oct 2018, 05:50

Select, когда Вы используете механическое свойство кнопки Lath - то нет возможности использовать её свойства val, val(sgl) из property node. Стройте подобное поведение используя механическое свойство кнопки Switch. Либо делайте последовательность из frame-structure:
1. То, что вы пердставили
2. Задержка 100 мс
3. Логика из шага 1 + индикатор для визуализации, что кнопка была нажата.
:dntknw:
Инженер - это открыто светящийся интеллект, свободный и не обидный юмор, это легкость и широта мысли...Это воспитанность, тонкость вкусов, хорошая речь, плавно согласованная и без сорных словечек...
-А. И. Солженицын
User avatar
Vitekkz88
expert
expert
 
Posts: 1047
Joined: 21 Jan 2014, 15:45
Location: Томск
Medals: 3
Activity (1) Silver (1) Автор (1)
LabVIEW Version: 12,13,14
Karma: 301
hardware I/O VIP

Re: Автоматическое повторное нажатие кнопки

Postby taras_33 on 22 Oct 2018, 16:11

Если не принципиально нажимать именно кнопку, то можно использовать FGV например так
Но мне кажется что то тут не так, странный какой то подход...
Double Press Button.png
Attachments
Double Press Btn.vi
(9.61 KiB) Downloaded 13 times
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!
User avatar
taras_33
developer
developer
 
Posts: 254
Joined: 31 Oct 2009, 18:25
Location: Minsk -> Miami
Medals: 1
Activity (1)
LabVIEW Version: 2016
Karma: 121
CLD VIP

Re: Автоматическое повторное нажатие кнопки

Postby Select on 22 Oct 2018, 23:51

taras_33,
Самое то, :super: Большое спасибо за содействие.
Что именно Вас смущает?
LabView 14
User avatar
Select
assistant
assistant
 
Posts: 110
Joined: 12 Dec 2017, 23:56
Location: Врата надежды.
LabVIEW Version: 14
Karma: 0

Re: Автоматическое повторное нажатие кнопки

Postby Vitekkz88 on 23 Oct 2018, 04:54

FGV - Functional Global Variable(функциональная глобальная переменная), это если кто не разобрался :brows:
Инженер - это открыто светящийся интеллект, свободный и не обидный юмор, это легкость и широта мысли...Это воспитанность, тонкость вкусов, хорошая речь, плавно согласованная и без сорных словечек...
-А. И. Солженицын
User avatar
Vitekkz88
expert
expert
 
Posts: 1047
Joined: 21 Jan 2014, 15:45
Location: Томск
Medals: 3
Activity (1) Silver (1) Автор (1)
LabVIEW Version: 12,13,14
Karma: 301
hardware I/O VIP

Re: Автоматическое повторное нажатие кнопки

Postby Select on 23 Oct 2018, 20:40

Vitekkz88, FGV с белого листа не потяну, хорошо бы пример посмотреть с кнопками и ледами. taras_33,
Действительно, такой код выполняет те действия о которых я говорил, но попытка прикрутить его к моей ситуации зашла в тупик. У меня Select задает условия в виде констант и отправляет их на выборку из массива. Буду курить этот метод дальше.
LabView 14
User avatar
Select
assistant
assistant
 
Posts: 110
Joined: 12 Dec 2017, 23:56
Location: Врата надежды.
LabVIEW Version: 14
Karma: 0

Re: Автоматическое повторное нажатие кнопки

Postby Select on 09 Nov 2018, 00:29

Задача все еще актуальна, попробую представить ее в другом ракурсе.
Нужно каким то образом выполнить автоматический повтор (запуск) сигнала из моего примера в начале темы (повтор предыдущей процедуры). Кнопка дважды с интервалом в 100 ms запускает команду на выборку из массива. :help:
LabView 14
User avatar
Select
assistant
assistant
 
Posts: 110
Joined: 12 Dec 2017, 23:56
Location: Врата надежды.
LabVIEW Version: 14
Karma: 0

Re: Автоматическое повторное нажатие кнопки

Postby taras_33 on 09 Nov 2018, 05:42

Нужно каким то образом выполнить автоматический повтор (запуск) сигнала из моего примера в начале темы (повтор предыдущей процедуры). Кнопка дважды с интервалом в 100 ms запускает команду на выборку из массива

Старею видимо, непонятливый стал....
Первый пост - механическое свойство кнопки:
механическое свойство Latch When Relased.
В представленном примере, если это можно назвать примером, механическое свойство Latch when pressed...


сигнала из моего примера в начале темы (повтор предыдущей процедуры).
Что в представленном Вами примере, Вы называете процедурой?


команду на выборку из массива
Покажите как выглядит эта команда.
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!
User avatar
taras_33
developer
developer
 
Posts: 254
Joined: 31 Oct 2009, 18:25
Location: Minsk -> Miami
Medals: 1
Activity (1)
LabVIEW Version: 2016
Karma: 121
CLD VIP

Re: Автоматическое повторное нажатие кнопки

Postby Select on 09 Nov 2018, 12:34

taras_33,
Для большей ясности, это сейчас работает правильно, но код прожорливый.
Attachments
Push push.png
LabView 14
User avatar
Select
assistant
assistant
 
Posts: 110
Joined: 12 Dec 2017, 23:56
Location: Врата надежды.
LabVIEW Version: 14
Karma: 0

Re: Автоматическое повторное нажатие кнопки

Postby Artem.spb on 09 Nov 2018, 15:16

Select wrote:taras_33,
Для большей ясности, это сейчас работает правильно, но код прожорливый.

код не прожорливый, а бессмысленный.
Использовать циклы, чтобы не использовать секвенсы? Или ради чего такие извращения?
1.png
1.png (13.33 KiB) Viewed 235 times
Artem.spb
expert
expert
 
Posts: 1422
Joined: 31 Jul 2011, 23:05
Medals: 2
Activity (1) Автор (1)
LabVIEW Version: 12,14,15
Karma: 246
CLD hardware I/O VIP freelance

Re: Автоматическое повторное нажатие кнопки

Postby taras_33 on 09 Nov 2018, 15:28

Для большей ясности, это сейчас работает правильно

Да Вы батенька мазохист! :haha: Ну да ладно, обсуждать Ваш код смысла не вижу.
Два вопроса. Какое механическое свойство кнопки? Должно быть два выхода?
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!
User avatar
taras_33
developer
developer
 
Posts: 254
Joined: 31 Oct 2009, 18:25
Location: Minsk -> Miami
Medals: 1
Activity (1)
LabVIEW Version: 2016
Karma: 121
CLD VIP

Re: Автоматическое повторное нажатие кнопки

Postby Select on 09 Nov 2018, 19:03

taras_33,
Механическое свойство кнопки Latch When, выход один, после нажатия кнопки выполняется итерация в 1-м цикле и повторяется с задержкой во втором. Таким образом я дважды транслирую один и тот же сигнал в одно нажатие кнопки.
Немного подправил диаграмму, так же прилагаю vi.
Каким образом эту процедуру оптимизировать не исключая представленные элементы в 1 цикле?
Attachments
Push push.png
Push push.vi
(11.06 KiB) Downloaded 10 times
LabView 14
User avatar
Select
assistant
assistant
 
Posts: 110
Joined: 12 Dec 2017, 23:56
Location: Врата надежды.
LabVIEW Version: 14
Karma: 0

Re: Автоматическое повторное нажатие кнопки

Postby taras_33 on 09 Nov 2018, 19:58

выход один

Как же один? Я вижу два. И еще меня любопытство раздирает, какую полезную нагрузку в Вашем коде играют Add функции? Какой смысл добавлять к чему бы то ни было ноль?
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!
User avatar
taras_33
developer
developer
 
Posts: 254
Joined: 31 Oct 2009, 18:25
Location: Minsk -> Miami
Medals: 1
Activity (1)
LabVIEW Version: 2016
Karma: 121
CLD VIP

Next

Return to Для чайников

Who is online

Users browsing this forum: No registered users and 5 guests

cron