akwizycja danych cyfrowych

Wszelkie sprawy związane z LabVIEW i komunikacją ze sprzętem. Problemy i ciekawe rozwiązania.
sovolex
Posty: 7
Rejestracja: 06 sty 2012 21:28
Wersja środowiska: LabVIEW 2011

akwizycja danych cyfrowych

Post autor: sovolex »

Cześć. Witam wszystkich forumowiczów!

Mam kłopot w napisaniu programu w języku G.
Chodzi o napisanie programu rozpoznającego znaki wysyłane przez port RS232.
Dane wysyłane przez port są odbierane przez kartę pomiarową przez wejście analogowe.
Sam już sobie poradziłem z tym, że ładnie wyświetlane są na wykresie spróbkowane skoki napięcia,
a chodzi jeszcze o to aby zamienić te skoki napięcia na bity, a potem sekwencję 8 bitów na znak ASCII.
Transmisja jest asynchroniczna znakowa. Pierwszy bit to bit Start, potem jest sekwencja 8 bitów danych i na końcu jeden bit Stop (zależnie od ustawień). Być może łatwo jest to zrobić, ale siedzę nad tym dłuższy czas i mam z tym problem. Będę wdzięczny za pomoc. Pozdrawiam :)
Załączniki
lv1.vi
(21.49 KiB) Pobrany 311 razy
lvp.JPG
AGF
Posty: 109
Rejestracja: 26 lut 2010 13:41
Wersja środowiska: LabVIEW 2010
Lokalizacja: Bydgoszcz

Re: akwizycja danych cyfrowych

Post autor: AGF »

Może tak jak w załączniku.
Załączniki
lv_ex_1.vi
dodałem proste skalowani i wysyłkę RS-em
(31.02 KiB) Pobrany 343 razy
sovolex
Posty: 7
Rejestracja: 06 sty 2012 21:28
Wersja środowiska: LabVIEW 2011

akwizycja danych cyfrowych

Post autor: sovolex »

Dzięki za zainteresowanie. Chodzi jednak o to, że znaki są wysyłane przez port RS z innego komputera (przez pewien program do wysyłania znaków). Na moim komputerze w LabView muszę te znaki odbierać poprzez połączenie sygnału TX i masy do wejścia analogowego karty pomiarowej. Karta próbkuje skoki napięcia, następnie skoki te zamieniane są na bity, a potem na znaki ASCII.

Powinno to działać w ten sposób, że po wysłaniu znaku (lub kilku znaków) z jednego komputera od razu powinny się one wyświetlić na drugim komputerze w LabView. Pozdrawiam :)
Grzesiek080
Posty: 82
Rejestracja: 26 maja 2009 07:18
Wersja środowiska: LabVIEW 2012
Lokalizacja: Sucha Beskidzka
Kontakt:

Re: akwizycja danych cyfrowych

Post autor: Grzesiek080 »

Niegdyś bawiłem sie komunikacją "Dali" wysyłając o odbierając dane kartą analogowa i działało to bez zarzutów. Robiłem to w natepujący sposób:
1. Jeśli chcesz zrobić odbiór automatyczny bedziesz potrzebował konfiguracji triggera dla karty analogowej.
2. Ważną rzeczą jest okreslenie z jaką czestotliwoscią bedzie próbkować karta w stosunku do predkości transmisji ( ile próbek poberze karta poczas stanu niskiego lub wysokiego ramki ja miałem 100).
Wykonuje sie po to zeby sie wstrzelić w środek poziomu.
3. PO wykonaniu akwizycji sygnału z karty wykonujesz nastepującą sekwencje:
-znajdujesz poczatek transmisji
-szukasz środka pierwszego poziomu sygnału ( czyli przesuwasz sie o połowe ilości próbek jaka przypada na jeden poziom) i odczytujesz stan i wrzucasz do tablicy.
-przesuwasz sie o ilość nastepne 100 próbek ( ile wyznaczyles w punkcie 2 lub to co wyżej x 2 i znowu sprawdzasz stan i do tablicy
- i tak dalej do konca az osiagniesz ostatni stan (coś znaczacy stan)
- przeksztacasz tablice bitową na postac binarną i pózniej dekodujesz to co otrzymałes.
Pewnie nie pisze dosyc zrozumiale wiec jak bedziesz miał pytania to pisz.
AGF
Posty: 109
Rejestracja: 26 lut 2010 13:41
Wersja środowiska: LabVIEW 2010
Lokalizacja: Bydgoszcz

Re: akwizycja danych cyfrowych

Post autor: AGF »

Miej więcej tak trzeba to zrobić jak kogel Grzesiek080 napisał. Tak naprawdę chodzi o to aby odtworzyć działanie układu UART jakiegoś dowolnego uC, więc na pewno coś o tym na wiki lub w manualu jakiegoś uC znajdziesz. Oczywiście jest jeszcze problem BaudRate. Czy je znasz czy musisz zdekodować. Jeśli tak to możesz do tego wykorzystać bit startu i stopu, ale oczywiście wtedy musi występować odpowiedni czas bezczynności Lini (pomiędzy ramkami).
No i mam jeszcze pytanie czy realizujesz projekt w pracy czy na studiach?

Pozdrawiam
Andrzej
ODPOWIEDZ