Odczyt portu szeregowego - overrun error

Wszelkie sprawy związane z LabVIEW i komunikacją ze sprzętem. Problemy i ciekawe rozwiązania.
PrzemB
Posty: 38
Rejestracja: 24 mar 2015 18:42
Wersja środowiska: LabVIEW 2017

Odczyt portu szeregowego - overrun error

Post autor: PrzemB »

Witam,
mam problem z odczytem z portu szeregowego. Robiłem to wiele razy ale teraz przy nowym urządzeniu mam kłopot.
Czujnik podłączony do komputera poprzez adapter FTDI, ustawiony na streamowanie danych. W terminalu odbieram dane bez problemu
serial port - terminal.PNG

Robię w LV prosty monitor portu:
serial port read - block diagram.png

Niestety po uruchomieniu krzyczy błędem
serial port read - error.PNG
Po kliknięciu 'Continue' odbiera kilka ramek i znowu wyrzuca błąd. Czym może to być spowodowane? Sprawdzałem różne taktowania pętli i ustawienia timeout w konfiguracji portu, bez wpływu na to zachowanie. Będę wdzięczny za wszelkie sugestie do sprawdzenia.

Pozdrawiam
Przemek
marek323
OptiNav
Posty: 20
Rejestracja: 19 cze 2011 13:27
Wersja środowiska: LabVIEW 2017

Re: Odczyt portu szeregowego - overrun error

Post autor: marek323 »

https://forums.ni.com/t5/Instrument-Con ... anguage=en

1. Zwiększ bufor
2. Jeśli nie boli Cię utrata paru ramek - obsłuż błąd
3. Concatenate string też bym wyrzucił dla zasady ;)
4. Wait Until Next ms Multiple - też raczej do śmietnika skoro się nie wyrabia z odczytem
darekc
Posty: 77
Rejestracja: 29 mar 2007 00:00
Lokalizacja: Gliwice

Re: Odczyt portu szeregowego - overrun error

Post autor: darekc »

Ramki danych są zakończone znakami niedrukowalnymi, CR (kod ASCII 13) i LF (kod ASCII 10), można tą własność wykorzystać do uproszczenia diagramu.
PrzemB
Posty: 38
Rejestracja: 24 mar 2015 18:42
Wersja środowiska: LabVIEW 2017

Re: Odczyt portu szeregowego - overrun error

Post autor: PrzemB »

marek323 pisze: 13 lip 2021 16:53 3. Concatenate string też bym wyrzucił dla zasady ;)
To jak inaczej wyświetlić zebrane ramki danych?

Pozdrawiam
marek323
OptiNav
Posty: 20
Rejestracja: 19 cze 2011 13:27
Wersja środowiska: LabVIEW 2017

Re: Odczyt portu szeregowego - overrun error

Post autor: marek323 »

Chodzą słuchy, że format into string jest szybszy.
A żeby było na ładnie, kolejka do drugiej pętli i tam sobie już z tym stringiem robić co się chce ;)

Pozbyłeś się już błędu?
darekc
Posty: 77
Rejestracja: 29 mar 2007 00:00
Lokalizacja: Gliwice

Re: Odczyt portu szeregowego - overrun error

Post autor: darekc »

W jakich odstępach czasu czujnik wysyła ramki?
PrzemB
Posty: 38
Rejestracja: 24 mar 2015 18:42
Wersja środowiska: LabVIEW 2017

Re: Odczyt portu szeregowego - overrun error

Post autor: PrzemB »

Dane są wysyłane 100Hz, więc 5ms pozwala na ogarnięcie wszystkiego.
Przetestowałem na innym komputerze i wszystko działa normalnie, bez żadnych zmian w programie. :-? Muszę sprawdzić na notebooku czy nie mam jakiś dziwnych ustawień portu albo błędnego sterownika do ftdi - może to to?

Dzięki wszystkim za uwagi i komentarze.
darekc
Posty: 77
Rejestracja: 29 mar 2007 00:00
Lokalizacja: Gliwice

Re: Odczyt portu szeregowego - overrun error

Post autor: darekc »

Taka propozycja wykorzystania faktu, że ramki są zakończone znakiem LF.
Odczyt.JPG
ODPOWIEDZ