работа с SubVI

Простейшие вопросы в области инженерной разработки

работа с SubVI

Postby Et_cetera on 04 Nov 2017, 22:23

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

В качестве примера использовала встроенные примеры LabVIEW, но видимо не разобралась до конца.
Attachments
Программа.vi
(12.28 KiB) Downloaded 7 times
Untitled 8 (SubVI).vi
(7.91 KiB) Downloaded 8 times
Et_cetera
beginner
beginner
 
Posts: 15
Joined: 17 Oct 2017, 22:53
LabVIEW Version: 2017
Karma: 0

Re: работа с SubVI

Postby zxc_pavel on 04 Nov 2017, 23:38

VI не закрывалась по 2 причинам: Вы не меняли в параметрах File -> Vi properties -> Windows Appearance -> Custom - там 2 галки надо open и close. И вы не меняли массив после выхода -> условие каждую итерацию срабатывало бы.
Ну и я запутался, пытаясь понять что надо в итоге сделать)
Attachments
Программа.vi
(19.97 KiB) Downloaded 6 times
Untitled 8.vi
(13.31 KiB) Downloaded 7 times
zxc_pavel
user
user
 
Posts: 73
Joined: 02 Jun 2016, 12:07
LabVIEW Version: 14
Karma: 64

Re: работа с SubVI

Postby Et_cetera on 05 Nov 2017, 16:31

zxc_pavel, я поставила галки,где вы сказали.
И вы не меняли массив после выхода
это значит, надо поставить значения Folse для массива или что? Я заметила, что после нажатия кнопки ДТ ваши "отлипают", а мои нет, ( mechanical action стоит тоже).
Ну и я запутался, пытаясь понять что надо в итоге сделать)
Да, пожалуй я и правда путано написала. ((
В общих чертах, это программа по управлению реле. нажатием элементов в массиве "алгоритм" выбирается, будет работать реле по заданному алгоритму или нет. если да, то выбираются датчики с которыми это реле работает. Датчики как раз выбираются в окошке SubVI.
грубо говоря, если оба элемента с индексом 0 массивов Исп.датчики и Алгоритм имеют значение True, то в открывшемся SubVi выбираются датчики 1,2,3. по кнопке ОК, панель закрывается, и массив из булевых переменных передаётся в основной прибор.
Затем выбираются элементы с индексом 1 в массивах Исп.датчики и алгоритм, снова открывается лицевая панель SubVI, но в строковом массиве уже стоит пометка, что датчики 1,2,3 уже задействованы.
При этом, если повторно нажать кнопку ДТ с индексом 0, на открывшейся панели будут видны выбранные датчики.
Помогите пожалуйста, в первую очередь сделать выбор датчиков. Не могу понять, что не так(
Attachments
Untitled 1 Folder.zip
(11.78 KiB) Downloaded 8 times
Et_cetera
beginner
beginner
 
Posts: 15
Joined: 17 Oct 2017, 22:53
LabVIEW Version: 2017
Karma: 0

Re: работа с SubVI

Postby zxc_pavel on 06 Nov 2017, 08:19

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

Логичнее было бы: выбираем только алгоритм - смотрим какие датчики свободны - выбираем - убираем их из свободных.?
zxc_pavel
user
user
 
Posts: 73
Joined: 02 Jun 2016, 12:07
LabVIEW Version: 14
Karma: 64

Re: работа с SubVI

Postby Et_cetera on 06 Nov 2017, 20:21

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

Я поняла, что совсем вас запутала, поэтому предельно упростила. В этой программе надо выбрать операцию (сложение или вычитание) и нажать ОК. в открывшемся окне выбрать два из четырех чисел и нажать ОК. должен вывестись результат сложения или вычитания.
Укажите пожалуйста на мои ошибки. Почему у меня не "отлипает" кнопка ОК в массиве? окно SubVI не закрывается поэтому?
Пробовала делать не с массивами- все получилось. А с ними- почему-то нет(
Attachments
калькулятор.vi
(10.04 KiB) Downloaded 3 times
калькулятор (SubVI).vi
(7.74 KiB) Downloaded 5 times
Et_cetera
beginner
beginner
 
Posts: 15
Joined: 17 Oct 2017, 22:53
LabVIEW Version: 2017
Karma: 0

Re: работа с SubVI

Postby zxc_pavel on 06 Nov 2017, 20:43

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

И перед запуском основной программы закройте subvi
Attachments
1.png
1.png (1.65 KiB) Viewed 137 times
2.png
2.png (20.85 KiB) Viewed 137 times
zxc_pavel
user
user
 
Posts: 73
Joined: 02 Jun 2016, 12:07
LabVIEW Version: 14
Karma: 64

Re: работа с SubVI

Postby Et_cetera on 07 Nov 2017, 22:33

zxc_pavel, а в чем разница между галочками в настройках Vi properties -> Windows Appearance -> Custom , и нажатием ПКМ? вроде одни и те же.. в любом случае, это заработало, большое спасибо.
Не подскажите ещё, как сделать так, чтобы при вызове подприбора кнопками с разными индексами (массив из кнопок), в SubVI сбрасывались данные, введеные при вызове подприбора кнопкой с другим индексом? Если поставить обнуление, то сбрасывается везде(
Et_cetera
beginner
beginner
 
Posts: 15
Joined: 17 Oct 2017, 22:53
LabVIEW Version: 2017
Karma: 0

Re: работа с SubVI

Postby zxc_pavel on 07 Nov 2017, 23:27

Да должен был и так работать... Это одно и то же.
Да по-разному можно, главное не заходить постоянно в нее, например, запоминать нажатия в еще одном массиве и передавать его
Или сделать булеву константу, которая сбрасывается на false при смене состояния, обнулять тогда не надо
Или сделать целочисленную константу, которая будет запоминать последний индекс
Attachments
07.png
07-1.png
07-1.png (10.45 KiB) Viewed 98 times
zxc_pavel
user
user
 
Posts: 73
Joined: 02 Jun 2016, 12:07
LabVIEW Version: 14
Karma: 64


Return to Для чайников

Who is online

Users browsing this forum: Yahoo and 8 guests

cron