Автоматическое повторное нажатие кнопки
- Select
- developer
- Сообщения: 281
- Зарегистрирован: 12 дек 2017, 23:56
- Версия LabVIEW: 18
- Откуда: Врата надежды.
- Поблагодарили: 2 раза
Re: Автоматическое повторное нажатие кнопки
Выход один заложен тех заданием, здесь у меня 2 выхода, т.к. ничего другого в голову не пришло чтоб повторить итерацию и я понимаю что это криво, как временное решение это рулит и запускает сигнал именно в том варианте о котором здесь морочу всем голову, пожалуй первый цикл лишний его можно удалить оставив 1 итерацию в основном цикле.
Add 0 я указал для наглядности, чтоб была видна механика кнопки, там же и лед. Выставленный здесь пример это упрощенная и отрезанная часть от рабочей части диаграммы. Вместо Numeric у меня подключается Enum массив с предустановленными ID значениями для частотного генератора и т.д.
Add 0 я указал для наглядности, чтоб была видна механика кнопки, там же и лед. Выставленный здесь пример это упрощенная и отрезанная часть от рабочей части диаграммы. Вместо Numeric у меня подключается Enum массив с предустановленными ID значениями для частотного генератора и т.д.
LabView 14,18
-
taras_33
- professional
- Сообщения: 392
- Зарегистрирован: 31 окт 2009, 18:25
- Награды: 1
- Версия LabVIEW: 2019
- Поблагодарили: 13 раз
- Контактная информация:
Re: Автоматическое повторное нажатие кнопки
Ну если так принципиально нужен именно Select...Действительно, такой код выполняет те действия о которых я говорил, но попытка прикрутить его к моей ситуации зашла в тупик. У меня Select задает условия в виде констант и отправляет их на выборку из массива. Буду курить этот метод дальше.
Так чего Вы шифруетесь? Покажите всю диаграмму, чтоб понять в какой Вы там в тупик зашли.Выставленный здесь пример это упрощенная и отрезанная часть от рабочей части диаграммы. Вместо Numeric у меня подключается Enum массив с предустановленными ID значениями для частотного генератора и т.д.
- Вложения
-
- Double Press Btn_2.vi
- (13.21 КБ) 94 скачивания
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!
So far, the Universe is winning!
- Select
- developer
- Сообщения: 281
- Зарегистрирован: 12 дек 2017, 23:56
- Версия LabVIEW: 18
- Откуда: Врата надежды.
- Поблагодарили: 2 раза
Re: Автоматическое повторное нажатие кнопки
Double Press Btn_2.vi не завелся у меня 14.
возможно в Вашем примере, время завершения 1-го цикла большое, так же у меня в основном цикле есть и другие процедуры, таймер во 2 цикле позволяет мне настроить задержку как мне удобно.
То, что сейчас у меня работает выглядит так. Если не составит труда, прокомментируйте увиденные здесь проблемы и подводные камни.
Смотрел загрузку памяти, ничего критического не заметил, другие функции, присутствующие в основном цикле не тормозят, железо не виснет.
Целиком выставить всю блок диаграмму не реально, она выходит за пределы экрана, да и нет в этом смысла. Здесь 1:1 выставленна самостоятельная процедура как она есть в проекте.
возможно в Вашем примере, время завершения 1-го цикла большое, так же у меня в основном цикле есть и другие процедуры, таймер во 2 цикле позволяет мне настроить задержку как мне удобно.
То, что сейчас у меня работает выглядит так. Если не составит труда, прокомментируйте увиденные здесь проблемы и подводные камни.
Смотрел загрузку памяти, ничего критического не заметил, другие функции, присутствующие в основном цикле не тормозят, железо не виснет.
Целиком выставить всю блок диаграмму не реально, она выходит за пределы экрана, да и нет в этом смысла. Здесь 1:1 выставленна самостоятельная процедура как она есть в проекте.
LabView 14,18
-
taras_33
- professional
- Сообщения: 392
- Зарегистрирован: 31 окт 2009, 18:25
- Награды: 1
- Версия LabVIEW: 2019
- Поблагодарили: 13 раз
- Контактная информация:
Re: Автоматическое повторное нажатие кнопки
Это не циклы, это FGV - рассмативайте этот "цикл" как обычную переменную с расширенными возможностями, которая помнит предыдущее значение, поэтому время здесь не при делах и задержек нет. Задержка между "нажатиями-отпусканиями" определяется задержкой основного цикла. Скажем в моем примере она составляет 500mS. Вы нажали кнопку - на выходе установилась единичка, через пол секунды она сменится на ноль, еще через пол секунды снова единичка, потом снова ноль. Т.e. время между сменами состояний определяется скоростью работы основного цикла.возможно в Вашем примере, время завершения 1-го цикла большое
Ваш последний пример:
Вам действительно нужно каждые 600 mS (500 mS + 10 mS) отправлять данные в частотный генератор? В моем понимании установил необходимую частоту и забыл, до следующей необходимости ее изменить.Вместо Numeric у меня подключается Enum массив с предустановленными ID значениями для частотного генератора и т.д.
Но при любом раскладе while цикл это, как говорил Artem, извращение, замените его на Flat Sequence Structure
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!
So far, the Universe is winning!
- Select
- developer
- Сообщения: 281
- Зарегистрирован: 12 дек 2017, 23:56
- Версия LabVIEW: 18
- Откуда: Врата надежды.
- Поблагодарили: 2 раза
Re: Автоматическое повторное нажатие кнопки
Такого поведения не обнаруживаю, на протяжении всего активного состояния vi происходит два импульса выбранной частоты в одно нажатие кнопки, что и требуется. Никаких дальнейших повторов каждые 600 ms не происходит. Или мы говорим о разных вещах?Вам действительно нужно каждые 600 mS (500 mS + 10 mS) отправлять данные в частотный генератор?
Flat Sequence Structure пробовал по аналогии с FGV, но я как то неверно строил там связи, или чего-то не хватало, не пошло.
LabView 14,18
-
- professor
- Сообщения: 3408
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 176 раз
- Контактная информация:
Re: Автоматическое повторное нажатие кнопки
Как не происходит? Главный цикл работает, значит повторы идут. То, что импульса нет, не значит отсутствие сигнала. Вы просто отправляете 0 на выход.Select писал(а):Такого поведения не обнаруживаю, на протяжении всего активного состояния vi происходит два импульса выбранной частоты в одно нажатие кнопки, что и требуется. Никаких дальнейших повторов каждые 600 ms не происходит. Или мы говорим о разных вещах?Вам действительно нужно каждые 600 mS (500 mS + 10 mS) отправлять данные в частотный генератор?
Flat Sequence Structure пробовал по аналогии с FGV, но я как то неверно строил там связи, или чего-то не хватало, не пошло.
-
taras_33
- professional
- Сообщения: 392
- Зарегистрирован: 31 окт 2009, 18:25
- Награды: 1
- Версия LabVIEW: 2019
- Поблагодарили: 13 раз
- Контактная информация:
Re: Автоматическое повторное нажатие кнопки
Артем прав...Как не происходит? Главный цикл работает, значит повторы идут. То, что импульса нет, не значит отсутствие сигнала. Вы просто отправляете 0 на выход.
Я бы изменил структуру программы. Например Producer-Consumer или
если извратиться, как показано ниже, применил бы конечный автомат Правда здесь есть недостаток - повторные нажатия на кнопку будут игнорироваться, пока не обработается первое.
посмотрите вложенный проект LV2014 вдруг поможет.
- Вложения
-
- Double Press Btn Folder.zip
- (15.93 КБ) 61 скачивание
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!
So far, the Universe is winning!
- Select
- developer
- Сообщения: 281
- Зарегистрирован: 12 дек 2017, 23:56
- Версия LabVIEW: 18
- Откуда: Врата надежды.
- Поблагодарили: 2 раза
Re: Автоматическое повторное нажатие кнопки
14 этот vi не открывает.taras_33 писал(а):посмотрите вложенный проект LV2014 вдруг поможет.
Относительно тишины при переходе в нулевую частоту, согласен, действительно каждые 600 mS происходит генерация белого шума однородной плотности. Вопрос, как это влияет на окружение? В трансмиттерах, как впрочем и во всех приемопередающих системах это явление присутствует всегда и имеет относительный уровень по отношению к модулируемым сигналам на выделенных частотах. В моем случае это звенящий ноль, ну и пусть себе звенит и ни на какие процессы не влияет. У меня все процессы в программе построены на переходах от нуля, к нужной частоте.
Как не просил, так и не получаю коммент почему такой код не есть хорошо, мазохизм, изврат и т.п. К примеру, если в микропроцессорах явление дребезга обусловлено мусором, кривым алгоритмом или непродуманным до конца дизайном, существует масса способов коррекции и доведения до желаемого результата.
Попробую поиграться построить конечный автомат.
LabView 14,18
-
taras_33
- professional
- Сообщения: 392
- Зарегистрирован: 31 окт 2009, 18:25
- Награды: 1
- Версия LabVIEW: 2019
- Поблагодарили: 13 раз
- Контактная информация:
Re: Автоматическое повторное нажатие кнопки
Хм странно... Пересохранил в 201314 этот vi не открывает.
Update: Только что проверил - LV2014 данный проект открывает без проблем....
Да потому что так никто не программирует! Как правило проект строят из нескольких независимых процессов - UI отдельно, коммуникация с железом отдельно, какие то ресурсо-затратные функции отдельно и т.д. Общение между ними через очереди, нотифаеры или юзер ивенты. Тогда и программа "отзывчива", не виснет, событий не пропускает...Как не просил, так и не получаю коммент почему такой код не есть хорошо, мазохизм, изврат и т.п.
Как Вам можно что то посоветовать если нет общего понимания всей структуры и назначения программы. Да и с Вашей стороны...
- ну почитайте Вы самые азы... Но Вы ранее писали что на это у Вас нет времени.Flat Sequence Structure пробовал по аналогии с FGV, но я как то неверно строил там связи, или чего-то не хватало, не пошло.
Вот тут прямо в точку! См. Вышенепродуманным до конца дизайном, существует масса способов коррекции и доведения до желаемого результата.
- Вложения
-
- State machine.zip
- (14.94 КБ) 68 скачиваний
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!
So far, the Universe is winning!
- Select
- developer
- Сообщения: 281
- Зарегистрирован: 12 дек 2017, 23:56
- Версия LabVIEW: 18
- Откуда: Врата надежды.
- Поблагодарили: 2 раза
Re: Автоматическое повторное нажатие кнопки
taras_33, благодарю, файл открылся, благодарю за коммент, попробую Ваш вариант, по результату отпишусь.
LabView 14,18
- Select
- developer
- Сообщения: 281
- Зарегистрирован: 12 дек 2017, 23:56
- Версия LabVIEW: 18
- Откуда: Врата надежды.
- Поблагодарили: 2 раза
Re: Автоматическое повторное нажатие кнопки
Адаптация не получается.
В моем примере я могу организовать сколько угодно генерируемых частот задавая их диапазон с присвоением к каждому номер в виде константы, производить их выборку в массиве по предустановленным номерам и соответственно селективно запускать эти частоты.
В варианте State machine я лишен такой возможности, хотя алгоритм итерации правильный.
Версия
Double Press Btn_2.png на мой взгляд имеет больше шансов, попробую его покурить.
В моем примере я могу организовать сколько угодно генерируемых частот задавая их диапазон с присвоением к каждому номер в виде константы, производить их выборку в массиве по предустановленным номерам и соответственно селективно запускать эти частоты.
В варианте State machine я лишен такой возможности, хотя алгоритм итерации правильный.
Версия
Double Press Btn_2.png на мой взгляд имеет больше шансов, попробую его покурить.
LabView 14,18
-
taras_33
- professional
- Сообщения: 392
- Зарегистрирован: 31 окт 2009, 18:25
- Награды: 1
- Версия LabVIEW: 2019
- Поблагодарили: 13 раз
- Контактная информация:
Re: Автоматическое повторное нажатие кнопки
Видимо я чего-то не понимаю
- Вложения
-
- SM.zip
- LV2013
- (15.3 КБ) 84 скачивания
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!
So far, the Universe is winning!
- Select
- developer
- Сообщения: 281
- Зарегистрирован: 12 дек 2017, 23:56
- Версия LabVIEW: 18
- Откуда: Врата надежды.
- Поблагодарили: 2 раза
Re: Автоматическое повторное нажатие кнопки
taras_33,
Самое то
Коллективный разум незаменим.
Товарищ Сталин сказал бы - " У этой аджики большое будущее "
Самое то
Коллективный разум незаменим.
Товарищ Сталин сказал бы - " У этой аджики большое будущее "
LabView 14,18
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 1 Ответы
- 130 Просмотры
-
Последнее сообщение Artem.spb