Komunikacja rs 232

Wszelkie sprawy związane z LabVIEW i komunikacją ze sprzętem. Problemy i ciekawe rozwiązania.
Crushyna
Posty: 2
Rejestracja: 14 mar 2011 13:46
Wersja środowiska: LabVIEW 8.5

Komunikacja rs 232

Post autor: Crushyna »

Witam mam takie pytanie odnośnie bardzo podstawowej metodyki podłączania sprzętu do kompa przez rs232. Dopiero zaczynam używać lab view napisałem raptem kilka programów. jednak chciałbym podłączyć kilka urządzeń po rsie do kompa są to urządzenia pomiarowe elektrometr i lockin amplifier zastanawiam się czy wystarczy napisać program operujący funkcjami Visa(VISA open read close) i podłączyć sprzęt? Czy jest to bardzie j skomplikowane. Wiem, że pytanie morze wydać się banalne za co z góry przepraszam :ymblushing: .
PiDi
Posty: 641
Rejestracja: 31 gru 2010 01:36
Wersja środowiska: LabVIEW 2017
Lokalizacja: Katowice

Re: Komunikacja rs 232

Post autor: PiDi »

Witam, najprostsza droga, jak to zwykle bywa, prowadzi przez Help->Examples->Search i wyszukanie rs-232. Znajdziesz tam różne wariacje na temat "Serial Write and Read". Żadnej większej filozofii z eReSem nie ma ;)
ObrazekObrazekObrazekObrazek
Crushyna
Posty: 2
Rejestracja: 14 mar 2011 13:46
Wersja środowiska: LabVIEW 8.5

Re: Komunikacja rs 232

Post autor: Crushyna »

no i o to właśnie pytałem Dzięki. Zastanawiałem tylko czy trzeba coś instalować itd. :)
blumen
Posty: 18
Rejestracja: 19 kwie 2011 18:21
Wersja środowiska: LabVIEW 2010

Komunikacja rs 232

Post autor: blumen »

trzeba mieć zainstalowane "NI SERIAL" - za friko pobiera się ze strony nationala.
teslabox
Posty: 80
Rejestracja: 24 mar 2010 15:27
Wersja środowiska: LabVIEW 2010

Re: Komunikacja rs 232

Post autor: teslabox »

Witam wszystkich!

Ja też potrzebuję użyć RS232 do odczytywania wartości wysyłanych przez urządzenie zewnętrzne i do dalszej ich obróbki. Udało mi się uruchomić RS232 i działa bez zarzutu. Miałem roczną przerwę w programowaniu w LabVIEW i nieco zapomniałem i w związku z tym mam prośbę o pomoc w rozwiązaniu problemu. Problem jest mianowicie taki, że moje urządzenie transmituje dane cały czas, a mój vi odczytuje tylko taką ilość bajtów jaką mu się wpiszę w okienku. Chciałbym widzieć w okienku wszystkie bajty, a nie tylko część. Poza tym, nie wiem co zrobić z tym timeoutem, skoro chce odbierać na bieżąco dane, a nie po upływie timeoutu kilku sekund... :/. Proszę o pomoc w tym temacie.
Załączniki
RS232.vi
(12.35 KiB) Pobrany 441 razy
Awatar użytkownika
skoziate
Administrator
Posty: 245
Rejestracja: 06 mar 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Warszawa
Kontakt:

Re: Komunikacja rs 232

Post autor: skoziate »

Przy pomocy porperty node Bytes at Port sprawdzaj ile masz bajtów i odczytuj właśnie taką liczbę. Jeśli wartość jest zero, wykonaj Wait. W ten sposób będziesz na bieżąco odczytywał wszystkie wartości bez opóźnienia.
Pozdrawiam,
Sebastian
teslabox
Posty: 80
Rejestracja: 24 mar 2010 15:27
Wersja środowiska: LabVIEW 2010

Re: Komunikacja rs 232

Post autor: teslabox »

Mam taki problem z konwersją odczytanego z RS232 stringa na liczbę, że bloczek nie robi konwersji (?). Chcę to zrobić po to, aby móc podpiąć na końcu Number Indicator -> Meter, do któego można podpiąć tylko zmienne typu "number". W załączniku przesyłam VIa.
Załączniki
RS232.vi
(20.64 KiB) Pobrany 362 razy
Awatar użytkownika
Pitol
Moderator
Posty: 982
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Kraków

