Odczyt portu szeregowego - overrun error

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

Odczyt portu szeregowego - overrun error

Post autor: PrzemB » 13 lip 2021 14:44

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
Been thanked: 2 times

Re: Odczyt portu szeregowego - overrun error

Post autor: marek323 » 13 lip 2021 16:53

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
Been thanked: 2 times

Re: Odczyt portu szeregowego - overrun error

Post autor: darekc » 13 lip 2021 17:06

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: 35
Rejestracja: 24 mar 2015 18:42
Wersja środowiska: LabVIEW 2017
Has thanked: 3 times

Re: Odczyt portu szeregowego - overrun error

Post autor: PrzemB » 15 lip 2021 09:30

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
Been thanked: 2 times

Re: Odczyt portu szeregowego - overrun error

Post autor: marek323 » 15 lip 2021 09:53

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
Been thanked: 2 times

Re: Odczyt portu szeregowego - overrun error

Post autor: darekc » 15 lip 2021 12:38

W jakich odstępach czasu czujnik wysyła ramki?

PrzemB
Posty: 35
Rejestracja: 24 mar 2015 18:42
Wersja środowiska: LabVIEW 2017
Has thanked: 3 times

Re: Odczyt portu szeregowego - overrun error

Post autor: PrzemB » 15 lip 2021 13:29

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
Been thanked: 2 times

Re: Odczyt portu szeregowego - overrun error

Post autor: darekc » 15 lip 2021 13:33

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

ODPOWIEDZ