Przełączanie pomiędzy zakładkami

Jeśli masz coś do powiedzenia w sprawie LabVIEW napisz. Tutaj są tematy, których nie można uściślić do innych działów.
forgetmenot21
Posty: 25
Rejestracja: 30 mar 2012 21:26
Wersja środowiska: LabVIEW 8.5

Przełączanie pomiędzy zakładkami

Post autor: forgetmenot21 »

Witam,
Mam dwie wersje programu. Chcę aby jedna wersja programu była na jednej zakładce, a druga wersja programu na drugiej zakładce. Jak zrobić żeby można było się przełączać pomiędzy zakładkami i żeby oba programy działały? Bo teraz gdy uruchamiam pierwszy program na jednej zakładce i zbieram dane, to na drugiej zakładce wyskakują błędy. (Są to programy do obsługi miernika LCR. Jeden program jest kopią drugiego ze zmienionymi niektórymi elementami - zamiast kontroli za pomocą panelu mam kontrolę za pomocą pliku konfiguracyjnego.)
Ostatnio zmieniony 23 kwie 2012 13:22 przez forgetmenot21, łącznie zmieniany 1 raz.
AGF
Posty: 109
Rejestracja: 26 lut 2010 13:41
Wersja środowiska: LabVIEW 2010
Lokalizacja: Bydgoszcz

Re: Przełączanie pomiędzy zakładkami

Post autor: AGF »

Nie zmieściłeś diagramu więc zgaduje.
Czy nie jest tak że oba twoje programy próbują się komunikować jednocześnie z twoim miernikiem LRC? Jeżeli jeden podprogram zajmuje urządzenie (otwiera port, pobiera uchwyt etc.) to tym samym uniemożliwia innemu programowi tą sam operację i pewnie w tym tkwi błąd. Przed uruchomieniem kolejnego programu trzeba najpierw zwolnić urządzenia(zamknąć port, zwolnić uchwyt...).

Oczywiście istnieje też możliwość stworzenia zupełnie niskopoziomowej procedury komunikującej się z urządzeniem, która jest sterowana przez dwa warianty twojego programu, ale tonapewno troche więcej pracy.

Co do twojego problemu z tablicami to na pewno znajdziesz rozwiązanie w helpie LV a szczególnie w Help->Find Examples
forgetmenot21
Posty: 25
Rejestracja: 30 mar 2012 21:26
Wersja środowiska: LabVIEW 8.5

Przełączanie pomiędzy zakładkami

Post autor: forgetmenot21 »

Dziękuję. Rzeczywiście chyba jest tak, że oba programy próbują się komunikować z miernikiem, ale ponieważ w jednym nie ma wybranego portu (VISA resource name) więc dostaję błędy.
Zastanawiam się nad takim rozwiązaniem ze strukturą case ze strony z dokumentacją Creating Tab Controls: http://zone.ni.com/reference/en-XX/help ... _controls/:
Tip You can wire the enumerated control terminal of the tab control to the selector of a Case structure to produce cleaner block diagrams. With this method, you associate each page of the tab control with a subdiagram in the Case structure. You place the control and indicator terminals from each page of the tab control—as well as the block diagram nodes and wires associated with those terminals—into the subdiagrams of the Case structure.
, tylko nie wiem jak to do końca zrealizować. Chciałabym zrobić tak, żeby był jakiś przełącznik na panelu, dzięki któremu można wybrać opcję programu (z kontrolą za pomocą panelu lub za pomocą pliku konfiguracyjnego). Oprócz tego np. opcję stop. Czy można to zrobić za pomocą struktury Case?
Załączniki
Kopia Agilent E4980 Read Measurement_10.vi
(45.55 KiB) Pobrany 394 razy
MicMac89
Posty: 122
Rejestracja: 05 wrz 2011 20:40
Wersja środowiska: LabVIEW 2011

Przełączanie pomiędzy zakładkami

Post autor: MicMac89 »

Łącząc kontrolkę Tab do wejścia wyboru struktury Case uzyskasz właśnie taki efekt, Gdyby wybór zakładki był tylko raz przed uruchomieniem programu, to tutaj nie ma problemu, przekazujesz wybraną zakładkę do pętli głównej programu, przy okazji blokujesz drugą zakładkę i odwrotnie. Gdy ma się to dziać w trakcie wykonywania programu, to zastanawiam się, czy nie wystarczyło by po prostu przekazać referencji np. za pomocą Shift Register. Jak rozumiem pomiar wykonuje się po konfiguracji tylko raz, czy też ciągle?
Certified LabVIEW Associate Developer
forgetmenot21
Posty: 25
Rejestracja: 30 mar 2012 21:26
Wersja środowiska: LabVIEW 8.5

Re: Przełączanie pomiędzy zakładkami

Post autor: forgetmenot21 »

Dzięki. Czyli coś takiego jak na rysunku będzie działało? Wybór zakładki będzie raczej tylko raz przed uruchomieniem programu. Program będzie wykonywany po konfiguracji parę razy, na razie tylko w czasie testów ustawiłam zewnętrzną pętle na 1 iterację.
Załączniki
Fragment.JPG
Fragment.JPG (3.41 KiB) Przejrzano 11365 razy
MicMac89
Posty: 122
Rejestracja: 05 wrz 2011 20:40
Wersja środowiska: LabVIEW 2011

Przełączanie pomiędzy zakładkami

Post autor: MicMac89 »

