Выполнение блока по условию

Простейшие вопросы в области инженерной разработки
Аватара пользователя
banderlog
user
user
Сообщения: 71
Зарегистрирован: 23 апр 2008, 20:44
Версия LabVIEW: 8.5
Контактная информация:

Выполнение блока по условию

Сообщение banderlog »

Необходимо выполнять блок в случае изменения передаваемого ему параметра. Что-то типа, как на рисунке. Крутанул регулятор - добавилась одна точка на графике и ждём следующего изменения. По идее, должна быть какая-то простая структура, а найти никак не могу :(
Вложения
case_1.vi
(7.05 КБ) 190 скачиваний
Аватара пользователя
Konstantin Sumenko

Activity Bronze
expert
expert
Сообщения: 1439
Зарегистрирован: 17 июл 2008, 12:20
Награды: 2
Версия LabVIEW: 2010
Откуда: Moscow
Поблагодарили: 1 раз
Контактная информация:

Re: Выполнение блока по условию

Сообщение Konstantin Sumenko »

Не могу открыть: 8.6 пока нет. Но по описанию походит на использование event-структуры.
Stkn
assistant
assistant
Сообщения: 128
Зарегистрирован: 25 янв 2009, 11:08
Версия LabVIEW: 2014

Re: Выполнение блока по условию

Сообщение Stkn »

Заведи это всё в цикл и используй Shift Register. И если предыдущее значение не равно текущему, то добавляется точка на график, т.е. Waveform Chart помести в case структуру.
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Выполнение блока по условию

Сообщение Eugen Graf »

Чуть ли не в самой первой теме этого форума выкладывал такое:
/viewtopic.php?p=10#p10
Stkn
assistant
assistant
Сообщения: 128
Зарегистрирован: 25 янв 2009, 11:08
Версия LabVIEW: 2014

Re: Выполнение блока по условию

Сообщение Stkn »

Вот так попробуй
Вложения
case_1.vi
(11.55 КБ) 205 скачиваний
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Выполнение блока по условию

Сообщение Eugen Graf »

Stkn писал(а):Вот так попробуй
Для понятия принципа пойдёт, а вообще то будет жрать 100% CPU.
Аватара пользователя
banderlog
user
user
Сообщения: 71
Зарегистрирован: 23 апр 2008, 20:44
Версия LabVIEW: 8.5
Контактная информация:

Re: Выполнение блока по условию

Сообщение banderlog »

Stkn писал(а):Заведи это всё в цикл и используй Shift Register. И если предыдущее значение не равно текущему, то добавляется точка на график, т.е. Waveform Chart помести в case структуру.
А если кнобов несколько?
Аватара пользователя
banderlog
user
user
Сообщения: 71
Зарегистрирован: 23 апр 2008, 20:44
Версия LabVIEW: 8.5
Контактная информация:

Re: Выполнение блока по условию

Сообщение banderlog »

eg писал(а):Чуть ли не в самой первой теме этого форума выкладывал такое:
/viewtopic.php?p=10#p10
Именно это, видимо, и нужно. А какое событие на изменение любого контрола? Т.е. если их будет несколько? Собственно, мне надо высталять значения RBW, Span, центр. частоты, и при любом измнении посылать команду на прибор. Несколько таких блоков сделать?
Stkn
assistant
assistant
Сообщения: 128
Зарегистрирован: 25 янв 2009, 11:08
Версия LabVIEW: 2014

Re: Выполнение блока по условию

Сообщение Stkn »

Тогда так или несколько Eventов
Вложения
case_1.vi
(10.12 КБ) 183 скачивания
Аватара пользователя
banderlog
user
user
Сообщения: 71
Зарегистрирован: 23 апр 2008, 20:44
Версия LabVIEW: 8.5
Контактная информация:

Re: Выполнение блока по условию

Сообщение banderlog »

Stkn писал(а):Тогда так или несколько Eventов
Спасибо!
А вот eg пишет, что будет много ресурсов хавать. Может, правда, лучше ивенты? А можно одну петлю организовать на несколько событий?
Аватара пользователя
Forward

Activity Tutorials Black
professional
professional
Сообщения: 337
Зарегистрирован: 03 мар 2008, 12:41
Награды: 3
Версия LabVIEW: 2010
Откуда: Кишинев
Контактная информация:

Re: Выполнение блока по условию

Сообщение Forward »

Можешь сделать одинаковую реакцию на разные события в event structure.

Конечно при обработке событий использовать ивент структуру правильнее и компактнее все получится если событий очень много.
Вложения
events.png
Stkn
assistant
assistant
Сообщения: 128
Зарегистрирован: 25 янв 2009, 11:08
Версия LabVIEW: 2014

Re: Выполнение блока по условию

Сообщение Stkn »

Ты сам просил, чтобы было типа как в твоём примере. А ресурсов будет брать 100% - это из-за того, что я забыл Wait поставить в 1-й раз.
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Выполнение блока по условию

Сообщение Eugen Graf »

Stkn писал(а):Ты сам просил, чтобы было типа как в твоём примере. А ресурсов будет брать 100% - это из-за того, что я забыл Wait поставить в 1-й раз.
В том то и дело, что если ты выставишь задержку, то изменения будут регистрироваться с задержкой, при чём в то время пока программа в режиме ожидания, они вообще регистрироваться не будут. Скажем так, они будут регистрироваться квантизировано.
Аватара пользователя
banderlog
user
user
Сообщения: 71
Зарегистрирован: 23 апр 2008, 20:44
Версия LabVIEW: 8.5
Контактная информация:

Re: Выполнение блока по условию

Сообщение banderlog »

Спасибо за подсказки! А у событий лучше использовать MouseUp, потому что ChangeVolume пытается передать своё значение несколько раз, пока крутишь ручку. При коммуникации с прибором получаются затупления.
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Выполнение блока по условию

Сообщение Eugen Graf »

banderlog писал(а):Спасибо за подсказки! А у событий лучше использовать MouseUp, потому что ChangeVolume пытается передать своё значение несколько раз, пока крутишь ручку. При коммуникации с прибором получаются затупления.
Да, есть такое. Выход, как ты уже сказал - использовать например mouse up. Или выставить в самом цонтроле инкрементацию, чтобы событий было меньше.
Ответить

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