работа с SubVI

Простейшие вопросы в области инженерной разработки
Ответить
Et_cetera
beginner
beginner
Сообщения: 26
Зарегистрирован: 17 окт 2017, 22:53
Версия LabVIEW: 2017

работа с SubVI

Сообщение Et_cetera »

Помогите пожалуйста со следующей проблемой: Есть Матрица с номерами датчиков, и Массив "алгоритм" из булевых переменных.
ЧТО ТРЕБУЕТСЯ: При нажатии на элемент массива "алгоритм" и по нажатию кнопки ДТ в массиве
"используемые датчики" с тем же индексом, вывести лицевую панель SubVI вида: "ON/OFF" " №ДТ" "задействован/незадейтвован" "ок"
Где на матрицу № ДТ передаются данные с той же матрицы основного прибора.
При выборе элемента в массиве ON/OFF № датчиков формируются в массив . По клику
кнопки ОК данные передаются в основной прибор дальше, лицевая панель Sub VI закрывается.
При нажатии на следующую кнопку ДТ в массиве Исп.датчики в массиве булевых переменных ничего не должно отображаться, а в строковом массиве должна быть информация, что датчик уже задействован.
В чем проблемы: При открытии подприбора данные не записываются, кнопка ОК не закрывает лицевую панель, и индикатор Numeric, имитирующий поступление данных с DAQ останавливается.

В качестве примера использовала встроенные примеры LabVIEW, но видимо не разобралась до конца.
Вложения
Программа.vi
(12.28 КБ) 71 скачивание
Untitled 8 (SubVI).vi
(7.91 КБ) 72 скачивания
Аватара пользователя
zxc_pavel
adviser
adviser
Сообщения: 242
Зарегистрирован: 02 июн 2016, 12:07
Версия LabVIEW: 15
Благодарил (а): 9 раз
Поблагодарили: 23 раза
Контактная информация:

Re: работа с SubVI

Сообщение zxc_pavel »

VI не закрывалась по 2 причинам: Вы не меняли в параметрах File -> Vi properties -> Windows Appearance -> Custom - там 2 галки надо open и close. И вы не меняли массив после выхода -> условие каждую итерацию срабатывало бы.
Ну и я запутался, пытаясь понять что надо в итоге сделать)
Вложения
Программа.vi
(19.97 КБ) 68 скачиваний
Untitled 8.vi
(13.31 КБ) 73 скачивания
Et_cetera
beginner
beginner
Сообщения: 26
Зарегистрирован: 17 окт 2017, 22:53
Версия LabVIEW: 2017

Re: работа с SubVI

Сообщение Et_cetera »

