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.
komunikacja przez port szeregowy
-
- Administrator
- Posty: 1315
- Rejestracja: 30 lip 2003 00:00
- Wersja środowiska: LabVIEW 2015
- Lokalizacja: Ruda Śląska
- Kontakt:
Re: komunikacja przez port szeregowy
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
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
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
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
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.
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
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:
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
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)
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:
więc w moim przypadku data bits musi byc 7...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
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
A co z Visa Clear?1. Inicjalizację portu szeregowego i zamknięcie sesji VISA zrób poza pętlą
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)
Ostatnio zmieniony 16 paź 2007 07:37 przez Aven, łącznie zmieniany 4 razy.
Re: komunikacja przez port szeregowy
Gdzie mógłbym znaleźć znaczenie kodu błędu np. ERR(-1073807298)?
- jogurt_owocowy
- Posty: 1317
- Rejestracja: 30 lis 2004 00:00
- Wersja środowiska: LabVIEW 2015
- Lokalizacja: Kraków
Re: komunikacja przez port szeregowy
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 ;)
W ostateczności dowiesz się, że "Error code undefined" wtedy pozostają google i oczywiście forum ;)
Re: komunikacja przez port szeregowy
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...
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...