Страница 2 из 2

Re: Трудности использования SubVi

Добавлено: 31 мар 2017, 11:06
Borjomy_1
У меня вопрос. Кто будет смотреть 200 параметров???

Re: Трудности использования SubVi

Добавлено: 31 мар 2017, 11:26
Vitekkz88
Borjomy_1, человек 40 инженеров придут и в один монитор будут разглядывать каждый своё. Я с таким сталкивался по работе. Правда параметров тогда было не 200, а 8.

Re: Трудности использования SubVi

Добавлено: 15 мар 2024, 14:50
CCCP33
Так понимаю у меня тоже подобная проблема, как у автора.
В main.vi есть кластер typedef, данные из которого расходятся по всей программе в SubVI с различной глубиной иерархии. В этом кластере есть массивы, и иногда есть необходимость передать именно в той конфигурации, в которой я выставил в main.vi (т.е. передавать не только данные, как я делаю обычно, но и свойства). Не знаю как обеспечить простой, гибкий метод передачи всего этого в недры программы, при этом, чтобы не было проблем при отладке отдельных SubVI.
Передавать кластер из ссылок, вместо typedef кластера с данными? (т.е. надо создавать отдельный typedef с ссылками, при изменении основного кластера typedef его пересоздавать каждый раз?, + при отладке я хочу видеть и менять все данные в SubVI, а не ссылки на элементы из кластера).
Для наглядности приведу упрощенный пример, того, что у меня:
Trans properties.png
Trans properties.png (12.39 КБ) 231 просмотр
Т.е. при нажатии кнопки необходимо, чтобы SubVI нижнего уровня вытаскивал только текущие индексы массивов.
Как быть?

Re: Трудности использования SubVi

Добавлено: 15 мар 2024, 17:00
Artem.spb
CCCP33 писал(а): 15 мар 2024, 14:50 (т.е. передавать не только данные, как я делаю обычно, но и свойства).
Что такое свойство массива?
Т.е. при нажатии кнопки необходимо, чтобы SubVI нижнего уровня вытаскивал только текущие индексы массивов. Как быть?
Если вам нужно по кнопке в main что-то делать в sub, то саб должен работать параллельно и по кнопке в него должна лететь команда (очереди, нотификаторы, события для этого и придуманы).
В крайнем случае можно мониторить значение кнопки по ссылке но это плохая идея.

Re: Трудности использования SubVi

Добавлено: 15 мар 2024, 17:44
CCCP33
Artem.spb писал(а): 15 мар 2024, 17:00 Что такое свойство массива?
в данном случае выставленные в GUI индексы массива (Index values)
Artem.spb писал(а): 15 мар 2024, 17:00 Если вам нужно по кнопке в main что-то делать в sub, то саб должен работать параллельно и по кнопке в него должна лететь команда (очереди, нотификаторы, события для этого и придуманы).
В крайнем случае можно мониторить значение кнопки по ссылке но это плохая идея.
не, наверное вы неверно меня поняли. События у меня обрабатываются в main VI, и тут не про них. Вот на примере, который я обозначил, 2 массива - один внутри другого. В SubVI нижнего уровня из этого кластера берутся массивы и обрабатываются вложенными циклами. Однако мне необходимо обработать не все элементы этих массивов (N1xN2), а только выставленные индексами.

Re: Трудности использования SubVi

Добавлено: 15 мар 2024, 19:25
AndreyDmitriev
CCCP33 писал(а): 15 мар 2024, 14:50
Т.е. при нажатии кнопки необходимо, чтобы SubVI нижнего уровня вытаскивал только текущие индексы массивов.
Как быть?
Я б явно пробрасывал отдельными вспомогательными элементами в кластере

Изображение

Re: Трудности использования SubVi

Добавлено: 16 мар 2024, 00:26
CCCP33
AndreyDmitriev писал(а): 15 мар 2024, 19:25 Я б явно пробрасывал отдельными вспомогательными элементами в кластере
Да, похоже других вариантов нет. Появляется в main.vi обработчик, который выставляет текущие индексы и все - с этим можно мириться, НО. Для отладки опять же неудобняк - если я запускаю непосредственно SubVi нижнего уровня, то его логика уже будет другая. Придется либо править их вручную, либо городить логику, исходя из того, что SubVI запускается сам, а не вызывается сверху и подсовывать индексы, которые выставлены в этом SubVi. В общем дополнительный гемор. Вроде что мешает сделать возможность передавать объект полностью, а не только его value :labview: :buuh:

Re: Трудности использования SubVi

Добавлено: 16 мар 2024, 21:30
Artem.spb
А вы часом не усложняете себе жизнь? Если из всего массива вам нужен только видимый элемент (по индексу), так и передайте в саб этот элемент, а не весь массив.

Re: Трудности использования SubVi

Добавлено: 16 мар 2024, 22:32
CCCP33
Artem.spb писал(а): 16 мар 2024, 21:30 А вы часом не усложняете себе жизнь? Если из всего массива вам нужен только видимый элемент (по индексу), так и передайте в саб этот элемент, а не весь массив.
Хотел, чтобы использовался один typedef для main и subvi, т.к. помимо этих массивов subvi использует и другие его элементы. Да и по логике работы программы - в этот subvi встроен сбор данных, и параллельно обработка, визуализация и сохранение на очередях (producer-consumer - т.е. пока прога получает данные с приборов следующего теста, в это же время она обрабатывает данные от предыдущего другим потоком), а иначе эти потроха тоже придется выносить в main vi.
P.S. возможно мне стоит как-то сменить концепцию (поменять шаблон??), но я уже привык в main.vi использовать event structure, и стремлюсь в каждом кадре делать минимум фарша (в идеале только subvi). Хотя в тех спагетти, которые я лепил раньше, как раз делал так, как сейчас предлагаете. Т.о. в моем случае :labview: не дает найти компромисс между гибкостью и эстетикой кода (либо спагетти из которых можно вытянуть/втянуть что угодно, либо использовать typedef + много subvi - код становится читаемый, однако существенно теряет в гибкости)