Jak najbardziej to będzie działało. Część kontrolek jest wspónych dla obu zakładek, jak załączysz VI to pokażę Ci jak uczynić je dostępnymi dla obu zakładek bez konieczności tworzenia dwóch zmiennych (jak np. w przypadku referencji).
Jeśli program ma się wykonywać po konfiguracji kilkukrotnie rozważ umieszczenie Case Structure przed pętlą główną, wówczas ustawisz miernik jednokrotnie i wykonasz odpowiednią serię pomiarów.
Ostatnio zmieniony 24 kwie 2012 20:30 przez MicMac89, łącznie zmieniany 1 raz.
Certified LabVIEW Associate Developer
forgetmenot21
Posty: 25
Rejestracja: 30 mar 2012 21:26
Wersja środowiska: LabVIEW 8.5

Re: Przełączanie pomiędzy zakładkami

Post autor: forgetmenot21 »

Dziękuję, załączam vi (dla pełnego wyświetlenia konieczne są sterowniki do miernika LCR Agilent E980A ze strony http://sine.ni.com/apps/utf8/niid_web_d ... 03BA7CCD71 - ja mam dla wersji LabVIEW 2009).
Załączniki
Kopia Agilent E4980 Read Measurement_10.vi
(62.15 KiB) Pobrany 375 razy
MicMac89
Posty: 122
Rejestracja: 05 wrz 2011 20:40
Wersja środowiska: LabVIEW 2011

Przełączanie pomiędzy zakładkami

Post autor: MicMac89 »

Kilka uwag praktycznych do tworzonego programu, a w zasadzie jego kodu:
1. Umieść wszystkie kontrolki wejściowe po lewej stronie, zaś wskaźniki (Indicators) po prawej stronie,
2. Staraj się łączyć kolejne bloki tak aby odzwierciedlały wykonywanie się kodu programu, tj. najpierw utworzenie pliku konfiguracyjnego, potem jego wysłanie, odczyt wartości przez miernik, zapis. Do tego celu bardzo dobrze jest zastosować sygnał błędu (error), niepotrzebnie utworzyłaś kontrolki błędu dla wszystkich wykorzystywanych funkcji. Powinien być jedna kontrolka wejściowa i jedna wyjściowa do wyświetlenia błędu. (tak jak to poprawiłem).
3. Dodaj opisy do "przewodów" poprzez komentarze (dwukrotne kliknięcie w puste pole na diagramie) i wpisanie krótkiego opisu.W ten sposób kod będzie odzwierciedlał przepływ danych zgodnie z "left-to-right data flow standard". Niech kolejne bloki tworzą łańcuch, a "przewód" błędu będzie w miarę możliwości linią prostą.
Diagram blokowy najlepiej by był przewijany tylko w jednym kierunku.
Myślę, że warto o tym pomyśleć, gdy aplikacja realizuje swoje zadanie prawidłowo.
Wydzielenie referencji nie wygląda najlepiej, jednak można część wspólną dla obu zakładek wydzielić i przekazać do struktury Case tak jak zrobiłem to z referencją. W razie pytań pisz śmiało.
Załączniki
Kopia Agilent E4980 Read Measurement_10.vi
(39.55 KiB) Pobrany 364 razy
Certified LabVIEW Associate Developer
forgetmenot21
Posty: 25
Rejestracja: 30 mar 2012 21:26
Wersja środowiska: LabVIEW 8.5

Re: Przełączanie pomiędzy zakładkami

Post autor: forgetmenot21 »

Niestety nie mogę otworzyć pliku, bo mam wersję LabVIEW 2009. Czy mogłabym poprosić o zapisanie w starszej wersji? Dziękuję za uwagi, właśnie też chciałam prosić żeby ktoś krytycznie spojrzał również na całą strukturę programu, bo jest to moja pierwsza "poważniejsza" aplikacja :)
MicMac89
Posty: 122
Rejestracja: 05 wrz 2011 20:40
Wersja środowiska: LabVIEW 2011

Re: Przełączanie pomiędzy zakładkami

Post autor: MicMac89 »

Od czegoś trzeba zacząć. Podane przeze mnie uwagi dotyczą podstawowych zasad, jak się z nimi uporasz, to podeślij plik ponownie, by go ocenić i ewentualnie zasugerować dalsze ulepszenia.
Załączniki
Kopia Agilent E4980 Read Measurement_10.vi
(50.41 KiB) Pobrany 373 razy
Certified LabVIEW Associate Developer
forgetmenot21
Posty: 25
Rejestracja: 30 mar 2012 21:26
Wersja środowiska: LabVIEW 8.5

Re: Przełączanie pomiędzy zakładkami

Post autor: forgetmenot21 »

Witam, po długim czasie temat programu powrócił:-). W jaki sposób robi się takie wydzielenie referencji? Ponieważ chciałabym dla wspólnego dla obu zakładek bloczka error in zrobić to samo co dla bloczka VISA resource name i może również dla error out? Czy można zrobić po prostu error in i error out wspólne dla obu zakładek i wyświetlane na każdej z nich tak jak VISA resource name?

Czy program po poprawkach wygląda już dobrze? Na razie nie dodałam jeszcze komentarzy, ale wiem, że powinny się tam znaleźć.
Załączniki
Program_do_obsługi_Agilent_E4980A.vi
(61.94 KiB) Pobrany 423 razy
ODPOWIEDZ