Generowanie RTS przy transmisji szeregowej
Generowanie RTS przy transmisji szeregowej
Realizuję komunikację szeregową RS485 komputera z urządzeniem zewnętrznym za pośrednictwem modułu RS232/485. Chcę wygenerować sygnał na wyjściu RTS w celu przełączenia kierunku transmisji w module pośredniczącym RS232.485. Sygnał RTS chcę załączyć przed rozpoczęciem wysyłania ciągu znaków i wyłączyć po zakończeniu wysyłania. Proszę o podpowiedź jakim sposobem mam się dowiedzieć że wysyłanie już się zakończyło . Do wysyłania użyto blok VISA write. Z góry dziękuję za każdą podpowiedź. Pozdrawiam Jan Szumski
- cyjan1
- Posty: 70
- Rejestracja: 08 paź 2012 11:55
- Wersja środowiska: LabVIEW 2017
- Lokalizacja: podkarpacie
Generowanie RTS przy transmisji szeregowej
W LabVIEW 2009 po naciśnięciu prawym przyciskiem myszy na funkcję VISA Write mam taką opcję: Synchronous I/O Mode>>Synchronous. Wówczas funkcja zakończy się po wysłaniu wszystkich danych. To powinno rozwiązać Twój problem(o ile w Twojej wersji LabVIEW też jest taka opcja).
[Edit:]We wcześniejszych wersjach ta funkcja nazywała się Do I/O Synchronously oraz Do I/O Asynchronously. Warto poczytać: http://digital.ni.com/public.nsf/allkb/ ... 0B005EEEF7
[Edit:]We wcześniejszych wersjach ta funkcja nazywała się Do I/O Synchronously oraz Do I/O Asynchronously. Warto poczytać: http://digital.ni.com/public.nsf/allkb/ ... 0B005EEEF7
Pozdrawiam
Zenek
Zenek
Re: Generowanie RTS przy transmisji szeregowej
Dziękuję za odpowiedź. Tą opcję Synchronus mam włączoną . Jednak mimo to wygląda na to że funkcja kończy się zanim ciąg znaków zostanie wysłany na port . Efekt jest taki, że sygnał RTS, który zdejmuję po zakończeniu funkcji WRITE w rzeczywistości ( tzn na oscyloskopie) znika zanim zakończy się wysyłanie. Jan Szumski
- cyjan1
- Posty: 70
- Rejestracja: 08 paź 2012 11:55
- Wersja środowiska: LabVIEW 2017
- Lokalizacja: podkarpacie
Generowanie RTS przy transmisji szeregowej
Wg opisu opcja Synchronus powinna zwalniać wątek dopiero kiedy dane zostaną wysłane z VISA do sterownika sprzętowego.
Czy funkcję wysyłania danych i wyłączania RTS masz połączoną w łańcuch klastrem error i/lub VISA resource name? Najlepiej pokaż nam swój kod.
Czy port szeregowy nie jest na USB - może to powoduje opóźnienie wysyłania danych?
Czy funkcję wysyłania danych i wyłączania RTS masz połączoną w łańcuch klastrem error i/lub VISA resource name? Najlepiej pokaż nam swój kod.
Czy port szeregowy nie jest na USB - może to powoduje opóźnienie wysyłania danych?
Pozdrawiam
Zenek
Zenek
Generowanie RTS przy transmisji szeregowej
Port szeregowy to RS232 ale za pośrednictwem stacji dokującej laptopa . Chwilowo nie będę zajmował się tym problemem z powodu pilniejszych zajęć. Napiszę jak rozwiążę problem.
Dziękuję za pomoc. Jan Szumski
Dziękuję za pomoc. Jan Szumski
Re: Generowanie RTS przy transmisji szeregowej
Problem już rozwiązany . W "Menadzerze urządzeń " we właściwościach portu COM1 wyłączyłem bufor FIFO. Dziękuję za pomoc . Pozdrawiam Jan Szumski