Нужны критика и нравоучения. Формирование импульсов
-
taras_33
- professional
- Сообщения: 392
- Зарегистрирован: 31 окт 2009, 18:25
- Награды: 1
- Версия LabVIEW: 2019
- Поблагодарили: 13 раз
- Контактная информация:
Re: Нужны критика и нравоучения. Формирование импульсов
Один раз наблюдал такой глюк. Кнопка имеет latch, соответственно её значение variant и ни считать ни записать нельзя. Меняю mechanical action на switch. А value из property node остаётся variant! Бред какой-то. Помогло удаление кнопки с панели с обратным восстанавлением. И ещё если меняете action кнопки, нужно заменить её reference в кластере. При инициализации references LabVIEW нарисует крест на проводе если они не совпадают, но глюки случаются ....
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!
-
- user
- Сообщения: 70
- Зарегистрирован: 22 ноя 2017, 10:29
- Версия LabVIEW: 2019
- Откуда: Санкт-Петербург
- Поблагодарили: 2 раза
- Контактная информация:
Re: Нужны критика и нравоучения. Формирование импульсов
Да, это как раз он и был. Плюс путаница с тайпдефами и кластерами. Вроде разобрался, спасибо!Один раз наблюдал такой глюк
Вот, что у меня получилось, всё стало модульнее, компактнее, с ссылками (к последнему пока не привык полностью, но надо, значит надо).
Правильно ли я всё реализовал? Не обошлось конечно и без property node:value(signaling) в producer'е, это критично? Или лучше создать ещё пару состояний в консюмере?
Еще, впервые работаю с кластером ошибок, поэтому получилась такая паутина в некоторых subV, поправьте тоже, если можно сделать лучше.
Пока не реализовал запоминание/сброс параметров при повторном запуске этого VI как subVI, но это впереди. Еще ломаю голову, как строить касательную только по положительным импульсам, но с этим должен разобраться сам - у вас прошу консультаций по стилю и оптимизации.
- Вложения
-
- Main Folder.rar
- (647.36 КБ) 239 скачиваний
-
- user
- Сообщения: 70
- Зарегистрирован: 22 ноя 2017, 10:29
- Версия LabVIEW: 2019
- Откуда: Санкт-Петербург
- Поблагодарили: 2 раза
- Контактная информация:
Re: Нужны критика и нравоучения. Формирование импульсов
И ещё вопрос, вдогонку. Каждый раз меняя входной кластер с референсами, долго мучаюсь, заново переформировывая тип кластера, потом меняю его везде... А он же тайпдеф именно для того, чтобы так не делать. Но как изменить референс в самом тайпдефе - не вкурил. Если бы там был контрол или индикатор, это легко, а с ссылками так работать ещё не умею. Вот раньше была ссылка на кластер, а теперь я хочу сделать ссылку на контрол вместо нее... Как?
-
- professor
- Сообщения: 3406
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 176 раз
- Контактная информация:
Re: Нужны критика и нравоучения. Формирование импульсов
Неудобный (по мне) метод: правой на ссылку в тайпдефе, там "select vi server class" и дале по меню.
Я же обычно правой на сам контрол, из меню выбираю "создать ref", и этот реф уже перетаскиваю в тайпдеф.
Если совсем сурово и часто приходится менять один их элементов, то моэжно и его сделать тайпдефом. И этот тайпдеф поместить в тайпдеф.
Я же обычно правой на сам контрол, из меню выбираю "создать ref", и этот реф уже перетаскиваю в тайпдеф.
Если совсем сурово и часто приходится менять один их элементов, то моэжно и его сделать тайпдефом. И этот тайпдеф поместить в тайпдеф.
-
- user
- Сообщения: 70
- Зарегистрирован: 22 ноя 2017, 10:29
- Версия LabVIEW: 2019
- Откуда: Санкт-Петербург
- Поблагодарили: 2 раза
- Контактная информация:
Re: Нужны критика и нравоучения. Формирование импульсов
Пока никто не отвечает, буду спрашивать дальшеВот, что у меня получилось, всё стало модульнее, компактнее, с ссылками (к последнему пока не привык полностью, но надо, значит надо).
Правильно ли я всё реализовал? Не обошлось конечно и без property node:value(signaling) в producer'е, это критично? Или лучше создать ещё пару состояний в консюмере?
Еще, впервые работаю с кластером ошибок, поэтому получилась такая паутина в некоторых subV, поправьте тоже, если можно сделать лучше.
Вопрос такой: может, в данной программе можно было воспользоваться какими-то готовыми решениями, а не писать с нуля? Например, сами импульсы или сохранение с шифрованием? Я нигде велосипеда не сделал?
-
- user
- Сообщения: 70
- Зарегистрирован: 22 ноя 2017, 10:29
- Версия LabVIEW: 2019
- Откуда: Санкт-Петербург
- Поблагодарили: 2 раза
- Контактная информация:
Re: Нужны критика и нравоучения. Формирование импульсов
Видимо, новых советов я не дождусь. Тогда такой ещё вопрос: чем принципиально очереди отличаются от нотифаеров? Не оптимальнее в данном проекте использовать именно уведомления? Я же правильно понял, что это та же очередь, только с одним элементом? А в данной программе, мне как раз больше и не требуется. Почему же шаблон producer/consumer строится именно на очередях? Из-зза универсальности? В каком случае использовать нотифаеры предпочтительнее?
-
FireFly
- expert
- Сообщения: 1321
- Зарегистрирован: 25 апр 2009, 08:58
- Награды: 2
- Версия LabVIEW: 2014
- Откуда: Санкт-Петербург
- Поблагодарили: 1 раз
Re: Нужны критика и нравоучения. Формирование импульсов
При использовании подхода producer/consumer всегда есть вероятность, что в какой-то момент времени (на короткий период) producer (или несколько producers) начнёт генерировать события быстрее чем consumer их обрабатывает.
Использование очереди позволяет не потерять эти события, в отличии от нотифаера.
Использование очереди позволяет не потерять эти события, в отличии от нотифаера.
Иногда лучше молчать и слыть идиотом, чем заговорить и развеять все сомнения.
-
- professor
- Сообщения: 3406
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 176 раз
- Контактная информация:
Re: Нужны критика и нравоучения. Формирование импульсов
Кроме возможности поставить в очередь больше одного элемента есть ещё одно ключевое различие:K0sinus писал(а):Видимо, новых советов я не дождусь. Тогда такой ещё вопрос: чем принципиально очереди отличаются от нотифаеров? Не оптимальнее в данном проекте использовать именно уведомления? Я же правильно понял, что это та же очередь, только с одним элементом? А в данной программе, мне как раз больше и не требуется. Почему же шаблон producer/consumer строится именно на очередях? Из-зза универсальности? В каком случае использовать нотифаеры предпочтительнее?
очередь = от многих одному,
нотификаторы - от одного многим.
Читатель очереди вытаскивает элемент из неё, так что параллельное чтение без глюков не получится.Обращение к нотификатору не удаляет элемент, так что можно проверять параллельно из нескольких мест.