Połączenie RS-232 z urządzeniem ADT4U

Wszelkie sprawy związane z LabVIEW i komunikacją ze sprzętem. Problemy i ciekawe rozwiązania.
czmiel88
Posty: 1
Rejestracja: 07 gru 2011 16:01
Wersja środowiska: LabVIEW 2009

Połączenie RS-232 z urządzeniem ADT4U

Post autor: czmiel88 »

Mam problem z napisaniem programu w LabVIEW, który będzie wysyłał przez ramkę sygnał do użąrzenia ADT4U, zczytywał dane z tego wzmacniacza i będzie wyświetlał je na grafie lub zapisywał w jakieś tabeli. Pierwszy raz spotkałem się z programem LabVIEW i nie bardzo wiem jak mam wysłać ramkę danych do urządzenia ADT4U a by odczytać wartości. Zakupiłem też Książkę LabVIEW dla studentów, w której połączenie przez RS-232 nie zostało opracowane :( . Korzystam z LabVIEW 2009. Po tygodniu prób i błędów stwierdziłem, że sam sobie z tym nie poradzę.

Wyjście cyfrowe
ADT4U Może pracować z dowolna aplikacja użytkownika obsługująca łącze
szeregowe, gdy_ korzysta z wirtualnego portu COM (dla wersji RS232 z rzeczywistego portu
COM) tworzonego przy instalowaniu sterowników. Po stronie aplikacji połączenie jest
widziane jako zwykłe połączenie szeregowe.
Parametry transmisji:
Prędkość transmisji: 57600bps
Bity danych: 8
Bity stopu: 1
Parzystość: brak
Time out: 3ms


By odczytać aktualna wartość pomiaru należy wysłać następującą ramkę danych (podane
wartości w systemie heksadecymalnym):
0x24 | 0x79 | WE_ID | 0x00 | 0x00 | 0x00 | 0x00 | WE_ID

Wskaźnik odpowie odsyłając następującą ramkę:
0x24 | 0x79 | WE_ID | Data1 | Data2 | Data3 | Data4 | CS

gdzie: Data1…Data4 – 4 kolejne bajty wyniku zapisane jako liczba typu signed long (wartość 4 - bajtowa ze znakiem). Przy czym Data1 – bajt najmłodszy. Otrzymana wartość jestprzemnożona przez 1000.
WE_ID = 0x33 – wartosc sumaryczna wybranych kanałów
WE_ID = 0x34 – wartosc kanału 1 WE_ID = 0x35 – wartosc kanału 2
WE_ID = 0x36 – wartosc kanału 3 WE_ID = 0x37 – wartosc kanału 4
CS – suma kontrolna (CS = WE_ID + Data1 + Data2 + Data3 + Data4)
Odczyt można dokonywać z prędkością nie większa niż 80 razy / sekundę.
„Timeout” transmisji wynosi 3ms – odstępy między kolejnymi bajtami rozkazu nie mogą być dłuższe niż3ms. W przeciwnym wypadku urządzenie nie zinterpretuje komendy.


Pozdrawiam Rafał Chmiela
Załączniki
proba2.vi
(17.57 KiB) Pobrany 371 razy
marek323
OptiNav
Posty: 20
Rejestracja: 19 cze 2011 13:27
Wersja środowiska: LabVIEW 2017

Połączenie RS-232 z urządzeniem ADT4U

Post autor: marek323 »

w takim razie:
1. masz zla predkosc transmisji
2. wysylasz zle polecenie, moja sugestia to ustaw sobie wyswietlanie stringa w postaci hexow i tam poprostu wpisz swoja komende zamiast 1 tak jak jest teraz
3. timeout pomiedzy wyslaniem a odebraniem 500ms moze byc za duzy choc nie wiem czy to moze miec jakies znaczenie
AGF
Posty: 109
Rejestracja: 26 lut 2010 13:41
Wersja środowiska: LabVIEW 2010
Lokalizacja: Bydgoszcz

Re: Połączenie RS-232 z urządzeniem ADT4U

Post autor: AGF »

Na szybko poprawiłem twój vi. Porównaj, sprawdź i wyciągnij wnioski :D
Załączniki
proba3.vi
(19.97 KiB) Pobrany 387 razy
AGF
Posty: 109
Rejestracja: 26 lut 2010 13:41
Wersja środowiska: LabVIEW 2010
Lokalizacja: Bydgoszcz

Re: Połączenie RS-232 z urządzeniem ADT4U

Post autor: AGF »

Przesyłam dla LV 2009 jaka prosiłeś.
Załączniki
proba3.vi
dla LV 2009
(14.6 KiB) Pobrany 373 razy
ODPOWIEDZ