Pomiar z dwóch kanałów jednocześnie

Tematy związane z tworzeniem dużych aplikacji. Zaganiednia dotyczące architektury oraz zasad tworzenia optymalnych rozwiązań.
Belcik
Posty: 5
Rejestracja: 21 cze 2009 20:33
Kontakt:

Pomiar z dwóch kanałów jednocześnie

Post autor: Belcik »

Witam

Moje doświadczenie nie jest za duże dlatego zwracam się z prośbą o pomoc.

Czy możliwy jest pomiar dwóch napięć jednocześnie z dwóch kanałów tej samej karty pomiarowej, w tym przypadku jest to NI PXI 6070E?

Jeśli tak to proszę o udzielenie mi wskazówek jak można to zrealizować.
bogdani
Administrator
Posty: 1315
Rejestracja: 30 lip 2003 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Ruda Śląska
Kontakt:

Pomiar z dwóch kanałów jednocześnie

Post autor: bogdani »

Witaj

Tak karta skanuje wszystkie wejścia analogowe (multipleksuje) przełączając je po kolei na jeden przetwornik analogowo-cyfrowy. W związku z tym, nie uzyskasz na niej równoczesnych pomiarów z dwóch wejść analogowych, ale możesz uzyskać takie pomiary z przesunięciem czasowym rzędu 2 mikrosekund (o ile się nie pomyliłem). Jeśli to ciebie satysfakcjonuje to OK, jeśli nie to musisz poszukać innej karty.

Co do samej rejestracji to wystarczy zajrzeć do przykładów dostarczonych z LabVIEW: Find Examples >> Hardware Input and Output >> DAQmx >> Analog Measurements >> Voltage >> ...

bogdani
Ktoś ci pomógł na forum? Podziękuj dając pochwałę.

Obrazek Obrazek Obrazek
Belcik
Posty: 5
Rejestracja: 21 cze 2009 20:33
Kontakt:

Re: Pomiar z dwóch kanałów jednocześnie

Post autor: Belcik »

wielkie dzięki za pomoc
marwis
Posty: 22
Rejestracja: 17 paź 2008 21:29
Wersja środowiska: LabVIEW 8.5
Lokalizacja: Gdy
Kontakt:

Re: Pomiar z dwóch kanałów jednocześnie

Post autor: marwis »

Ja mam też takie pytanie co karty NI 6020E, czy ta karta też po kolei przełącza kanały? Jeśli tak to jakie przesunięcia czasowe mogą występować miedzy kanałami?

I jeszcze jak można znaleźć przykłady dla Traditional NI-DAQ?
Ostatnio zmieniony 23 cze 2009 12:19 przez marwis, łącznie zmieniany 1 raz.
Belcik
Posty: 5
Rejestracja: 21 cze 2009 20:33
Kontakt:

Re: Pomiar z dwóch kanałów jednocześnie

Post autor: Belcik »

Witam

Próbowałem zrealizować pomiar napięcia z dwóch kanałów karty NI PXI 6070E i jedyna działająca aplikacja jaką udało mi się stworzyć nie spełnia oczekiwać, gdyż pomiar w każdym z kanałów trwa za długo. dlatego zwracam się z prośbą o pomoc: co można zmienić w załączonym pliku aby pomiary odbywały się w jak najkrótszym czasie.
folon
Posty: 19
Rejestracja: 03 sty 2008 09:43
Wersja środowiska: LabVIEW 2012
Lokalizacja: Wrocław

Pomiar z dwóch kanałów jednocześnie

Post autor: folon »

Wykorzystać można na przykład dwie równoległe pętle, pogodzić je za pomocą kolejki (Find examples pomoże). Albo pętla UI i pętla(e) pomiarowa(e), to już jak Ci wygodniej.

Obecnie to wygląda tak: while(koniec pomiaru) do{otwórz kanał 1, zmierz 1, zamknij kanał 1, otwórz kanał 2, zmierz 2, zamknij kanał 2}.

