Połączenie pętli obsługujących oscyloskop i kalibrator!

Wszelkie sprawy związane z LabVIEW i komunikacją ze sprzętem. Problemy i ciekawe rozwiązania.
Marco
Posty: 15
Rejestracja: 05 maja 2009 18:24
Lokalizacja: Poznań
Kontakt:

Połączenie pętli obsługujących oscyloskop i kalibrator!

Post autor: Marco »

Proszę o pomoc, mam za zadanie sprawdzić kalibratorem fluke 5500A parametry napięciowe oscyloskopu HP 54520A. Zbudowałem dwie pętle obsługujące osobno każde urządzenie. Ta niższa ustawia początkowe parametry oscyloskopu a ta wyższa ustawia napięcie wyjściowe z kalibratora. Nie wiem teraz w jaki sposób połączyć teraz te dwie pętle. Działać ma tak: Oscyloskop ustawia sobie parametry początkowe (zakres i offset) po zgłoszeniu gotowości przez oscyloskop kalibrator wystawia zadane napięcie i odbywa się pomiar. Ma to się odbywać w cyklicznie tyle razy ile mam punktów pomiarowych w dokumentacji producenta. Proszę o jakieś wskazówki. Z góry wielkie dzięki.
Pozdrawiam
Marek
Awatar użytkownika
jogurt_owocowy
Posty: 1317
Rejestracja: 30 lis 2004 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Kraków

Re: Połączenie pętli obsługujących oscyloskop i kalibra

Post autor: jogurt_owocowy »

Najlepiej będzie wykorzystać do tego kolejki albo notyfikatory. Różnią się one nieznacznie, ale dla Ciebie nie powinno mieć to żadnego znaczenia. Poniżej przykład architektury Producent - Konsument (New -> VI from Template -> Producer/Consumer Design Pattern) opartej na kolejce:
[img]http://www.labview.pl/uploads/forums/pr ... nsumer.gif[/img]
Działa to w ten sposób, że górna pętla produkuje jakieś dane i wrzuca je do kolejki (danymi jest tutaj string element).
Dolna pętla monitoruje stan kolejki i po pojawieniu się w niej jakichś danych odczytuje je i przetwarza (tego już na obrazku nie widać).
W swoim programie zrób sobie dwie kolejki do komunikacji w obie strony i teraz:
  1. Jedna pętla obsługuje oscyloskop, gdy ten zgłosi gotowość wysyła informację o tym poprzez kolejkę do drugiej...
  2. ..., która właśnie czeka na tę informację. Pętla obsługuje kalibrator, który wystawia zadane napięcie i wysyła informację o tym, że można mierzyć do pętli oscyloskopu.
  3. Pętla oscyloskopu odbiera informację, mierzy, zapisuje wynik etc. po czym wysyła do pętli kalibratora prośbę o wystawienie kolejnego napięcia...
itd.
Powodzenia i jak coś to pytaj.
Pozdrawiam
Marco
Posty: 15
Rejestracja: 05 maja 2009 18:24
Lokalizacja: Poznań
Kontakt:

Re: Połączenie pętli obsługujących oscyloskop i kalibra

Post autor: Marco »

Wielkie dzięki za pomoc.
Ale trochę nie rozumiem tej sugestii z dwoma kolejkami do komunikacji w obie strony. Rozumiem że w tym gotowym szablonie jest tylko jedna kolejka tak? Nie wiem którędy poprowadzić tą drugą kolejkę bo w tej chwili jak mam połączony tak schemat (plik w załączniku) to nie działa tak jak powinno.
Nie wiem też który fragment wrzucić do tej struktury Event w pętli oscyloskopu?

Pozdrawiam
Marek
Marco
Posty: 15
Rejestracja: 05 maja 2009 18:24
Lokalizacja: Poznań
Kontakt:

Re: Połączenie pętli obsługujących oscyloskop i kalibra

Post autor: Marco »

Naprawdę nikt nie orientuje się co zrobić dalej w tym przypadku??
Awatar użytkownika
jogurt_owocowy
Posty: 1317
Rejestracja: 30 lis 2004 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Kraków

Re: Połączenie pętli obsługujących oscyloskop i kalibra

Post autor: jogurt_owocowy »

Tak teraz myślę, że moja rada z kolejką mogła być trochę na wyrost.
Spróbuj użyć zwykłych zmiennych lokalnych, a więc pętla oscyloskopu ustawia parametry, po czym zaświeca diodkę oscyloskop gotowy. Pętla kalibratora odczytuje co jakiś czas (poprzez zmienną lokalną) stan tej diodki i kiedy jej stan zmieni się na TRUE, wystawia zadane napięcie, gasi diodkę oscyloskop gotowy i zapala diodkę napięcie wystawione co z kolei jest analogicznym sygnałem dla pętli oscyloskopu, że można mierzyć. Ta gasi diodkę napięcie wystawione, mierzy to napięcie, po czym ustawia parametry dla kolejnego pomiaru i zapala diodkę oscyloskop gotowy...
Tak nie powinno się tego robić, ale po załączonym przykładzie widać, że chyba jesteś początkujący, a kolejki to trochę za dużo na początek.
PS. Zawsze podawaj wersję LV, jakiej używasz!
ODPOWIEDZ