Sterowanie aplikacja pomairowa za pomocą przyciskow

Tematy związane z tworzeniem dużych aplikacji. Zaganiednia dotyczące architektury oraz zasad tworzenia optymalnych rozwiązań.
darekkowalcz
Posty: 6
Rejestracja: 25 sty 2013 22:19
Wersja środowiska: LabVIEW 2010

Sterowanie aplikacja pomairowa za pomocą przyciskow

Post autor: darekkowalcz »

Witam

Pracuje właśnie nad pracą inżynierską w LabVIEW i mam problem. Tworzę aplikację która ma przeprowadzić pomiary charakterystyk amplitudowych. program działa po wcisnieciu przycisku pomiar wykonuje pomiar i zapis do wybranych plików. Chciałbym go rozszerzyć tak żeby na tym samym panelu dodać przycisk kalibracja a po jego wciśnieciu zeby byly przeprowadzane takie same programy czyli ten sam kod programu był wykonywany z tą różnicą ze pomiary zapisywane będą pod nazwą Kalibracja i data a nie jak teraz Pomiar i data. Prosze o pomoc bo kombinuje coś ze struktórą event ale coś mi nei idzie. Z góry dziękuję za podpowiedzi również te na temat optymalizacji stróktóry programu. W załączniku zdjęcia
Ostatnio zmieniony 25 maja 2013 08:15 przez darekkowalcz, łącznie zmieniany 1 raz.
Awatar użytkownika
Góras
Posty: 88
Rejestracja: 13 sie 2012 10:15
Wersja środowiska: LabVIEW 2012

Sterowanie aplikacja pomairowa za pomocą przyciskow

Post autor: Góras »

Możesz to zrobić tak:

Na Front Panel wrzucasz przycisk z Mechanical Action ustawionym na Switch When Pressed. W Properties ustawiasz dwie nazwy - dla False 'Pomiar' dla True 'Kalibracja' lub na opak, wedle uznania :) Ów przycisk na Block Diagramie umieszczasz w drugiej ramce struktury sekwencji - podłączasz go do Select, do True String 'Kalibracja' do False String 'Pomiar' (lub na opak jeśli tak uznałeś wcześniej). Do obu Case Structure (tych w drugiej ramce) wkładasz Concentrate Strings - na górze podpinasz wyjście Select, na dole string ' z %d%m...' czyli to co masz podpięte do Time Format String funkcji Format Date/Time String bez 'Pomiar'. Wyjście Concentrate Strings podpinasz do Time Format String funkcji Format Date/Time String i powinno działać :)

Co do programu to masz w nim dwie pętle while, które wykonują się tylko raz, wydaje mi się, że funkcjonalność programu nie ucierpi jeżeli je usuniesz (tylko nie usuwaj ich zawartości :) )

I jeszcze jedna rzecz - jest taka złota zasada programowania w LabVIEW - dobry program to taki, który mieści się na ekranie monitora. Fakt, że musiałeś zrobić dwa print screen'y świadczy o tym, że najwyraźniej masz za mały monitor :D
darekkowalcz
Posty: 6
Rejestracja: 25 sty 2013 22:19
Wersja środowiska: LabVIEW 2010

Re: Sterowanie aplikacja pomairowa za pomocą przyciskow

Post autor: darekkowalcz »

Dzięki za podpowiedź dotyczącą tych niepotrzebnych pętli. Pozbyłem się ich i nic nie zmieniło się jeśli chodzi o działanie programu. Ogarnołem tez program żeby mieścił się na jednym ekranie i rzeczywiście lepiej się na niego teraz patrzy i łatwiej coś wywnioskować. A jeśli chodzi o rozwiązanie mojego największego problemu to nie dokładnie chodziło mi o takie rozwiązanie. Jeśli chodzi o zapis to jak najbardziej w ten sposób zapisuje tak jak chce żeby to robił. Ale chciałbym mieć dwa osobne przyciski i tak jak wciskam przycisk Kalibracja to wykonuje się program oraz zapisuje pliki pomiarowe jako kalibracja a jak wciskam przycisk pomiar to wykonuje znów pomiary. Chcę to tak rozwiązać żeby później dodać osobne tablicę w których zapisze się kalibracja osobną w której zapisze się pomiar a na końcu zostanie wykonane działanie na tablicach i zapisywany będzie pomiar po kalibracji. Oczywiście ta druga część to jak mi do marca starczy czasu.
Awatar użytkownika
Góras
Posty: 88
Rejestracja: 13 sie 2012 10:15
Wersja środowiska: LabVIEW 2012

Re: Sterowanie aplikacja pomairowa za pomocą przyciskow

Post autor: Góras »

A więc przygotowałam dwa warianty:

