Witam
Mam problem z odczytem danych z urządzenia, wysyłam mu "stringa" na którego powinien mi zwrócić odpowiedź, ale nie potrafię nic odczytywać, próbowałem już na różne sposoby, zawsze ten sam błąd, załączam screena z podglądem na którym widać błąd i kod. Czy ktoś może mi podpowiedzieć gdzie popełniam błąd?
http://imageshack.us/photo/my-images/830/17607087.jpg/
Pozdrawiam
Odczyt danych RS
Odczyt danych RS
- Załączniki
-
- RS2322.vi
- (25.55 KiB) Pobrany 273 razy
- Ender
- Posty: 137
- Rejestracja: 02 cze 2005 00:00
- Wersja środowiska: LabVIEW 2009
- Lokalizacja: Cieszyn
Odczyt danych RS
Kod błędu który otrzymujesz oznacza timeout - wystarczy poszukać. Niestety nie mogę otworzyć Twojego VI, ale z tego co widzę na screenie przy konfiguracji portu ustawiłeś timeout na 1ms (te 10s to zmyłka, jednostka to ms) - nie wiem z czym się komunikujesz, ale stawiam na to że najzwyczajniej w świecie urządzenie nie zdąży wysłać odpowiedzi.
-Czy orał pan już kiedyś morskie fale?
Colon rzucił mu chytre spojrzenie.
-Nie złapie mnie pan na taki numer, sir - rzekł - Wszyscy wiedzą, że konie by potonęły.
Leonard umilkł na chwilę i przestroił swój mózg na Radio Colon ....
Colon rzucił mu chytre spojrzenie.
-Nie złapie mnie pan na taki numer, sir - rzekł - Wszyscy wiedzą, że konie by potonęły.
Leonard umilkł na chwilę i przestroił swój mózg na Radio Colon ....
Odczyt danych RS
Urządzenie którym się bawię wykrywa zmianę swojego położenia w trzech osiach, w stringu którego mu wysyłam powinien mi zwrócić aktualne położenie na jednej z osi. Zwiększając mu timeout nic nie uzyskałem. dalej to samo. Korzystałem też z helpa ale też nie uzyskałem odpowiedzi mojego urządzenia.
Re: Odczyt danych RS
1. Tak skonfigurowana komunikacja dodatkowo na samym końcu wysyła Termination Char. Jeżeli twoje urządzenie musi dostać dokładnie taki ciąg znaków jaki wpisywałeś w string to write, to podczas konfiguracji wyłącz TC.
2. Użyj VISA Bytes at Serial Port do odczytania ilości bajtów jakie czekają na odczytanie. Jeżeli po wysłaniu będziesz tam miał cały czas 0 to znaczy, że problem leży albo w urządzeniu, konfiguracji komunikacji lub samej komunikacji. Jeżeli możesz sprawdź, czy urządzenie dostaje to co chcesz mu wysłać.
3. read string wyciągnij poza CASE, ponieważ nawet gdy odczytasz jakiekolwiek dane to w następnej iteracji wyczyści go
4. W końcowej aplikacji zrób inny sposób "wyzwalania" zapisu, ponieważ w tym przypadku wysyłasz te dane co iteracje pętli. To samo tyczy się z odczytem.
2. Użyj VISA Bytes at Serial Port do odczytania ilości bajtów jakie czekają na odczytanie. Jeżeli po wysłaniu będziesz tam miał cały czas 0 to znaczy, że problem leży albo w urządzeniu, konfiguracji komunikacji lub samej komunikacji. Jeżeli możesz sprawdź, czy urządzenie dostaje to co chcesz mu wysłać.
3. read string wyciągnij poza CASE, ponieważ nawet gdy odczytasz jakiekolwiek dane to w następnej iteracji wyczyści go
4. W końcowej aplikacji zrób inny sposób "wyzwalania" zapisu, ponieważ w tym przypadku wysyłasz te dane co iteracje pętli. To samo tyczy się z odczytem.