Docelowo:
1 pętla: otwórz kanał 1, while(koniec pomiaru) do{pomiar 1}, zamknij kanał 1
2 pętla: otwórz kanał 2, while(koniec pomiaru) do{pomiar 2}, zamknij kanał 2

Nie otwierać i nie zamykać sesji za każdą iteracją pętli tylko zrobić to przed rozpoczęciem pomiaru (w twoim przypadku, nawet i przed pętlą while), a referencje przekazywać w shift register'ze. Zamykać po skończeniu pomiaru.
Ostatnio zmieniony 01 lip 2009 13:59 przez folon, łącznie zmieniany 1 raz.
Awatar użytkownika
skoziate
Administrator
Posty: 245
Rejestracja: 06 mar 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Warszawa
Kontakt:

Re: Pomiar z dwóch kanałów jednocześnie

Post autor: skoziate »

Jeszcze łatwiej będzie jak na obrazku. Zwróć uwagę na stałą podłączoną do DAQmx Create Channel:
Pozdrawiam,
Sebastian
Belcik
Posty: 5
Rejestracja: 21 cze 2009 20:33
Kontakt:

Re: Pomiar z dwóch kanałów jednocześnie

Post autor: Belcik »

dzięki za odpowiedzi,

co do dwóch pętli, rozbijałem to na dwie pętle, korzystałem też z przykładów zamieszczonych w Helpie, niestety w każdym z przypadków w drugiej iteracji pojawiał się komunikat o błędzie. dokładniej rzecz biorąc pojawiał się w bloku Timing
Awatar użytkownika
skoziate
Administrator
Posty: 245
Rejestracja: 06 mar 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Warszawa
Kontakt:

Re: Pomiar z dwóch kanałów jednocześnie

Post autor: skoziate »

Błąd będzie się pojawiał, ponieważ nie można uruchomić dwóch tasków analogowego wejścia na jednej karcie. W takim przypadku należy stworzyć jeden task z dwoma kanałami, tak jak na moim obrazku 2 posty wyżej.
Pozdrawiam,
Sebastian
folon
Posty: 19
Rejestracja: 03 sty 2008 09:43
Wersja środowiska: LabVIEW 2012
Lokalizacja: Wrocław

Re: Pomiar z dwóch kanałów jednocześnie

Post autor: folon »

skoziate pisze:Jeszcze łatwiej będzie jak na obrazku. Zwróć uwagę na stałą podłączoną do DAQmx Create Channel:
Prawda Ci to:)

Nadal jednak pozostaje przy swoim, że w środku pętli dla maksymalizacji szybkości akwizycji powinien znaleźć się wyłącznie Read, a reszta poza. No chyba, że w trakcie akwizycji zachodzi potrzeba zmian parametrów, ale to też nie problem dodać takowe coś.
Awatar użytkownika
skoziate
Administrator
Posty: 245
Rejestracja: 06 mar 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Warszawa
Kontakt:

Pomiar z dwóch kanałów jednocześnie

Post autor: skoziate »

To zależy. W wielu przypadkach zupełnie nie ma takiej potrzeby i po co wtedy komplikować kod. Po to mam bufor, żeby dostosować sobie częstotliwość akwizycji i częstość odczytu bufora do operacji, które muszę wykonać w każdej iteracji.
Jeśli częstotliwość próbkowania to 10kS/s, tworzę bufor na 5000 próbek, to częstość odczytu bufora to 0,5s. W tym czasie mogę wykonać masę operacji, wyświetlić, zapisać na dysk, zrobić FFT itp.
Jeśli natomiast mam konieczność wykonania operacji, która wprowadza dużą latencję (komunkacja przez sieć, interakcja użytkownika), wtedy warto wykonać osobny wątek (czytaj: pętlę) i skomunikować w taki bądź inny sposób.
Pozdrawiam,
Sebastian
Belcik
Posty: 5
Rejestracja: 21 cze 2009 20:33
Kontakt:

Re: Pomiar z dwóch kanałów jednocześnie

Post autor: Belcik »

witam

najlepszym rozwiązaniem okazało się to zaproponowane przez Skoziate, dlatego jeszcze raz wielkie dzięki za pomoc
ODPOWIEDZ