Struktura aplikacji do kalibracji kanałów analogowych

Tematy związane z tworzeniem dużych aplikacji. Zaganiednia dotyczące architektury oraz zasad tworzenia optymalnych rozwiązań.
introvert_84
Posty: 18
Rejestracja: 26 paź 2008 10:21
Wersja środowiska: LabVIEW 2012
Kontakt:

Struktura aplikacji do kalibracji kanałów analogowych

Post autor: introvert_84 »

Mam pytanie odnośnie wyboru struktury aplikacji służącej do kalibracji kanałów analogowych.
Chodzi o to aby program wczytał informacje o sprzęcie zainstalowanym na danej platformie, umożliwiał wybór karty pomiarowej na której będzie dokonywana kalibracja i następnie uruchamiał pomiar. Dane mają być wyświetlane na ekranie (np co 1 sekundę, najłatwiej chyba w tabeli), razem z współczynnikami wzmocnienia i zerowania dla każdego z kanałów. Przycisk zapisu ma umożliwiać zapisanie współczynników do pliku. Przycisk "zeruj" ustawia współczynniki zerowania kiedy czujniki mierzą wartość 0. przycisk "ustaw wzmocnienie" oblicza wzmocnienie dla kanałów kiedy czujniki mierzą określoną znaną wartość. Zastanawiałem się nad maszyną stanów z eventami lub producent/konsument z eventami. Niestety nie bardzo wiem jak do tego podejść żeby wszystko działało. W maszynie stanów przechodzę w stan "pomiar" i program nie reaguje na GUI (przez osobny stan w którym program czeka na reakcję użytkownika). W producent/konsument górna pętla odpowiada za GUI, dolna odpowiada za pomiar i zapis współczynników do pliku ale uruchamia się tylko raz jak dostanie coś do kolejki w pętli górnej.
Zyga
Posty: 86
Rejestracja: 26 sty 2012 23:36
Wersja środowiska: LabVIEW 2011

Re: Struktura aplikacji do kalibracji kanałów analogowych

Post autor: Zyga »

Zrobiłem na szybko taki wzorzec. Nie jest działający, ale będziesz wiedział o co chodzi.
W masterze obsługujesz GUI, no a pomiar w slave. Dane master-->slave przesyłasz za pomocą kolejek albo notifaierów, natomiast slave-->master za pomocą eventów. W slave robisz maszyne stanów. Tam oczekujesz na start pomiaru czy tam odbiór jakiś danych z mastera. Do tego jeszcze dodajesz klastry danych dla każdej pętli.
Załączniki
pattern.png
johnleee
Posty: 1
Rejestracja: 05 gru 2012 11:54
Wersja środowiska: LabVIEW 6i

Struktura aplikacji do kalibracji kanałów analogowych

Post autor: johnleee »

Faktycznie... tak czułem, że rozwiązanie tego problemu będzie banalne... Próbowałem wcześniej z Shift Register, ale nie zwróciłem uwagi na to, że można podawać sygnał do bramki wejściowej z poza pętli... L-) Dzięki za wskazówkę! ;)
introvert_84
Posty: 18
Rejestracja: 26 paź 2008 10:21
Wersja środowiska: LabVIEW 2012
Kontakt:

Re: Struktura aplikacji do kalibracji kanałów analogowych

Post autor: introvert_84 »

Próbowałem rozgryźć tą strukturę ale nie bardzo widzę w jaki sposób mogę ją efektywnie wykorzystać:/ W międzyczasie próbowałem zrobić program w maszynie stanów z eventami, z którą też mam problem. W załączniku jest mój VI. Wiem że posypią się gromy, to jest dobry przykład jak nie pisać programów w LV ;-) ale chodzi o jedną rzecz, mianowicie po wybraniu karty pomiarowej i wciśnięciu przycisku pomiar następuje pobieranie danych z karty pomiarowej. Aplikacja przechodzi w stan calibrate (pobieranie danych) -> check (sprawdzenie stanu przycisków na UI) -> calibrate -> check -> calibrate itd. W momencie wciśnięcia dowolnego przycisku wykonuje się wybrany przyciskiem stan i program wraca do cyklu calibrate -> check. Problem w tym że po pierwszym wciśnięciu przycisku UI przestaje kompletnie reagować na kliknięcia myszką, trzeba zatrzymywać program przyciskiem abort. Dzieje się tak za każdym razem. Nie mogę dojść z jakiego powodu tak się dzieje. Wszędzie wsadzone jest opóznienie 200ms żeby było widać w jakie stany przechodzi kolejno program.
Załączniki
kalibracja_AI_inny zapis tabeli.vi
(118.56 KiB) Pobrany 378 razy
ODPOWIEDZ