Tab Control spowalnia program :(

Sprawy związane z interfejsem użytkownika - kontrolki, wskaźniki, wyświetlacze, wykresy oraz inne zagadnienia tego typu...
Awatar użytkownika
jogurt_owocowy
Posty: 1317
Rejestracja: 30 lis 2004 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Kraków

Tab Control spowalnia program :(

Post autor: jogurt_owocowy »

Witam wszystkich.
Mam taki problem. Mam program, wszystko gra tak jak powinno i teraz chciałem dodać jedną tylko rzecz na panelu (bez modyfikowania samego programu). Mianowicie zaszła potrzeba pogrupowania kontrolek w dwóch osobnych zakładkach w Tab Control. I okazało się że po tej "operacji" program działa znacznie wolniej, a dokładnie "zacina się" mniej więcej na sekundę w momencie naciśnięcia jakiegoś przycisku czego nie było przed dodaniem Tab Control na panel.
Wie ktoś może dlaczego tak się dzieje i co z tym zrobić? Będę wdzięczny :))
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Re: Tab Control spowalnia program :(

Post autor: Mikrobi »

jogurt_owocowy pisze:Witam wszystkich. Mam taki problem.
Mam program, wszystko gra tak jak powinno i teraz chciałem dodać jedną tylko rzecz na panelu (bez modyfikowania samego programu). Mianowicie zaszła potrzeba pogrupowania kontrolek w dwóch osobnych zakładkach w Tab Control. I okazało się że po tej "operacji" program działa znacznie wolniej, a dokładnie "zacina się" mniej więcej na sekundę w momencie naciśnięcia jakiegoś przycisku czego nie było przed dodaniem Tab Control na panel.
Wie ktoś może dlaczego tak się dzieje i co z tym zrobić? Będę wdzięczny :))
PNTD Pokaż Nam Twój Diagram 8)
pozdrawiam
Mikrobi

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

Post autor: jogurt_owocowy »

Skopiowałem tą cześć programu która wykonuje się w głównej pętli do dwóch plików
http://student.uci.agh.edu.pl/~iron/bez_tab_control.vi
i
http://student.uci.agh.edu.pl/~iron/z_tab_control.vi

W pierwszym pliku wszystko jest ok.
Ten drugi różni się od pierwszego tylko dodanym Tab Control na który zostały przeniesione kontrolki. Pętla tak jakby staje na chwilę w momencie przyciśnięcia jakiegokolwiek przycisku. Dlaczego? Bo chyba same zakładki nie są aż tak procesorowożerne?!

Dziękuję z góry za wszystkie rady :)

PS. Mam dość wolnego kompa (celeron 633). Na szybszych ta różnica szybkości może nie być zauważalna.
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Post autor: Mikrobi »

jogurt_owocowy pisze: W pierwszym pliku wszystko jest ok. Ten drugi różni się od pierwszego tylko dodanym Tab Control na który zostały przeniesione kontrolki. Pętla tak jakby staje na chwilę w momencie przyciśnięcia jakiegokolwiek przycisku.
Dlaczego? Bo chyba same zakładki nie są aż tak procesorowożerne?!
Dziękuję z góry za wszystkie rady :)
1. Jaka to wersja LabVIEW? przypuszczam że przynajmniej 7 ?
2. dlaczego układ jest oparty na pętli while pozbawionej opóźnienia? Skąd to pytanie: LabVIEW ma tendencje do wymuszania na systemie maksymalnej prędkości obsługi petli. Potrzebne jest opóźnienie w trakcie którego system wykona oczekujące zadania.
W przypadku automatu z monetami nie potrzebujesz na pewno minimalnych czasów tylko optymalnego kodu. Stąd pytanie kolejne:
3. Dlaczego nie stosujesz eventów? to znacznie rozwiązalo by problem pętli while.
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
bogdani
Administrator
Posty: 1315
Rejestracja: 30 lip 2003 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Ruda Śląska
Kontakt:

Zdarzenia

Post autor: bogdani »

Mikrobi pisze: Dlaczego nie stosujesz eventów? To znacznie rozwiązalo by problem pętli while.
Święta racja Mikrobi, wtedy program po pierwsze zacząłby pochłaniać mniej zasobów systemu i działałby sprawniej.
Druga sprawa przy taki diagramie jak jest teraz zauważyłem (ale mogę się mylić - bo to są ułamki sekund), iż gdy wrzuciłem kontrolkę z Tab Control do pętli to jakby się pętla wykonywała płynniej. Możesz wrzucić opóźnienie rzędu 1 milisekundy i już możesz otrzymać lepszą pracę programu, a na pewno nie wpłynie to na jego szybkość działania - przynajmniej przy tym zastosowaniu co widzę.
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

Post autor: jogurt_owocowy »

Dzięki wielkie za odpowiedzi.
Jestem dopiero raczkującym użytkownikiem labview, to mój pierwszy program, stąd brak w pętli while opóźnienia. Po jego wstawieniu wszystko jest OK :) Wielkie dzięki.

A tak na marginesie... co to są, tak z grubsza, eventy ?
Awatar użytkownika
jogurt_owocowy
Posty: 1317
Rejestracja: 30 lis 2004 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Kraków

Post autor: jogurt_owocowy »

Aaaa. Odnośnie pytania o wersję labview to było to zrobione w wersji 6.1. Czy to jest jakaś różnica?
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Post autor: Mikrobi »

jogurt_owocowy pisze:Aaaa. Odnośnie pytania o wersję labview to było to zrobione w wersji 6.1.
Czy to jest jakaś różnica?
Tak, od tej wersji sa już dostępne struktury zdarzeń event. Dla takiej aplikacji należało by je zastosować. Mam poza tym kilka uwag co do efektywności diagramu...
8)
pozdrawiam
Mikrobi

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

Post autor: jogurt_owocowy »

Właśnie rozgryzam eventy. A za wszelkie uwagi odnośnie efektywności diagramu będę wdzięczny. Coś co dla Was, starych wyjadaczy jest oczywiste (jak np. to opóźnienie w pętli) dla kogoś kto zaczyna jest zupełnie nowe.

PS. I pozdrowienia dla Mikrobiego. Chyba mieliśmy razem obrazki :)))
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Post autor: Mikrobi »

jogurt_owocowy pisze:Właśnie rozgryzam eventy. A za wszelkie uwagi odnośnie efektywności diagramu będę wdzięczny. Coś co dla Was, starych wyjadaczy jest oczywiste (jak np. to opóźnienie w pętli) dla kogoś kto zaczyna jest zupełnie nowe.
Zatem: diagram o następującej postaci
Obrazek
realizuje jak rozumiem taką operację:
Obrazek
czyli mnoży przez siebie odpowiednie elementy wektorów. Pozostałe wątpliwości - przyciski "WRZUĆ" -
Obrazek mozna to rozwiązać w ten oto sposób
Obrazek
Nieco uprości to diagram. W CASE'ie oczywiście trzeba będzie przemianować przypadek "Default" z 0 na 1 i tam wykonać te tajemnicze operacje na zmiennych lokalnych
:wink:
Ponadto taka struktura aplikacji nie jest właściwa. Zadanie takie powinno być realizowane za pomoca struktury event.
jogurt_owocowy pisze:Chyba mieliśmy razem obrazki :)))
Zatem wie pan jak mnie znaleźć
8)
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
ODPOWIEDZ