zxc_pavel, я поставила галки,где вы сказали.
И вы не меняли массив после выхода
это значит, надо поставить значения Folse для массива или что? Я заметила, что после нажатия кнопки ДТ ваши "отлипают", а мои нет, ( mechanical action стоит тоже).
Ну и я запутался, пытаясь понять что надо в итоге сделать)
Да, пожалуй я и правда путано написала. ((
В общих чертах, это программа по управлению реле. нажатием элементов в массиве "алгоритм" выбирается, будет работать реле по заданному алгоритму или нет. если да, то выбираются датчики с которыми это реле работает. Датчики как раз выбираются в окошке SubVI.
грубо говоря, если оба элемента с индексом 0 массивов Исп.датчики и Алгоритм имеют значение True, то в открывшемся SubVi выбираются датчики 1,2,3. по кнопке ОК, панель закрывается, и массив из булевых переменных передаётся в основной прибор.
Затем выбираются элементы с индексом 1 в массивах Исп.датчики и алгоритм, снова открывается лицевая панель SubVI, но в строковом массиве уже стоит пометка, что датчики 1,2,3 уже задействованы.
При этом, если повторно нажать кнопку ДТ с индексом 0, на открывшейся панели будут видны выбранные датчики.
Помогите пожалуйста, в первую очередь сделать выбор датчиков. Не могу понять, что не так(
Вложения
Untitled 1 Folder.zip
(11.78 КБ) 70 скачиваний
Аватара пользователя
zxc_pavel
adviser
adviser
Сообщения: 242
Зарегистрирован: 02 июн 2016, 12:07
Версия LabVIEW: 15
Благодарил (а): 9 раз
Поблагодарили: 23 раза
Контактная информация:

Re: работа с SubVI

Сообщение zxc_pavel »

Я опять запутался...
Почему нельзя сопоставить 2 массива в одной программе? Это намного проще и понятнее было бы
В чем отличие массива исп.датчики в главной программе от массива в subVi, я не могу понять

Логичнее было бы: выбираем только алгоритм - смотрим какие датчики свободны - выбираем - убираем их из свободных.?
Et_cetera
beginner
beginner
Сообщения: 26
Зарегистрирован: 17 окт 2017, 22:53
Версия LabVIEW: 2017

Re: работа с SubVI

Сообщение Et_cetera »

zxc_pavel, в конечной программе там еще все запутанней)) поэтому для удобства пользователя было решено использовать SubVI.

Я поняла, что совсем вас запутала, поэтому предельно упростила. В этой программе надо выбрать операцию (сложение или вычитание) и нажать ОК. в открывшемся окне выбрать два из четырех чисел и нажать ОК. должен вывестись результат сложения или вычитания.
Укажите пожалуйста на мои ошибки. Почему у меня не "отлипает" кнопка ОК в массиве? окно SubVI не закрывается поэтому?
Пробовала делать не с массивами- все получилось. А с ними- почему-то нет(
Вложения
калькулятор.vi
(10.04 КБ) 80 скачиваний
калькулятор (SubVI).vi
(7.74 КБ) 66 скачиваний
Аватара пользователя
zxc_pavel
adviser
adviser
Сообщения: 242
Зарегистрирован: 02 июн 2016, 12:07
Версия LabVIEW: 15
Благодарил (а): 9 раз
Поблагодарили: 23 раза
Контактная информация:

Re: работа с SubVI

Сообщение zxc_pavel »

Добавьте в программку 2 вещи:
1. В Case, где вызывается subVI - добавьте обнуление массивов - (и в сложение и в вычитание), у Вас постоянно в них заходит
2. В том же Case: ПКМ на subVI -> SubVI Node Setup - галки поставить

И перед запуском основной программы закройте subvi
Вложения
1.png
1.png (1.65 КБ) 3056 просмотров
2.png
2.png (20.85 КБ) 3056 просмотров
Et_cetera
beginner
beginner
Сообщения: 26
Зарегистрирован: 17 окт 2017, 22:53
Версия LabVIEW: 2017

Re: работа с SubVI

Сообщение Et_cetera »

zxc_pavel, а в чем разница между галочками в настройках Vi properties -> Windows Appearance -> Custom , и нажатием ПКМ? вроде одни и те же.. в любом случае, это заработало, большое спасибо.
Не подскажите ещё, как сделать так, чтобы при вызове подприбора кнопками с разными индексами (массив из кнопок), в SubVI сбрасывались данные, введеные при вызове подприбора кнопкой с другим индексом? Если поставить обнуление, то сбрасывается везде(
Аватара пользователя
zxc_pavel
adviser
adviser
Сообщения: 242
Зарегистрирован: 02 июн 2016, 12:07
Версия LabVIEW: 15
Благодарил (а): 9 раз
Поблагодарили: 23 раза
Контактная информация:

Re: работа с SubVI

Сообщение zxc_pavel »

Да должен был и так работать... Это одно и то же.
Да по-разному можно, главное не заходить постоянно в нее, например, запоминать нажатия в еще одном массиве и передавать его
Или сделать булеву константу, которая сбрасывается на false при смене состояния, обнулять тогда не надо
Или сделать целочисленную константу, которая будет запоминать последний индекс
Вложения
07.png
07-1.png
07-1.png (10.45 КБ) 3017 просмотров
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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