Generowanie RTS przy transmisji szeregowej

Jeśli masz coś do powiedzenia w sprawie LabVIEW napisz. Tutaj są tematy, których nie można uściślić do innych działów.
janszum
Posty: 4
Rejestracja: 22 kwie 2014 13:39
Wersja środowiska: LabVIEW 7.0

Generowanie RTS przy transmisji szeregowej

Post autor: janszum »

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
Awatar użytkownika
cyjan1
Posty: 70
Rejestracja: 08 paź 2012 11:55
Wersja środowiska: LabVIEW 2017
Lokalizacja: podkarpacie

Generowanie RTS przy transmisji szeregowej

Post autor: cyjan1 »

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
Pozdrawiam
Zenek
janszum
Posty: 4
Rejestracja: 22 kwie 2014 13:39
Wersja środowiska: LabVIEW 7.0

Re: Generowanie RTS przy transmisji szeregowej

Post autor: janszum »

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
Awatar użytkownika
cyjan1
Posty: 70
Rejestracja: 08 paź 2012 11:55
Wersja środowiska: LabVIEW 2017
Lokalizacja: podkarpacie

Generowanie RTS przy transmisji szeregowej

Post autor: cyjan1 »

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?
Pozdrawiam
Zenek
janszum
Posty: 4
Rejestracja: 22 kwie 2014 13:39
Wersja środowiska: LabVIEW 7.0

Generowanie RTS przy transmisji szeregowej

Post autor: janszum »

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
janszum
Posty: 4
Rejestracja: 22 kwie 2014 13:39
Wersja środowiska: LabVIEW 7.0

Re: Generowanie RTS przy transmisji szeregowej

Post autor: janszum »

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
ODPOWIEDZ