Pomiar za pomocą oscyloskopu Rigol DS1102D

Wszelkie sprawy związane z LabVIEW i komunikacją ze sprzętem. Problemy i ciekawe rozwiązania.
einstein
Posty: 9
Rejestracja: 22 lut 2011 17:30
Wersja środowiska: LabVIEW 2010

Pomiar za pomocą oscyloskopu Rigol DS1102D

Post autor: einstein »

Próbuję nawiązać komunikacje z oscyloskopem DS1102D za pomocą labview 2010, ale cały czas mam błędy:
Obrazek
W opcjach nie mogę zaznaczyć komunikacji po USB, więc próbowałem po rs232, ale też wysyła mi ten sam błąd.
Oscyloskop bez problemu komunikuje się za pomocą oprogramowania rigol'a i to zarówno przez rs232 jak i usb. Podejrzewam, ze problem jest z "VISA resource name" ale nie wiem co z tym zrobić, bo jest to moje pierwsze podłączenie sprzętu do labview.
Labview 2010 i VISA 2.6
Jakieś pomysły?
Awatar użytkownika
Pitol
Moderator
Posty: 982
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Kraków

Pomiar za pomocą oscyloskopu Rigol DS1102D

Post autor: Pitol »

Pokaż nam swój kod, bo tak to niewiele możemy pomóc.

Przeglądając zasoby światowej wiedzy (czyt. google) natrafić można na coś takiego:

Error -1073807246: The resource is valid, but VISA cannot currently access it

Co by świadczyło, że port, z którego chcesz skorzystać jest zajęty. Czy przypadkiem nie masz uruchomionego w tle oprogramowania oscyloskopu kiedy próbujesz odpalić program w LabVIEW? Jeśli nie, to spróbuj przed uruchomieniem programu wywołać bloczek Close Port z podanym portem gdzie podpiąłeś urządzenie.
ObrazekObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj
einstein
Posty: 9
Rejestracja: 22 lut 2011 17:30
Wersja środowiska: LabVIEW 2010

Re: Pomiar za pomocą oscyloskopu Rigol DS1102D

Post autor: einstein »

Za każdym razem wyłączam oprogramowanie producenta, próbowałem również reset kompa, by nie było nic w pamięci, ale i tak nie mogę się połączyć za pomocą usb (nie ma w ogóle połączenia usb w opcjach)
Błąd pojawia się na dowolnym porcie (com1, com7 i lpt1)
W załączniku program ściągnięty ze strony NI.
Będę wdzięczny za wszelkie sugestie.
Załączniki
RIGOL DS1000 Series Acquire Continuous Waveform.vi
(27.68 KiB) Pobrany 393 razy
Awatar użytkownika
Pitol
Moderator
Posty: 982
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Kraków

Pomiar za pomocą oscyloskopu Rigol DS1102D

Post autor: Pitol »

Z opisu błędu wynika, że problem pojawia się już w pierwszym bloczku (VISA Open) w Initialize.vi. Na stronie NI jest napisane, że wymagana jest VISA 4.3 a Ty piszesz, że używasz 2.6. Ściągnij sobie najnowszą wersję VISA i spróbuj ponownie. Może zadziałać. Dodatkowo nie widzę na liście obsługiwanych urządzeń Twojego oscyloskopu. Lista ze strony NI:

DS1052E Digital oscilloscope
DS1062CA Digital Oscilloscope
DS1064B Scope
DS1102CA Scope
DS1102E Scope
DS1104B Scope
DS1202CA Scope
DS1204B Scope
DS1302CA Scope
ObrazekObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj
einstein
Posty: 9
Rejestracja: 22 lut 2011 17:30
Wersja środowiska: LabVIEW 2010

Re: Pomiar za pomocą oscyloskopu Rigol DS1102D

Post autor: einstein »

Zainstalowałem vise 4.6, ale bez zmian, zmienił się jedynie komunikat błędu (w załaczniku)
Nadal nie mam w spisie możliwości połączenia się za pomocą USB. Więc łącze się przez COM7 (konwerter MOXA 1150i)
W spisie nie ma faktycznie DS1102D, ale sterowniki są z serii DS1000, więc powinny obsługiwać wszystkie sprzęty serii 1000.
Załączniki
error2.jpg
error2.jpg (32 KiB) Przejrzano 16655 razy
Awatar użytkownika
Pitol
Moderator
Posty: 982
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Kraków

