SubVI

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

Activity
professional
professional
Сообщения: 301
Зарегистрирован: 12 июн 2008, 19:56
Награды: 1
Версия LabVIEW: 8.6; 2009
Откуда: Montreal
Контактная информация:

SubVI

Сообщение alexander756 »

Всем привет. У меня такой вопрос: у меня в программе есть повторяющиеся блоки и я решил сделать этот блок как SubVI а затем вставить в основную программу. Так вот эти SubVI нехотят работать независимо друг от друга, данные в них как бы пересекаются, в чем дело, как от этого избавиться, или что я делаю неправильно?
Аватара пользователя
Eugen Graf

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

Re: SubVI

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

Можно в принципе сделать эти подприборы реинтрантными, тогда для кождого подприбора будет создана отдельная инстанция со свей отдельной памятью.

Но такое требуется в редких случаях. Скорее всего есть выход проще. Скрин прибора не помешал бы разобраться.
alexander756

Activity
professional
professional
Сообщения: 301
Зарегистрирован: 12 июн 2008, 19:56
Награды: 1
Версия LabVIEW: 8.6; 2009
Откуда: Montreal
Контактная информация:

Re: SubVI

Сообщение alexander756 »

Что отображено как иконки это входы с выходами. Надо одни данные отправлять на один порт а другие на другой
Вложения
1.JPG
Аватара пользователя
Eugen Graf

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

Re: SubVI

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

Я думаю что в данном случае можно на самом деле использовать реинтрантность, т.к. в подприборе имеется цикл. Эту установку можно проделать в свойствах подприбора или же в свойствах узла при вызове.
alexander756

Activity
professional
professional
Сообщения: 301
Зарегистрирован: 12 июн 2008, 19:56
Награды: 1
Версия LabVIEW: 8.6; 2009
Откуда: Montreal
Контактная информация:

Re: SubVI

Сообщение alexander756 »

А как это делается, это здесь? или где эти свойства подприбора, как их вызвать? :think:
Вложения
2.JPG
2.JPG (15.43 КБ) 10623 просмотра
alexander756

Activity
professional
professional
Сообщения: 301
Зарегистрирован: 12 июн 2008, 19:56
Награды: 1
Версия LabVIEW: 8.6; 2009
Откуда: Montreal
Контактная информация:

Re: SubVI

Сообщение alexander756 »

Все нашел сам :wink:
alexander756

Activity
professional
professional
Сообщения: 301
Зарегистрирован: 12 июн 2008, 19:56
Награды: 1
Версия LabVIEW: 8.6; 2009
Откуда: Montreal
Контактная информация:

Re: SubVI

Сообщение alexander756 »

Спасибо большое, все работает теперь как надо, только иногда данные теряются (раньше тоже), как теперь от этого избавиться?
Аватара пользователя
Eugen Graf

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

Re: SubVI

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

Обьясни что ты хочешь сделать и покажи скрин прибора который вызывает этот подприбор.
alexander756

Activity
professional
professional
Сообщения: 301
Зарегистрирован: 12 июн 2008, 19:56
Награды: 1
Версия LabVIEW: 8.6; 2009
Откуда: Montreal
Контактная информация:

Re: SubVI

Сообщение alexander756 »

Есть конвеер с тремя деталями. Надо сделать чтобы я мог выбирать для каждой детали где она выйдет с конвеера (exit1; 2; 3) или отправляется на точно такой же конвеер который расположен вслед за этим
Вложения
3.JPG
alexander756

Activity
professional
professional
Сообщения: 301
Зарегистрирован: 12 июн 2008, 19:56
Награды: 1
Версия LabVIEW: 8.6; 2009
Откуда: Montreal
Контактная информация:

Re: SubVI

Сообщение alexander756 »

Когда след. конвеер принимает данные он иногда теряет деталь
Вложения
4.JPG
alexander756

Activity
professional
professional
Сообщения: 301
Зарегистрирован: 12 июн 2008, 19:56
Награды: 1
Версия LabVIEW: 8.6; 2009
Откуда: Montreal
Контактная информация:

Re: SubVI

Сообщение alexander756 »

Все, я нашел ошибку. Просто иногда отправлялась не единица, а двойка
Аватара пользователя
Eugen Graf

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

Re: SubVI

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

В программе может терятся какая либо информация если ты используешь какие либо переменные вместо буферов. Предлагаю построить всю прогу секвенциально и на очередях. И если тогда всё ещё будет терятся какая либо информация, то дело скорее всего в свитч кейсах, но это можно продибагить.

Иначе я хочу сказать что твоя прога не такая простая чтобы что либо сразу посоветовать.
Ответить

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