Symulacja pomiaru w labview
Symulacja pomiaru w labview
Jestem początkujacym użytkownikiem LabView. Pisze pracę dyplomowa i mam wykonac pomiary w tym programie. Nie wiem czy można zasymulowac pomiar np. Temperatury, napiecia itp. Sam nie wiem jeszcze jaki to ma byc pomiar i nie wiem jak sie do tego zabrać. Proszę o pmoc i z gory dziekuje.
-
- Administrator
- Posty: 1315
- Rejestracja: 30 lip 2003 00:00
- Wersja środowiska: LabVIEW 2015
- Lokalizacja: Ruda Śląska
- Kontakt:
Wyszukiwanie
-
- Administrator
- Posty: 1315
- Rejestracja: 30 lip 2003 00:00
- Wersja środowiska: LabVIEW 2015
- Lokalizacja: Ruda Śląska
- Kontakt:
Symulowanie pomiarów w LabVIEW
Z uwagi na fakt, iż ten temat pojawia się nadzwyczaj często opiszę nieco dokładniej, na przykładzie jednago z moich programów, jak poradziłem sobie z brakiem karty pomiarowej.
Problem miał miejsce przy tworzeniu programu SPECTRO.
2 karty pomiarowe wykorzystywane w tym programie to S2000 firmy Ocean Optics. Każda karta generowała 2048 punktów pomiarowych w czasie jednego pomiaru.
Sterownik dostarczony przez producenta do LabVIEW był przygotowany do obsługi ośmiu takich kart jednocześnie. Ja wykorzystywałem tylko dwie karty,a cała dodatkowa funkcjonalność sterownika była realizowana w moim programie, więc sam sterownik został uproszczony na potrzeby mojego programu.
Na wejście do sterownika podawane są parametry zebrane w jeden klaster. Na wyjściu wystawiane są dwie tablice z danymi, po jednej dla każdej karty. Gdy karta jest w komputerze i są zainstalowane do niej sterowniki, program od razu lokalizuje bibliotekę DLL z której korzysta sterownik i wszystko przebiega bez problemu. Ja nie miałem tej karty, więc zrobiłem sobie symulator.
[img]http://www.labview.pl/images/forum/symul01.png[/img]
Widać że w symulatorze na wejściu również jest klaster, jest on identyczny do tego jaki jest w prawdziwym sterowniku. Z klastra wyodrębniane są dane, na temat która karta jest wykorzystywana. Są to jedyne dane potrzebne dla symulatora.
Następnie są generowane dane, w zależności od tego która karta jest wykorzystywana, tak tworzone są tablice z danymi. Format danych jest identyczny jak ten w sterowniku.
W programie w czasie jego tworzenia dodatkowo zastosowałem Case Structure, którą przełączałem sterownik z symulatorem, w zależności od tego gdzie wykorzystywany był program. Jest to bardzo wygodne rozwiązanie, ponieważ nie wymagało ode mnie za każdym razem dokonywanie dużych zmian w programie.
Później poszedłem krok dalej i zrobiłem nieco inaczej. Skopiowałem dane zebrane przez kartę do tablicy w LabVIEW i zastosowałem ją jako stałą. Pokazywane były zawsze te same dane. Można jeszcze spróbować modyfikować takie dane, żeby zaobserwować jakieś zmiany.
Mam nadzieję iż jest to jasne.
Wszelkie uwagi, sugestie innych rozwiązań i zapytania są mile widziane.
bogdani
Problem miał miejsce przy tworzeniu programu SPECTRO.
2 karty pomiarowe wykorzystywane w tym programie to S2000 firmy Ocean Optics. Każda karta generowała 2048 punktów pomiarowych w czasie jednego pomiaru.
Sterownik dostarczony przez producenta do LabVIEW był przygotowany do obsługi ośmiu takich kart jednocześnie. Ja wykorzystywałem tylko dwie karty,a cała dodatkowa funkcjonalność sterownika była realizowana w moim programie, więc sam sterownik został uproszczony na potrzeby mojego programu.
Na wejście do sterownika podawane są parametry zebrane w jeden klaster. Na wyjściu wystawiane są dwie tablice z danymi, po jednej dla każdej karty. Gdy karta jest w komputerze i są zainstalowane do niej sterowniki, program od razu lokalizuje bibliotekę DLL z której korzysta sterownik i wszystko przebiega bez problemu. Ja nie miałem tej karty, więc zrobiłem sobie symulator.
[img]http://www.labview.pl/images/forum/symul01.png[/img]
Widać że w symulatorze na wejściu również jest klaster, jest on identyczny do tego jaki jest w prawdziwym sterowniku. Z klastra wyodrębniane są dane, na temat która karta jest wykorzystywana. Są to jedyne dane potrzebne dla symulatora.
Następnie są generowane dane, w zależności od tego która karta jest wykorzystywana, tak tworzone są tablice z danymi. Format danych jest identyczny jak ten w sterowniku.
W programie w czasie jego tworzenia dodatkowo zastosowałem Case Structure, którą przełączałem sterownik z symulatorem, w zależności od tego gdzie wykorzystywany był program. Jest to bardzo wygodne rozwiązanie, ponieważ nie wymagało ode mnie za każdym razem dokonywanie dużych zmian w programie.
Później poszedłem krok dalej i zrobiłem nieco inaczej. Skopiowałem dane zebrane przez kartę do tablicy w LabVIEW i zastosowałem ją jako stałą. Pokazywane były zawsze te same dane. Można jeszcze spróbować modyfikować takie dane, żeby zaobserwować jakieś zmiany.
Mam nadzieję iż jest to jasne.
Wszelkie uwagi, sugestie innych rozwiązań i zapytania są mile widziane.
bogdani
witam
W ramach nauki LabVIEW udało mi się kiedyś zrobić generator sygnałów "różnych"; nie jest to nic nadzwyczajnego, choć napisanie go zajęło mi jakiś czas - służył mi pomocą przy stosowaniu algorytmów przetwarzania sygnałów. Może przda się komuś jeszcze ?? - wersja trochę poprawiona znajduje się :
http://www.ds14.agh.edu.pl/~pmaj/files/generator.zip
w każdym razie ten jest raczej ok: plus.ds14.agh.edu.pl/~pmaj/files/generator.zip
W ramach nauki LabVIEW udało mi się kiedyś zrobić generator sygnałów "różnych"; nie jest to nic nadzwyczajnego, choć napisanie go zajęło mi jakiś czas - służył mi pomocą przy stosowaniu algorytmów przetwarzania sygnałów. Może przda się komuś jeszcze ?? - wersja trochę poprawiona znajduje się :
http://www.ds14.agh.edu.pl/~pmaj/files/generator.zip
w każdym razie ten jest raczej ok: plus.ds14.agh.edu.pl/~pmaj/files/generator.zip