Pomiar za pomocą oscyloskopu Rigol DS1102D

Post autor: Pitol »

A nie trzeba w oscyloskopie ustawiać po jakim protokole będzie transmisja?
ObrazekObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj
einstein
Posty: 9
Rejestracja: 22 lut 2011 17:30
Wersja środowiska: LabVIEW 2010

Re: Pomiar za pomocą oscyloskopu Rigol DS1102D

Post autor: einstein »

Przetrzepałem opcje i nie widzę nigdzie w ustawieniach oscyloskopu, bym mógł ustawić protokół. Mogę jedynie wybrać prędkość transmisji rs232 ustawienia usb (Auto detect, computer, PictBridge, na żadnym nie działa) i ustawienia gpib.
W programie firmowym wybieram tylko przez co chcę się komunikować, czy przez rs232 czy przez usb, łączę się i działa.
Awatar użytkownika
Pitol
Moderator
Posty: 982
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Kraków

Re: Pomiar za pomocą oscyloskopu Rigol DS1102D

Post autor: Pitol »

Znalazłem Programming Guide ( LINK ) dla serii DS1000 i jest w nim napisane (Chapter 3 - Programming Examples):
(...)In this text, we use USB data cable to achieve the communication between DS1000E,
DS1000D and PC. See the figure below.
(tutaj jest obrazek)
After successful connection, turn on the instrument, a dialog will guide you to install
the driver of “Rigol USB Test and Measurement Device” on the PC. For VISA
programming, the driver should be “USB Test and Measurement Device”.
Jak to u Ciebie wyglądało?
ObrazekObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj
einstein
Posty: 9
Rejestracja: 22 lut 2011 17:30
Wersja środowiska: LabVIEW 2010

Re: Pomiar za pomocą oscyloskopu Rigol DS1102D

Post autor: einstein »

Zainstalowałem jeszcze raz sterowniki, tylko wszystko na ręcznie i faktycznie była tam opcja “USB Test and Measurement Device”
Po tej zmianie pojawia się opcja VISA resource name "USB0::0x0400::0x05DC::321&5838DS1K::INSTR" a za nią błąd z zrzutu error2.jpg
Korzystając ze znalezionej przez Ciebie instrukcji (za co wielkie dzięki) zrobiłem układ taki jak na schemacie, plik visa.vi
ale pojawia się error3.jpg
Oba dotyczą chyba przekroczenia czasu na odczyt.
Załączniki
visa.vi
(15.32 KiB) Pobrany 345 razy
error3.jpg
error3.jpg (20.04 KiB) Przejrzano 16642 razy
error2.jpg
error2.jpg (32 KiB) Przejrzano 16642 razy
Awatar użytkownika
Pitol
Moderator
Posty: 982
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Kraków

Pomiar za pomocą oscyloskopu Rigol DS1102D

Post autor: Pitol »

Z opisu błędu wynika, że pojawia się on w bloczku VISA Read w Initialize.vi. Uruchom sobie tylko Initialize.vi i skorzystaj z funkcji Highlight Execution (żarówka, przycisk niedaleko przycisku Run). Zobaczysz dokładnie gdzie pojawia się błąd. Zobaczysz również, czy cokolwiek wychodzi z bloczka VISA Read (a dokładniej z wyjścia read buffer).
ObrazekObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj
einstein
Posty: 9
Rejestracja: 22 lut 2011 17:30
Wersja środowiska: LabVIEW 2010

Re: Pomiar za pomocą oscyloskopu Rigol DS1102D

Post autor: einstein »

Odpaliłem Initialize.vi i visa open zadziałało, visa write też, błąd wywaliło przy visa read i nic nie wychodzi z buforu.
Dodam jeszcze, ze oscyloskop przechodzi na pracę zdalną.
Załączniki
Initialize.vi
(33.26 KiB) Pobrany 363 razy
Awatar użytkownika
Pitol
Moderator
Posty: 982
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Kraków

Pomiar za pomocą oscyloskopu Rigol DS1102D

Post autor: Pitol »

Wygląda na to, że urządzenie nie reaguje na komendę *IDN?. A spróbuj wyłączyć ID Query i zobacz co się stanie.
ObrazekObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj
einstein
Posty: 9
Rejestracja: 22 lut 2011 17:30
Wersja środowiska: LabVIEW 2010

