Rekurencja w LabVIEW

Tematy związane z tworzeniem dużych aplikacji. Zaganiednia dotyczące architektury oraz zasad tworzenia optymalnych rozwiązań.
Awatar użytkownika
jogurt_owocowy
Posty: 1317
Rejestracja: 30 lis 2004 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Kraków

Re: Rekurencja w LabVIEW

Post autor: jogurt_owocowy »

Możliwe że ja tego zrobić nie umiem ale jeśli faktycznie istnieje takie ograniczenie to LV ma ode mnie duży minus.
Ty zaś powinieneś dostać duży minus za niepodanie wersji LV której używasz ;)
A tak na serio: umiesz to zrobić, a to czy jesteś w stanie, to już zależy od używanej wersji. W 8.5 (tu na pewno, a z tego co miałem się czas zorientować, także w 8.2 i 8.0) wystarczy zaznaczyć stosowną opcję: File -> VI Properties -> Window Appearance -> Customize -> Show front panel when called
W wersji 7.1 i wcześniejszych NIE MOŻNA tego zrobić (w prosty sposób).
Pozdrawiam ]
Ostatnio zmieniony 10 sty 2008 11:35 przez jogurt_owocowy, łącznie zmieniany 1 raz.
Pierre
Posty: 13
Rejestracja: 27 cze 2007 00:00

Rekurencja w LabVIEW

Post autor: Pierre »

Szanowny Panie Moderatorze :)
Wersja LabVIEW jakiej używam jest napisana w profilu. Mój błąd - nie napisałem w poście, kajam się i dziękuję za naprowadzenie na jedyną, słuszną ścieżkę ;)
A co do Front Panelu to faktycznie mimo długiego czasu przesiedzianego nad tym VI'sem nie wpadłem na to, że mnogość opcji w zakładce Customize może być tak przeogromna. Prościej jest to zrobione w SubVI Node Setup gdzie od razu widać.
Niemniej odwołuję wszystko co powiedziałem. LV obsługuje rekurencję i wszystko działa jak sobie programista zażyczy. I teraz nawet wiem jak! :]
Dziękuję i pozdrawiam!
Awatar użytkownika
jogurt_owocowy
Posty: 1317
Rejestracja: 30 lis 2004 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Kraków

Re: Rekurencja w LabVIEW

Post autor: jogurt_owocowy »

Szanowny Pierre...
Myślę, że możemy sobie tu pisać po imieniu - nie potrzeba tych "panów".
Wersja LabVIEW jakiej używam jest napisana w profilu.
Ja po kliknięciu w Twój profil widzę tyle:
[img]http://labview.pl/uploads/veir/profil.gif[/img]
Dlaczego - nie wiem. Ktoś wie?
Ale nawet poza tym, czy jeśli kiedyś zmienisz wersję LV na 10, to czy będziesz pamiętać o zmianie wpisu w swoim profilu? A co jeśli używasz kilku wersji (zresztą w profilu da się ustawić tylko jedną)? Przecież konkretnego projektu najpewniej nie robisz we wszystkich naraz.
bogdani
Administrator
Posty: 1315
Rejestracja: 30 lip 2003 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Ruda Śląska
Kontakt:

Re: Rekurencja w LabVIEW

Post autor: bogdani »

Witam

To ja włączę się z małym :offtopic:

Ja widzę wersje LV w profilu wszystkich i myślałem że każdy to widzi.

Ot niespodzianka. Trzeba ten problem rozwiązać.

bogdani
Ktoś ci pomógł na forum? Podziękuj dając pochwałę.

Obrazek Obrazek Obrazek
Awatar użytkownika
jogurt_owocowy
Posty: 1317
Rejestracja: 30 lis 2004 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Kraków

Re: Rekurencja w LabVIEW

Post autor: jogurt_owocowy »

Czyżbyśmy znaleźli buga na lv.pl?

W niczyim profilu nie widzę wersji LV poza swoim. Jeśli to coś pomoże, to używam Firefoxa 2.0.0.11, a w IE 6.0.2900.2180 jest tak samo.

Walcz bogdani! :)

Ale mimo wszystko byłbym i tak za związaniem wersji LV nie z profilem użytkownika, a z konkretnym postem. Tak jest sensowniej, tym bardziej, że w profilu da się ustawić tylko jedną wersję, więc co jeśli ktoś używa kilku?
Pierre
Posty: 13
Rejestracja: 27 cze 2007 00:00

Rekurencja w LabVIEW

Post autor: Pierre »

@jogurt_owocowy

Faktycznie w profilach innych użytkowników nie widać tej informacji. Ale nie tylko ja byłem w błędzie :)
Co prawda mój problem już nie jest aktualny ale żeby stało się zadość dopiszę że chodziło o wersję LV <b>8.2</b>
bogdani
Administrator
Posty: 1315
Rejestracja: 30 lip 2003 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Ruda Śląska
Kontakt:

Re: Rekurencja w LabVIEW

Post autor: bogdani »

Panowie koniec
:offtopic:
bo zaraz podzielę temat...
Pierre możesz się podzielić z innymi kolegami swoim rozwiązaniem i przyczynić się do niezadawania tych samych pytań przez zamieszczenie rozwiązania.
bogdani
Ktoś ci pomógł na forum? Podziękuj dając pochwałę.

Obrazek Obrazek Obrazek
Pierre
Posty: 13
Rejestracja: 27 cze 2007 00:00

Re: Rekurencja w LabVIEW

Post autor: Pierre »

OK
Zatem podsumowując: W LV 8.2 rekurencyjne wywoływanie VI należy zacząć od ustawienia opcji File > VI Properties > Execution > Reentrant execution oraz: File > VI Properties > Window Appearance > Customize > Show front panel when called VI należy wywoływać za pomocą Call By Reference Node, do którego podłączamy Open VI Reference ze stałą 8 na wejściu opcji oraz ścieżką dostępu do VI. Następnie klikamy na terminal type specifier VI refnum i wybieramy create > constant. Klikamy na utworzony element i wybieramy nasz VI Select VI Server Class > Browse. Oczywiście na koniec zamykamy referencję Close VI Reference.
I w zasadzie to tyle :) Pozdrawiam! Pierre
Awatar użytkownika
maszup
Posty: 57
Rejestracja: 04 sty 2007 00:00
Lokalizacja: Wrocław

Re: Rekurencja w LabVIEW

Post autor: maszup »

ja bym to zrobil iteracyjnie w petli while, zawsze na poczatku otwieral ten sam VI razem z front panelem, nastepnie po wyjsciu wyniki zapisywal do shift register i tak w kolko.
Pierre
Posty: 13
Rejestracja: 27 cze 2007 00:00

Re: Rekurencja w LabVIEW

Post autor: Pierre »

@fonzo
Oczywiście że można tak zrobić ale z czystej ciekawości chciałem zastosować rekurencyjne wywoływanie. Zresztą już w tym wątku były przedstawiane dowody że każdy program można zapisać zarówno iteracyjnie jak i rekurencyjnie wątek (PMaj - jogurt_owocowy). Takie rzeczy zwyczajnie warto wiedzieć ;)
ODPOWIEDZ