labview + Agilent

Wszelkie sprawy związane z LabVIEW i komunikacją ze sprzętem. Problemy i ciekawe rozwiązania.
marmajgabin
Posty: 3
Rejestracja: 25 kwie 2013 19:28
Wersja środowiska: LabVIEW 2011

labview + Agilent

Post autor: marmajgabin »

Cześć,

Przygodę z labview dopiero zaczynam, a z fizycznym urządzeniem, do którego mam stworzyć interfejs, spotykam się pierwszy raz, stąd też moje pytania.
Może od początku: Celem jest stworzenie programu, który będzie realizował zadania licznika energii. Jako urządzenie mierzące napięcie i prąd wykorzystywany jest oscyloskop Agilent Technologies InfiniiVision DSO 7012B.
Udało mi się połączyć oscyloskop z komputerem i wyświetlać sygnały na monitorze komputera. Problem pojawia w momencie gdy chcę mnożyć dwa sygnały ( do pomiaru mocy potrzbuję iloczyn dwóch sygnałów, a później jeszcze je scałkować i będę miał energię).
W jaki sposób moge pobrać chwilową wartość sygnałów, żeby wykonać na niej działanie?

Z góry dzięki za pomoc,
mam nadzieję, że to dobry dział, ew. proszę o przeniesienie we właściwe miejsce.

Marcin
Jamal79
Posty: 289
Rejestracja: 01 maja 2012 14:14
Wersja środowiska: LabVIEW 2012
Lokalizacja: Farum

labview + Agilent

Post autor: Jamal79 »

Bylo by prosciej jakbys zamiescil chociaz czesc kodu...

Tak na predko...
Załączniki
xxx.png
xxx.png (82.04 KiB) Przejrzano 10611 razy
milten
Posty: 77
Rejestracja: 25 paź 2011 20:49
Wersja środowiska: LabVIEW 2012

labview + Agilent

Post autor: milten »

Prawdopodobnie komunikacja z tym oscyloskopem odbywa się przez RS-232 (może też być to na przykład TCP, ale zasada ta sama), czyli dostajesz z niego jakiś ciąg stringów. Jedyne, co musisz zrobić, to wyciągnąć z niego interesujące Cię wartości i przekonwertować je na liczby (paleta Numeric).

Zamieść może program, bo tak na sucho, to nie wiadomo dokładnie z czym masz problem.
Obrazek
Jamal79
Posty: 289
Rejestracja: 01 maja 2012 14:14
Wersja środowiska: LabVIEW 2012
Lokalizacja: Farum

labview + Agilent

Post autor: Jamal79 »

Pisze ze udalo mu sie wyswietlic wykres na monitorze, zakladam, ze w LabView.
marmajgabin
Posty: 3
Rejestracja: 25 kwie 2013 19:28
Wersja środowiska: LabVIEW 2011

labview + Agilent

Post autor: marmajgabin »

Cześć,
dzięki za odpowiedź,
na razie mój program wygląda w ten sposób:
Obrazek

Uploaded with ImageShack.us

Jamal79 ten blok wygląda interesująco, jednak nie mogę go u siebie znaleźć, dysponuję jakąś okrojoną wersją 2011, taką z uczelni dostałem, może da się to czymś innym zastąpić?
Oscyloskop jest podłączony przez USB.
Jamal79
Posty: 289
Rejestracja: 01 maja 2012 14:14
Wersja środowiska: LabVIEW 2012
Lokalizacja: Farum

labview + Agilent

Post autor: Jamal79 »

Napewno masz taki, to jest expresvi'aj Formula. Zreszta mozesz zapisac moj obrazek na dysk i wrzucic go sobie na block diagrama. To jest snippet.

Tobie raczej przyda sie bardziej kontrolka "Get Waveform Components", jak ja podepniesz rownolegle do "Waveform Data" otrzymasz 1D arraya z danymi. Zobacz tez, Formula Node.
marmajgabin
Posty: 3
Rejestracja: 25 kwie 2013 19:28
Wersja środowiska: LabVIEW 2011

labview + Agilent

Post autor: marmajgabin »

Dzięki, znalazłem, później sygnał wyjściowy z bloku Formula daję na Time Domain i powinienem mieć energię.

Mam jeszcze takie pytanie, cały program jest zamknięty w pętli, po uruchomieniu dane z oscyloskopu są odczytywane z tym że oscyloskop działa w trybie pojedynczego wyzwolenia, czy da radę jakoś zmienić to, żeby działanie było ciągłe? W przypadku pojedynczego wyzwalania pomiar będzie bardzo niedokładny.
Jamal79
Posty: 289
Rejestracja: 01 maja 2012 14:14
Wersja środowiska: LabVIEW 2012
Lokalizacja: Farum

labview + Agilent

Post autor: Jamal79 »

Pewnie ze mozna, ale to jest ograniczone jedynie przez oscyloskop i typ komunikacji. Jezeli moze nadawac ciagle to i bedziesz mial ciagly odczyt danych. Jezeli jest tak jak piszesz, to musisz zrobic trigera, ktory bedzie odczytywal dane w okreslonym czasie.

PS. masz tam "triger level" sprawdz w ustawieniach Agilenta, mozliwe ze to on jest odpowiedzialny za sposob odczytu danych.

Ciezko to opisac, ale najlepiej jakbys zrobil eventa. Wrzucil wszystkie bloczki konfiguracyjne do jednego casa i po ustawieniu, kanalu, czasow, itd. przechodzil do casa, ktory ma ciagly odczyt z dealeyem. Zamiast eventa mozesz uzyc Whila albo case.
1. Zmienne configuracyje sa i tak poza loopem, wiec niemasz mozliwosci ich zmiany podczas trwania loopa. Poczytaj tu na forum o maszynach stanow itd. Jest sporo tu podobnych wontkow...
2. Bloczek odczytujacy
Załączniki
1. czesc configuracyjna<br />2. Odczyt z dealajem
1. czesc configuracyjna
2. Odczyt z dealajem
Ostatnio zmieniony 18 gru 2013 10:13 przez Jamal79, łącznie zmieniany 1 raz.
ODPOWIEDZ