Re: Komunikacja rs 232

Post autor: Pitol »

A w jaki sposób urządzenie wysyła do Ciebie informacje? Czy są to znaki ASCII czy liczby w hexie? Jeśli ASCII to musisz zastosować bloczek String To Byte Array w palecie String->Conversion. Jeśli w Hex to bloczek Hexadecimal String to Number w palecie String->String/Number Conversion.
ObrazekObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj
teslabox
Posty: 80
Rejestracja: 24 mar 2010 15:27
Wersja środowiska: LabVIEW 2010

Re: Komunikacja rs 232

Post autor: teslabox »

Urządzenie wysyła bajty z wartościami liczbowymi w hexa - nie są to znaki ASCII (litery/cyfry). Poniżej screen okna terminala RS232:
Okno terminala RS232
Okno terminala RS232
Zrobiłem tak:
VI
VI
ale to nie działa :/.
PiDi
Posty: 641
Rejestracja: 31 gru 2010 01:36
Wersja środowiska: LabVIEW 2017
Lokalizacja: Katowice

Re: Komunikacja rs 232

Post autor: PiDi »

Pitol już dał Ci prawie całą odpowiedź. Użycie Hexadecimal String to Number konwertuje litery A-F na liczby 10-15, czyli tak, jak należy traktować litery w zapisie szesnastkowym liczby (D skonwertuje na 13). Ty nie dostajesz danych w zapisie szesnastkowym, co wnioskuję z pojawienia się znaków @ w terminalu (chyba, że ten znak ma w transmisji jakieś kontrolne znaczenie, ale to Ty powinieneś znać format danych, a nie ja zgadywać;). Użyj w takim razie String To Byte Array, który dokonuje konwersji znaku na jego wartość dziesiętną w ASCII (czyli D konwertuje na 68) i zapisuje to po kolei w tablicy.
A te tabulatory (09) w każdej linii też są daną, czy jakimś rozdzielaczem?
ObrazekObrazekObrazekObrazek
teslabox
Posty: 80
Rejestracja: 24 mar 2010 15:27
Wersja środowiska: LabVIEW 2010

Re: Komunikacja rs 232

Post autor: teslabox »

PiDi pisze:A te tabulatory (09) w każdej linii też są daną, czy jakimś rozdzielaczem?
Aha, kwoli objaśnienia: urządzenie wysyła dane w dwóch bajtach [B1][B0]. Terminal wyświetla je w formacie szesnastkowym, a obok wyświetla dodatkowo ich postać z tablicy ASCII, co nie ma znaczenia. Nie ma tu żadnych tabulatorów, liter czy wyrazów. To są po prostu suche liczby.
Awatar użytkownika
Pitol
Moderator
Posty: 982
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Kraków

Komunikacja rs 232

Post autor: Pitol »

Skoro odczytujesz dwa bajty z portu i są to liczby w hexie to podłącz wyjście z VISA Read do Hexadecimal String to Number i powinno być ok.
ObrazekObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj
teslabox
Posty: 80
Rejestracja: 24 mar 2010 15:27
Wersja środowiska: LabVIEW 2010

Re: Komunikacja rs 232

Post autor: teslabox »

1.jpg
Pitol - i nic... nie działa.
Załączniki
RS232.vi
(21.19 KiB) Pobrany 367 razy
PiDi
Posty: 641
Rejestracja: 31 gru 2010 01:36
Wersja środowiska: LabVIEW 2017
Lokalizacja: Katowice

Re: Komunikacja rs 232

Post autor: PiDi »

Jeśli taka jedna linia z terminala (np. "44 09") to jest jedna dwubajtowa liczba, ale nieformatowana (czysta liczba), to załącznik.
Załączniki
hex2num.vi
(8.29 KiB) Pobrany 358 razy
ObrazekObrazekObrazekObrazek
Awatar użytkownika
Pitol
Moderator
Posty: 982
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Kraków

Re: Komunikacja rs 232

Post autor: Pitol »

Przepraszam... na odwrót cały czas mówiłem. Nie chciało mi się sprawdzać...

Zastosuj rozwiązanie PiDi.
ObrazekObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj
ODPOWIEDZ