Обмен данными между ВП

Обсуждение, связанное с разработкой ПО верхнего уровня
Аватара пользователя
Aleksey Feoktistov

Activity Gold Silver Black
leader
leader
Сообщения: 898
Зарегистрирован: 20 янв 2009, 00:15
Награды: 6
Версия LabVIEW: 2015
Откуда: Tyumen
Поблагодарили: 2 раза
Контактная информация:

Re: Обмен данными между ВП

Сообщение Aleksey Feoktistov »

Питера Блюма я уже давненько читаю, и ":labview: для всех" постоянно перед глазами держу, справочник по функциям тоже помогает, да и другой литературы много, но вопросы все равно остаются.
Аватара пользователя
Alex89

Activity
adviser
adviser
Сообщения: 202
Зарегистрирован: 04 апр 2010, 18:20
Награды: 1
Версия LabVIEW: 2009 SP1
Откуда: Санкт-Петербург

Re: Обмен данными между ВП

Сообщение Alex89 »

Питера Блюма я уже давненько читаю, и ":labview: для всех" постоянно перед глазами держу
Тогда ты должен знать, что признаком хорошего стиля является умение управлять потоком данных, приняв правило не использовать переменные и последовательности, кроме исключительных случаев. :wink:
Аватара пользователя
mzu2006

Professionalism Tutorials Black
doctor
doctor
Сообщения: 2456
Зарегистрирован: 16 авг 2008, 02:12
Награды: 3
Версия LabVIEW: 7.1 10 11 12
Откуда: St-Petersburg (RU), Phila, Boston, Washington DC
Контактная информация:

Re: Обмен данными между ВП

Сообщение mzu2006 »

Назначение property node->value - это инкапсуляция работы с пользовательским интерфейсом. (Когда хочешь обновить значение индикатора из sub :vi:). Я бы не стал использовать этот механизм ни для чего другого.

Обновление индикатора в правильно структурированной программе, ПМСМ, должно происходить в одном и только одном месте.

Для обновления control'а - т.е. как правило для его инициализации - подходит локальная переменная.

Ну и для всяких асинхронный запусков Invoke node->"Set Vaue by name"
Аватара пользователя
Aleksey Feoktistov

Activity Gold Silver Black
leader
leader
Сообщения: 898
Зарегистрирован: 20 янв 2009, 00:15
Награды: 6
Версия LabVIEW: 2015
Откуда: Tyumen
Поблагодарили: 2 раза
Контактная информация:

Re: Обмен данными между ВП

Сообщение Aleksey Feoktistov »

Вывод:
есть всего два способа изменять значения Controla программно:
1. Локальные переменные
2. Property Node (Value)
и из них предпочтительнее локальные переменные (другого способа нет)
Я правильно понял?
Аватара пользователя
mzu2006

Professionalism Tutorials Black
doctor
doctor
Сообщения: 2456
Зарегистрирован: 16 авг 2008, 02:12
Награды: 3
Версия LabVIEW: 7.1 10 11 12
Откуда: St-Petersburg (RU), Phila, Boston, Washington DC
Контактная информация:

Re: Обмен данными между ВП

Сообщение mzu2006 »

3 Способ: открыть ссылку на :vi: через VI сервер потом Invoke node->"Control Value:Set"
есть ещё value(signaling).

Что использовать определяется поставленной задачей.
Например, при необходимости инициализации небольшого, жёстко определённого количества controls перед началом основной работы VI я бы использовал локальные переменные.
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Обмен данными между ВП

Сообщение Eugen Graf »

Есть ещё один способ прикрутки через Data Binding, который я ни разу не использовал.
Вложения
Sposob.png
Аватара пользователя
Aleksey Feoktistov

Activity Gold Silver Black
leader
leader
Сообщения: 898
Зарегистрирован: 20 янв 2009, 00:15
Награды: 6
Версия LabVIEW: 2015
Откуда: Tyumen
Поблагодарили: 2 раза
Контактная информация:

Re: Обмен данными между ВП

Сообщение Aleksey Feoktistov »

mzu2006 и eg, спасибо вам за ответы. Буду эксперементировать, используя ваши предложения :thank:
Ответить

Вернуться в «Лицевая панель»