Выполнение блока по условию
- banderlog
- user
- Сообщения: 71
- Зарегистрирован: 23 апр 2008, 20:44
- Версия LabVIEW: 8.5
- Контактная информация:
Выполнение блока по условию
Необходимо выполнять блок в случае изменения передаваемого ему параметра. Что-то типа, как на рисунке. Крутанул регулятор - добавилась одна точка на графике и ждём следующего изменения. По идее, должна быть какая-то простая структура, а найти никак не могу :(
- Вложения
-
- case_1.vi
- (7.05 КБ) 190 скачиваний
-
Konstantin Sumenko
- expert
- Сообщения: 1439
- Зарегистрирован: 17 июл 2008, 12:20
- Награды: 2
- Версия LabVIEW: 2010
- Откуда: Moscow
- Поблагодарили: 1 раз
- Контактная информация:
Re: Выполнение блока по условию
Не могу открыть: 8.6 пока нет. Но по описанию походит на использование event-структуры.
Re: Выполнение блока по условию
Заведи это всё в цикл и используй Shift Register. И если предыдущее значение не равно текущему, то добавляется точка на график, т.е. Waveform Chart помести в case структуру.
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Выполнение блока по условию
Чуть ли не в самой первой теме этого форума выкладывал такое:
/viewtopic.php?p=10#p10
/viewtopic.php?p=10#p10
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Выполнение блока по условию
Для понятия принципа пойдёт, а вообще то будет жрать 100% CPU.Stkn писал(а):Вот так попробуй
- banderlog
- user
- Сообщения: 71
- Зарегистрирован: 23 апр 2008, 20:44
- Версия LabVIEW: 8.5
- Контактная информация:
Re: Выполнение блока по условию
А если кнобов несколько?Stkn писал(а):Заведи это всё в цикл и используй Shift Register. И если предыдущее значение не равно текущему, то добавляется точка на график, т.е. Waveform Chart помести в case структуру.
- banderlog
- user
- Сообщения: 71
- Зарегистрирован: 23 апр 2008, 20:44
- Версия LabVIEW: 8.5
- Контактная информация:
Re: Выполнение блока по условию
Именно это, видимо, и нужно. А какое событие на изменение любого контрола? Т.е. если их будет несколько? Собственно, мне надо высталять значения RBW, Span, центр. частоты, и при любом измнении посылать команду на прибор. Несколько таких блоков сделать?eg писал(а):Чуть ли не в самой первой теме этого форума выкладывал такое:
/viewtopic.php?p=10#p10
Re: Выполнение блока по условию
Тогда так или несколько Eventов
- Вложения
-
- case_1.vi
- (10.12 КБ) 183 скачивания
- banderlog
- user
- Сообщения: 71
- Зарегистрирован: 23 апр 2008, 20:44
- Версия LabVIEW: 8.5
- Контактная информация:
Re: Выполнение блока по условию
Спасибо!Stkn писал(а):Тогда так или несколько Eventов
А вот eg пишет, что будет много ресурсов хавать. Может, правда, лучше ивенты? А можно одну петлю организовать на несколько событий?
-
Forward
- professional
- Сообщения: 337
- Зарегистрирован: 03 мар 2008, 12:41
- Награды: 3
- Версия LabVIEW: 2010
- Откуда: Кишинев
- Контактная информация:
Re: Выполнение блока по условию
Можешь сделать одинаковую реакцию на разные события в event structure.
Конечно при обработке событий использовать ивент структуру правильнее и компактнее все получится если событий очень много.
Конечно при обработке событий использовать ивент структуру правильнее и компактнее все получится если событий очень много.
Re: Выполнение блока по условию
Ты сам просил, чтобы было типа как в твоём примере. А ресурсов будет брать 100% - это из-за того, что я забыл Wait поставить в 1-й раз.
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Выполнение блока по условию
В том то и дело, что если ты выставишь задержку, то изменения будут регистрироваться с задержкой, при чём в то время пока программа в режиме ожидания, они вообще регистрироваться не будут. Скажем так, они будут регистрироваться квантизировано.Stkn писал(а):Ты сам просил, чтобы было типа как в твоём примере. А ресурсов будет брать 100% - это из-за того, что я забыл Wait поставить в 1-й раз.
- banderlog
- user
- Сообщения: 71
- Зарегистрирован: 23 апр 2008, 20:44
- Версия LabVIEW: 8.5
- Контактная информация:
Re: Выполнение блока по условию
Спасибо за подсказки! А у событий лучше использовать MouseUp, потому что ChangeVolume пытается передать своё значение несколько раз, пока крутишь ручку. При коммуникации с прибором получаются затупления.
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Выполнение блока по условию
Да, есть такое. Выход, как ты уже сказал - использовать например mouse up. Или выставить в самом цонтроле инкрементацию, чтобы событий было меньше.banderlog писал(а):Спасибо за подсказки! А у событий лучше использовать MouseUp, потому что ChangeVolume пытается передать своё значение несколько раз, пока крутишь ручку. При коммуникации с прибором получаются затупления.