Re: Pomiar za pomocą oscyloskopu Rigol DS1102D

Post autor: einstein »

Podpiąłem oscyloskop przez port com i podsłuchałem jak wywołuje go program producenta
by dostać odpowiedz oscyloskopu wysyła:

Kod: Zaznacz cały

:KEY:LOCK ENABLE\n*IDN?\n
wysłałem sekwencję za pomocą terminala i dostaję odpowiedz:
RIGOL TECHNOLOGIES,DS1102D,DS1EA104500081,00.02.01.00.02

próbowałem wrzucić

Kod: Zaznacz cały

:KEY:LOCK ENABLE\n*IDN?\n
do ID Query ale chyba coś źle interpretuje znak \n czyli Line Feed, czyli nowa linia,
Próbowałem też zamiast \n dać enter w ID Query i sukces, ale połowiczny bo mam nowy błąd:
The ID Query failed. This may mean that you selected the wrong instrument or your instrument did not respond. You may also be using a model that is not officially supported by this driver. If you are sure that you have selected the correct instrument and it is responding, try disabling the ID Query.
Awatar użytkownika
Pitol
Moderator
Posty: 982
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Kraków

Re: Pomiar za pomocą oscyloskopu Rigol DS1102D

Post autor: Pitol »

einstein pisze: próbowałem wrzucić

Kod: Zaznacz cały

:KEY:LOCK ENABLE\n*IDN?\n
do ID Query ale chyba coś źle interpretuje znak \n czyli Line Feed, czyli nowa linia
W stałej string, w której wpisujesz komendę musisz włączyć Codes Display żeby dobrze interpretować \n. Klikając prawym na stałej string zobaczysz do wyboru (Normal Display, Codes Display, Hex Display, Password Display). Dopiero jak wybierzesz Codes Display wklej komendę. Jak przełączysz z powrotem na Normal Display to wszystkie \n zostaną zamienione na Enter. Dlatego działało Ci jak wprowadziłeś ręcznie znaki Enter.
einstein pisze:Próbowałem też zamiast \n dać enter w ID Query i sukces ale połowiczny bo mam nowy błąd:
The ID Query failed. This may mean that you selected the wrong instrument or your instrument did not respond. You may also be using a model that is not officially supported by this driver. If you are sure that you have selected the correct instrument and it is responding, try disabling the ID Query.
Ten błąd jest opisany w kodzie... Znaczy tyle, że nie ma nazwy Twojego oscyloskopu na liście. Masz dwa wyjścia:
1. Po prostu dodaj sobie do tablicy (albo zmodyfikuj jeden z obecnych wpisów), która jest w Initialize.vi nazwę swojego sprzętu (czyli RIGOL TECHNOLOGIES,DS1102D) i powinno pójść dalej,
2. Nie korzystaj z ID Query

Co do komend :KEY:LOCK ENABLE to nie wiem czemu to jest wysyłane, skoro ta komenda służy do włączania/wyłączania przycisków na panelu głównym oscyloskopu... W każdym razie wydaje mi się, że sekretem poprawnej komunikacji może być znak nowej linii na końcu... no nie wiem, popróbuj, daj znać co z tego wyjdzie.
ObrazekObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj
einstein
Posty: 9
Rejestracja: 22 lut 2011 17:30
Wersja środowiska: LabVIEW 2010

Re: Pomiar za pomocą oscyloskopu Rigol DS1102D

Post autor: einstein »

W chwili obecnej działa inicjalizacja, wysyłam samo:

Kod: Zaznacz cały

\n*IDN?\n
Są też ale, działa tylko na prędkości 9600bps, na innych nie działa, łącznie z usb.
Wcześniej zdążyłem dopisać mój oscyloskop do listy inicjalizacja przeszła.
W chwili obecnej program wykłada się na Fetch Waveform.vi w miejscu gdzie dopisywane jest info o

Kod: Zaznacz cały

:SCAL?
(2 od lewej moduł visa read, łączenie

Kod: Zaznacz cały

:CHAN1
z

Kod: Zaznacz cały

:SCAL?
) wysyłanie idzie bez błędu, błąd pojawia się przy odczycie i pojawia się znany błąd 1073807339
Załączniki
Fetch Waveform.vi
(30.84 KiB) Pobrany 351 razy
ODPOWIEDZ