Список форумов   Список форумов  

Связь между Вай без коннектора.

Всё о программировании на Labview

Модераторы: Техподдержка NI, Robert, Модератор

Связь между Вай без коннектора.

Сообщение Ella » Вс авг 16, 2009 12:04 pm

Вопрос:
Возможно ли осуществлять связь между Вай без создания коннекторов? Т.е. вызывать субВай и передавать в него данные. Если в субВай имеет множество переменных, то коннектор громоздкий. Для изящности и удобства полезно уметь вызвать субВай (с открытием его панели, без её открытия), изменить переменные, значения элементов управления панели субВай (кнопки, слайдеры, значения констант). Ведь к тому же, коннектору это далеко не всегда по силам. Замешены ли здесь события (events)?
Ella
 
Сообщений: 9
Зарегистрирован: Вс янв 04, 2009 10:49 pm

Сообщение Eugene » Пн авг 17, 2009 8:00 pm

если проблема только в количестве - можно собрать все входы в cluster
есть другие способы, можно использовать functional global, на пример,
посмотри методы синхронизации на www.ni.com
Eugene
Активный пользователь
 
Сообщений: 38
Зарегистрирован: Пн авг 17, 2009 7:46 pm

Нужны возможности event

Сообщение Ella » Чт авг 20, 2009 6:58 am

Спасибо за совет, в кластер собрать данные можно. Но ещё нужно в субВай вызывать события из основного Вай. А это уже не получится, например простой передачей нового значения кнопки (правда/ложь), чтобы запустить event. Надо покапаться именно в event structure, creat User event итд. Чем сейчас и занимаюсь.
Ella
 
Сообщений: 9
Зарегистрирован: Вс янв 04, 2009 10:49 pm

Сообщение FireFly » Чт авг 20, 2009 9:10 am

Лично я иногда генерирую массив ссылок на кучу Controls следующим способом - однократно в начале программы запускаю SubVI (смотри вложенный файл) которая собирает массив reference на все необходимые объекты по их имени (особенно удобно когда объектов очень много, и в их именах существует какая-либо упорядоченность, например они отличаются только номером на конце)

Затем полученный массив reference при необходимости пропускаю однократно через функции To More Specific Class и отправляю в нужные SubVI где делаю с Controls с помощью их Reference всё что душе угодно :) Например управляю их видимостью и прочими Properties.
Вложения
SubVI.zip
(12.46 KiB) Скачиваний: 302
FireFly
Активный пользователь
 
Сообщений: 39
Зарегистрирован: Пн май 18, 2009 11:50 am

Сообщение Eugene » Чт авг 20, 2009 10:07 am

Передавать reference тоже вариант - тогда можно в subVI изменять property node Value (Signaling)- который запускает event в main VI
CLD
Eugene
Активный пользователь
 
Сообщений: 38
Зарегистрирован: Пн авг 17, 2009 7:46 pm

Будь проще - кури с рабочими...

Сообщение Ella » Чт авг 20, 2009 11:18 am

Товарищ Мух, не у всех есть 8.6 версия, можно сохранить для 8.5, хотябы?
Последний раз редактировалось Ella Чт авг 20, 2009 11:27 am, всего редактировалось 2 раз(а).
Ella
 
Сообщений: 9
Зарегистрирован: Вс янв 04, 2009 10:49 pm

Сообщение FireFly » Чт авг 20, 2009 11:21 am

Да там в примере ничего особенного. Просто пример актуальный только для большого количества контролов.
Суть в подходе...

P.S. Я светлячок :oops:
Вложения
SubVI.zip
(11.18 KiB) Скачиваний: 287
FireFly
Активный пользователь
 
Сообщений: 39
Зарегистрирован: Пн май 18, 2009 11:50 am

Вопрос по незнанию

Сообщение Ella » Чт авг 20, 2009 11:28 am

А reference - на что похоже, это что, если по-простому? Ссылка на вызываемый субВай или что-то большее?
P/S Ну ясно, что не жареная муха. :idea: запасной вариант РАО ЕС.
Ella
 
Сообщений: 9
Зарегистрирован: Вс янв 04, 2009 10:49 pm

Сообщение FireFly » Чт авг 20, 2009 11:31 am

Да просто ссылка на объект (на любой объект! Можно создать ссылку на кнопку, на цифровой индикатор, на всю фронтпанель, и т.д. На почти любой объект на ФП можно создать ссылку). Например заведя её в SubVI и подав её на вход PropertyNode или InvokeNode можно делать с контролом на который эта ссылка ведет всё что душе угодно (ну из списка доступных свойств и операций).
FireFly
Активный пользователь
 
Сообщений: 39
Зарегистрирован: Пн май 18, 2009 11:50 am

Сообщение Ella » Чт авг 20, 2009 3:35 pm

Светлячок, а пример то не работает без Главной Вай. Можно её тоже? А вопросы ещё будут.
Ella
 
Сообщений: 9
Зарегистрирован: Вс янв 04, 2009 10:49 pm

Сообщение FireFly » Чт авг 20, 2009 5:16 pm

Вот пример. Если кто-нибудь предложит более оптимальный вариант решения подобной задачи - с удовольствие выслушаю. Задача актуальна!
Вложения
VI.zip
(26.87 KiB) Скачиваний: 294
FireFly
Активный пользователь
 
Сообщений: 39
Зарегистрирован: Пн май 18, 2009 11:50 am

Сообщение FireFly » Чт авг 20, 2009 5:19 pm

Ella, если вопросы ещё будут, то от меня личная просьба - перенесите обсуждение на LabVIEW Portal (ссылка у меня в подписи). Там мне комфортнее :) И форум посимпатичнее, и можно нормально добавлять VI, и кроме меня вам довольно быстр ответят ещё несколько человек, причём советы будут намного проффесиональнее чем мои :)
FireFly
Активный пользователь
 
Сообщений: 39
Зарегистрирован: Пн май 18, 2009 11:50 am

Перехожу на форум

Сообщение Ella » Чт авг 20, 2009 7:40 pm

Можно чуть уточнить на счёт reference. Что за зверь? Так понимаю, что это обширная штука, со скундым хелпом, и хелп контекстом. Просто своими словами, эмоциями.
Ella
 
Сообщений: 9
Зарегистрирован: Вс янв 04, 2009 10:49 pm

Сообщение Eugene » Чт авг 20, 2009 8:01 pm

в общем это "веревочка", которая связывает вас с объектом (контроль, индикатор - не важно)
самый классический пример это остановка while loop в subVI из MainVI. Для этого отправляется reference кнопки "stop" в subVI и там все время проверяется "Value" кнопки
CLD
Eugene
Активный пользователь
 
Сообщений: 38
Зарегистрирован: Пн авг 17, 2009 7:46 pm

Reference

Сообщение Ella » Пт авг 21, 2009 11:43 am

А как правильно инициализировать reference? И какая используется совместно с Generate User Event? Вопрос, конечно, обширный. А если добавить прозрачный пример, плюс ко всему, что уже сказано и сделано.
Ella
 
Сообщений: 9
Зарегистрирован: Вс янв 04, 2009 10:49 pm

След.

Вернуться в LabVIEW

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1