trigger

Jeśli masz coś do powiedzenia w sprawie LabVIEW napisz. Tutaj są tematy, których nie można uściślić do innych działów.
majek
Posty: 1
Rejestracja: 05 sty 2010 13:59
Wersja środowiska: LabVIEW 8.6

trigger

Post autor: majek »

Jestem nowy na forum, więc chciałbym wszystkich serdecznie przywitać i od razu przechodzę do mojego "problemu" :D.
Obecnie używam karty NI USB-6212, generatora sinusoidy 50 Hz i oscyloskopu.
Chcę napisać program w labview który będzie mierzył na wejściu analogowym karty usb sygnał 50Hz, wykryje przejście przez zero i "w tym samym momencie" załącza wyjście cyfrowe karty.
Wszystko pięknie działa jeżeli używa się generatorów sinusoidy z labview tak jak w przykładzie "Basic Level Triggering", niestety kiedy podłączę do tego rzeczywisty sygnał z generatora to wyjście digital załączane jest w "dowolnym momencie".
W załączniku próby opanowania tematu, problem jest też z załączeniem wyjścia cyfrowego karty po wykryciu zera, odczyt N sampli i wykrycie zera trwa od kilkunastu do 20 ms i załączenie wyjścia cyfrowego przesuwa się w stosunku do zera ;(
Na pewno już to przerabialiście i wiecie jak to zrobić ;)
Załączniki
petla v8.vi
(54.13 KiB) Pobrany 206 razy
Basic Level Triggering - odczyt z karty usb.vi
(31.58 KiB) Pobrany 199 razy
Awatar użytkownika
spec.kolombo
Posty: 126
Rejestracja: 20 sie 2008 06:33
Wersja środowiska: LabVIEW 2009
Lokalizacja: Gdynia
Kontakt:

trigger

Post autor: spec.kolombo »

Cześć,
od razu przechodzę do Twojego problemu:
A w zasadzie są 2 problemy.
1. W elektronice nie ma czegoś takiego jak w "tym samym momencie".
2. W rzeczywistości nie ma takiego sygnału jak idealna sinusoida sinusoida.
problem nr 2 wynika z tego, że rzeczywisty sygnał jest zaszumiony. Sam szum ma wartość rms większą od 0V. Dlatego jeśli to ma działać musisz trochę "dać na luz" i np. ustawić wartość histerezy na jakąś konkretną wartość (najlepiej spróbuj ją wybrać metodą prób i błędów i do tej wartości dodać jakieś 10%) prawdopodobnie nie będzie to dużo (może nawet nie 1mV). Możesz też przefiltrować sygnał, ale to uniemożliwi Ci rozwiązanie problemu 1.

Twoje opóźnienie 20 ms (albo mniej, pewnie też więcej) wynika z samej zasady działania twojego programu - najpierw odczytujesz N sampli, a PÓŹNIEJ dokonujesz sprawdzenia gdzie nastąpiło przejście przez 0, niestety nie da się cofnąć w czasie i ustawić wyjścia cyfrowego...

ok. jak znasz już problem, to spróbuj rozwiązać go sam, albo czekaj aż ktoś inny Ci pomoże, bo ja w tym nie mam za dużo doświadczenia.
Lepiej być bogatym i zdrowym, niż biednym i chorym.
Spec Kolombo
ODPOWIEDZ