Strona 1 z 1

komunikacja przez port szeregowy

: 28 lis 2006 23:58
autor: Aven
Witam. Jestem poczatkujacym urzytkownikiem LB w wersji 6.0. Pierwszy i glowny problem, ktory mam to jak stworzyc i skonfigurowac polaczenie z miernikiem cyfrowym z komputerem poprzez port com.
Na probe chcialbym, aby pokazywal miernik jakies wartosci i beda one odczytywane w LB (w pozniejszym etapie rysowane wykresy XY).

Pozdrawiam Forumowiczow.

Re: komunikacja przez port szeregowy

: 29 lis 2006 05:33
autor: bogdani
Witaj

No to wiemy co chcesz robić. Tylko nie wiemy jak brzmi pytanie i w czym jest problem.

Jeśli chodzi o to jak zacząć to proponuję zapoznać się z przykładami z LV dotyczącymi komunikacji po porcie szeregowym (niedawno ktoś o to już pytał). Potem przejrzyj przykłady ktore związane są z wyświetlanie danych na wykresach itd. (się przyda).

bogdani

Re: komunikacja przez port szeregowy

: 25 wrz 2007 18:32
autor: Aven
Witam, mam problem z komunikacja przez RS232, na VisaRead wyskakuje mi błąd i nie wiem dlaczego. Załączam same pętle z wczytywaniem danych z dwóch mierników cyfrowych Metex, dla przykładu dane z mierników po "obkrojeniu" zostały poddane prostym obliczeniom.

Dlaczego pętlę są takie a nie inne, muszę wykonywać pojedyncze obliczenia na danych pobranych z mierników Metex, po naciśnięciu przycisku "Wczytaj" program ma wczytać dane -> wykonać obliczenia -> dalej do tabeli i wykresu, a następnie ponowny "taki" odczyt danych z mierników po naciśnięciu.

Jeszcze jedna niewiadoma, jaką mam ustawić wartość "byte count" na VisaRead...

W miarę możliwości proszę o szybką pomoc z problemem.

Pozdrawiam

Re: komunikacja przez port szeregowy

: 26 wrz 2007 02:28
autor: Mikrobi
1. Inicjalizację portu szeregowego i zamknięcie sesji VISA zrób poza pętlą
2. w węzle (property node) podłaczonym do referencji VISA znajdziesz własność "Bytes At Serial Port" - wyjście podaje ile bajtów czeka na porcie szeregowym - to wartość "byte count" na VisaRead
Podobnie jak korzystasz z 'RTS State', oczywiście odczyt.
3. Unikaj sekwencji stosowej do operacji na porcie - raczej flat sequence. Będzie widać co się dzieje na diagramie.

Napisz jaki błąd dostajesz.

Re: komunikacja przez port szeregowy

: 16 paź 2007 07:22
autor: Aven
Witam, dziękuję za pomoc, trochę pomogło, ale nadal mam problemy z odczytem z RS'a.
A mianowicie przy odczycie z dwóch multimetrów Metex różnych (1. 9600 bodów, 2. 600 bodów) na tym z 600 bodów traci sie sygnał i read buffer nic nie pokazuje, co za tym idzie, Metex z 9600 pokazuje ciągle odczyt, a Metex z 600 bodów nie.
Przez to, że brakuje jednej danej wykres mi się psuje...
tutaj znalazlem coś ciekawego:
bogdani pisze: Czy ta pętla nie wykonuje się za szybko ?
Wychodzi mi że jeśli pętla wykonuje się szybkciej niż 150 razy na sekundę (9600 bitów >> 1200 bajtów >> 150 ramek z danymi) to w pewnym momencie musi czekać na dane.
Nie wiem jak szybko musisz zbierać dane, ale wrzuć do tej pętli opóźnienie, to przy okazji nie będziesz zajmował całego czasu procesora. bogdani
więc w moim przypadku data bits musi byc 7...
Parametry techniczne miernika cyfrowego Metex ME-32: - szybkość transmisji 600 bodów, - kod znakowy: 7 bitowy ASCII, - kontrola parzystości brak, - bity stopu 2 [12].
Parametry techniczne miernika cyfrowego Metex M-4640/4660 A: - szybkość transmisji 9600 bodów, - kod znakowy: 7 bitowy ASCII, - kontrola parzystości brak, - bity stopu 2 [12].
Czy to nie jest problem, że w jednej pętli jeden miernik odczytuje większą ilość ramek niż drugi, nie znam się za bardzo na tym, ale ręce mi już opadają, dlaczego zanika ten odczyt...
obliczyłem dla moich mierników wg wzorca Bogadani
9600 >> 1200 >> ~171 ramek /s 600
>> 75 >> ~11 ramek /s
A dodam, że licznik bitów bits count dla 600 bodów to 14 (1 ramka), a dla 9600 bodów 14*4 (4 ramki)
Apropo
1. Inicjalizację portu szeregowego i zamknięcie sesji VISA zrób poza pętlą
A co z Visa Clear?
umieściłem ja w pętli ale poza sekwencją...
I jeszcze jedno na koniec :) jak uruchamiam program z podglądem to widzę na error out (Visa Read i Write) błąd ERR(-1073807298)

Re: komunikacja przez port szeregowy

: 17 paź 2007 23:12
autor: Aven
Gdzie mógłbym znaleźć znaczenie kodu błędu np. ERR(-1073807298)?

Re: komunikacja przez port szeregowy

: 18 paź 2007 07:02
autor: jogurt_owocowy
Prawym klawiszem myszy na kontrolce z błędem i Explain Error.
W ostateczności dowiesz się, że "Error code undefined" wtedy pozostają google i oczywiście forum ;)

Re: komunikacja przez port szeregowy

: 19 paź 2007 05:57
autor: Aven
Witam, to znów ja mam problem z buforem przy odczycie danych z Metexa :(
Jak pisałem wyżej znikają mi czasem dane, jak zauwazyłem buffo przy odczycie nic nie wskazywał w takich momentach, więc przyrzałem się dokładnie co odczytuje...
Zamocowałem Property Node ustawione na odczyt używanych bajtów na porcie z Visa Read, aby sam dobierał sobie wartość, wyszło następująco:
Przy pierwszym obiegu pętli
odczytuje z pierwszego miernika: bajtów (14) odczytuje z drugiego miernika:
bajtów (56) odczyt OK(1073676294)
ale już przy drugim i to jest później stałe: odczytuje z pierwszego miernika: bajtów (15) odczytuje z drugiego miernika:
bajtów (57) i wlaśnie wtedy pojawia się ERR(-1073807298) Possible reason: VISA:Could not perform operation because of I/O error
ta liczba przy pierwszym odczycie czasem się zmienia np dla I (29) dla II (57) ale później jest stała...
I odczyt: "DC
11.99
V"
II odczyt: " DC
11.99
V" jak widać przesunięte o jeden znak...