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

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

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

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

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

Всем хорошего настроения!
У меня усть две :vi: , при этом они обмениваются данными. Но это реализовано через глобальные переменные. Как реализовать обмен данными каким-либо другим, более быстрым и правильным, способом?
Eugene

Activity Bronze
leader
leader
Сообщения: 548
Зарегистрирован: 20 авг 2009, 17:58
Награды: 2
Версия LabVIEW: 2011
Контактная информация:

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

Сообщение Eugene »

через Queue или через Functional Global
We live in a graphical world.
Why not program in one?
Аватара пользователя
Aleksey Feoktistov

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

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

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

Eugene писал(а):через Queue или через Functional Global
Я пробовал сделать через очереди, но реализовать пока не получается. Нельзя ли помочь с примерчиком?
Спс
Аватара пользователя
Pavel Krivozubov

Activity Bronze
professor
professor
Сообщения: 4422
Зарегистрирован: 07 фев 2008, 16:39
Награды: 3
Версия LabVIEW: 7.0 - 2013
Откуда: г. Электросталь
Благодарил (а): 24 раза
Поблагодарили: 9 раз
Контактная информация:

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

Сообщение Pavel Krivozubov »

По моему Notifers наиболее просты для освоения и не менее функциональны чем очереди. Примеры см. в Example Finder на сабжевое слово.
Аватара пользователя
Aleksey Feoktistov

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

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

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

Indey писал(а):По моему Notifers наиболее просты для освоения и не менее функциональны чем очереди. Примеры см. в Example Finder на сабжевое слово.
Indey, спасибо! Получилось, все работает. Пример называется - "Notifier Demultiplexer.vi"
Теперь можно отказаться от локальных и глобальных переменных :thank:
Аватара пользователя
Pavel Krivozubov

Activity Bronze
professor
professor
Сообщения: 4422
Зарегистрирован: 07 фев 2008, 16:39
Награды: 3
Версия LabVIEW: 7.0 - 2013
Откуда: г. Электросталь
Благодарил (а): 24 раза
Поблагодарили: 9 раз
Контактная информация:

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

Сообщение Pavel Krivozubov »

student писал(а): Теперь можно отказаться от локальных и глобальных переменных :thank:
Давно пора! :wink:
Вот кстати для общего развития ссылка на один полезный документ, я его приводил уже в соседней теме, думаю и здесь будет не лишним:
http://www.automationlabs.ru/forum/show ... 2%E8%EB%E0
Аватара пользователя
Aleksey Feoktistov

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

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

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

Indey, спасибо за полезную информацию :super:
Аватара пользователя
grjgrj

Gold Bronze
professional
professional
Сообщения: 300
Зарегистрирован: 18 фев 2009, 14:32
Награды: 2
Версия LabVIEW: 8.5-2011
Откуда: Караганда
Контактная информация:

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

Сообщение grjgrj »

Indey писал(а):По моему Notifers наиболее просты для освоения и не менее функциональны чем очереди. Примеры см. в Example Finder на сабжевое слово.
А мне кажется Notifers тоже опасно использовать как и глобальные переменные, можно же переписать значения, или я ошибаюсь? С Queue все "безопаснее" у них буфер есть.
Аватара пользователя
Pavel Krivozubov

Activity Bronze
professor
professor
Сообщения: 4422
Зарегистрирован: 07 фев 2008, 16:39
Награды: 3
Версия LabVIEW: 7.0 - 2013
Откуда: г. Электросталь
Благодарил (а): 24 раза
Поблагодарили: 9 раз
Контактная информация:

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

Сообщение Pavel Krivozubov »

grjgrj писал(а):
Indey писал(а):По моему Notifers наиболее просты для освоения и не менее функциональны чем очереди. Примеры см. в Example Finder на сабжевое слово.
А мне кажется Notifers тоже опасно использовать как и глобальные переменные, можно же переписать значения, или я ошибаюсь?
Хм, никогда с таким не сталкивался. Может быть тут дело в неправильной организации программы?
Аватара пользователя
Eugen Graf

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

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

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

В случае если получатель на некоторое время загружен другой работой мы имеем потерю данных. В случае с очередями этой проблемы нет.
Вложения
Notifier.png
Аватара пользователя
Aleksey Feoktistov

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

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

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

eg, и вам спасибо за ответы.
Сегодня переделал свою программу кардинально, в итоге осталась всего одна локальная переменная, но она нужна))
Хочу показать что получилось.
Вложения
код.JPG
Аватара пользователя
Aleksey Feoktistov

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

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

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

Хотелось бы задать еще один вопрос в этой теме.
Если у в программе есть Control (у меня Booleon), это значит, что его значение можно изменить только с помощью локальной переменной или есть какой-либо другой способ программно задавать его значения?
Спс
Аватара пользователя
Alex89

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

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

Сообщение Alex89 »

Через Property Node (Value).
Аватара пользователя
Aleksey Feoktistov

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

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

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

Alex89, спасибо за ответ.
Дело в том, что я ищу способ улучшить стиль программирования.
Property Node (Value) лучше локальных переменных? Если да, то почему?
Аватара пользователя
Alex89

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

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

Сообщение Alex89 »

Лучше или нет, это сложный вопрос. Все зависит от задачи. Многие источники рекомендуют избегать использование большого количества локальных и глобальных переменных. Возможно это связано с созданием копий данных при чтении. Однако, локальные переменные будут работать быстрее чем Property Node и рекомендуют их использовать при инициализации. Что касается стиля программирования, мне очень понравилась книга "LabVIEW: Стиль Программирования" (Питер Блюм). Советую почитать!
Ответить

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