Strona 1 z 1

SCPI + Keithley

: 04 sty 2007 15:47
autor: mardu
Witam

Pisząc oprogramowanie obsługujące elektrometr Keihley w LabView przez SCPI mam następujący problem:
zbudowałem bloczki obsługujące poszczególne funkcje programujące (Zakres, Trigger, Filtr itd). Kiedy każdy z tych bloczków testuję pojedynczo wszystko działa dobrze. Ale kiedy połączyłem wszystko w jeden dłuższy łańcuch wtedy pojawiają się problemy (w losowych momentach).
Urządzenie sygnalizuje następujący błąd (wraz z opisem z manuala):

+807 "RS-232 OFLO; Characters lost" — A character
was received but discarded due to a lack of input
buffer space. Each line-feed character (<LF>) closes
a buffer and opens another. Thus, if too many
line-feeds are sent in succession, then all buffers
will fill before they have a chance to be read.

Nie wiem jak ugryźć ten problem.
Może powinienem sprawdzać *OPC? czy polecenie zostało wykonane?
Może jakieś opóźnienia wystarczą? Czy też może problem leży raczej zupełnie gdzie indziej?

Proszę o jakieś wskazówki.

pozdrawiam

Re: SCPI + Keithley

: 09 sty 2007 10:50
autor: bogdani
Witaj

Trochę trudno tu prognozować bez kodu, który jest wykonywany, ale spróbuj dodać nieduże opóźnienia między kolejne wysłanie komendy.
Podany przez ciebie opis sugeruje, iż miernik nie jest w stanie odebrać wszystkich komend z powodu braku miejsca w buforze.

Jeśli dalej błąd będzie się pojawiał zacznij sprawdzać wykonywanie komend.

Znacznie więcej będzie można powiedzieć jak pokażesz swój kod programu.

bogdani

Re: SCPI + Keithley

: 09 sty 2007 11:18
autor: mardu
Dziękuję za odpowiedź.

Wczoraj udało mi się rozwiązać problem, działem podobnie do Twoich sugestii.
Najpierw kombinowałem z opóźnieniami w różnych punktach programu, ale to nic nie pomogło. W którymś momencie zastanowiło mnie, że:
1) Błędy pojawiają się w różnych miejscach - losowo
2) Kiedy włączyłem tryb debugowania (z graficznym pokazaniem przepływu sygnałów) okazało się że wszystko dobrze działa.

Na podstawie wszystkich prób zmniejszyłem prędkość transmisji z 9600bps na 4800bps i wszystko zaczęło działać dobrze. Podejrzewam, że mimo że elektrometr teoretycznie może działać przy 19200bps to przy większej ilości komunikatów z rzędu nie wyrabia się z ich przetwarzaniem i zapycha mu się bufor.
Niestety nie mogę znaleźć informacji o wielkości tego bufora komunikatów, a przydałaby się.

Pozdrawiam