Wersja 1 - do Case 'Pomiar' wrzucasz cały kod z pomiarem i ten sam kod wrzucasz do Case 'Kalibracja' z innymi nazwami plików do zapisu i innymi tablicami. Jest jedna wada tego rozwiązania - powielasz kod, ale przynajmniej wiesz, co się gdzie dzieje.

Wersja 2 - skoro pomiar i kalibracja wygląda tak samo, to można je obsłużyć w tym samym Case i sprawdzić czy wykonała się kalibracja czy pomiar jak już się wszystko pomierzy do wewnętrznej Case Structure wrzucasz wtedy nazwy plików (zapis wygląda tak samo, więc można go zrobić poza Case Structure) oraz zapis do tablicy - dwóch różnych.

Kod przed strukturą Case to sprawdzanie, który przycisk został wciśnięty - wrzucanie wartości przycisków do tablicy, wyszukiwanie wartości True (wciśnięty) i rzutowanie na enum'a co by w Case były nazwy a nie numery.

Do wyboru do koloru - chyba, że nie o to chodziło :)
Załączniki
Pomiar i kalibracja wesja 2.vi
(15.16 KiB) Pobrany 435 razy
Pomiar i kalibracja wesja 1.vi
(14.23 KiB) Pobrany 430 razy
darekkowalcz
Posty: 6
Rejestracja: 25 sty 2013 22:19
Wersja środowiska: LabVIEW 2010

Re: Sterowanie aplikacja pomairowa za pomocą przyciskow

Post autor: darekkowalcz »

Możesz wrzucić te VI zapisane w labVIEW 2010 bo z takiego korzystam gdyż mam na niego licencje studencką.
Awatar użytkownika
Góras
Posty: 88
Rejestracja: 13 sie 2012 10:15
Wersja środowiska: LabVIEW 2012

Re: Sterowanie aplikacja pomairowa za pomocą przyciskow

Post autor: Góras »

Proszę bardzo :)
Załączniki
Pomiar i kalibracja wesja 2.vi
LV 2010
(8.91 KiB) Pobrany 456 razy
Pomiar i kalibracja wesja 1.vi
LV 2010
(8.62 KiB) Pobrany 448 razy
darekkowalcz
Posty: 6
Rejestracja: 25 sty 2013 22:19
Wersja środowiska: LabVIEW 2010

Re: Sterowanie aplikacja pomairowa za pomocą przyciskow

Post autor: darekkowalcz »

Idealnie trafiłaś w mój problem. Skorzystałem z pierwszego sposobu wydał mi się bardziej przejrzysty. Dzięki wielkie za pomoc.
Awatar użytkownika
Krzysztof Szewczyk
Posty: 37
Rejestracja: 19 maja 2011 02:48
Wersja środowiska: LabVIEW 2017
Lokalizacja: Koszyce
Kontakt:

Sterowanie aplikacja pomairowa za pomocą przyciskow

Post autor: Krzysztof Szewczyk »

why not event?
Obrazek
Awatar użytkownika
Góras
Posty: 88
Rejestracja: 13 sie 2012 10:15
Wersja środowiska: LabVIEW 2012

Sterowanie aplikacja pomairowa za pomocą przyciskow

Post autor: Góras »

Bo do event structure nie wkłada się dłużej trwających zadań... podobno ;)

Wyobraź sobie, że po uruchomieniu programu przyciskasz przycisk 'Kalibracja' i kalibracja trwa, a jako że Ci się w trakcie kalibracji nudzi przyciskasz go jeszcze sto razy. Event zakolejkuje wszystkie te zdarzenia i trochę się naczekasz nim obsłuży przycisk 'Stop', który po stujednokrotnym wciśnięciu przycisku 'kalibracja' zdecydowałeś się wcisnąć :)

Jeśli bardzo byś chciał, możesz zrobić to na eventach, tyle że wielowątkowo - jeden wątek dla interfejsu użytkownika (z opcją informowania użytkownika, że pomiar trwa i nie obsłuży wciśnięcia przycisku dopóki pomiar się nie skończy), drugi dla pomiarów :)
Awatar użytkownika
Krzysztof Szewczyk
Posty: 37
Rejestracja: 19 maja 2011 02:48
Wersja środowiska: LabVIEW 2017
Lokalizacja: Koszyce
Kontakt:

Sterowanie aplikacja pomairowa za pomocą przyciskow

Post autor: Krzysztof Szewczyk »

zawsze mozna podpiac property przycisku pod disable :) a po kalibracji dac enable :) to rozwiaze problem z aktywnym przyciskiem kalibracji podczas pomiaru

ale na szybko to ok. da sie.

tzn najlepiej to chyba producer consumer :)
Obrazek
ODPOWIEDZ