Standardowe polecenia programowanych urządzeń Podstawy Paweł Klimczewski 2 grudnia 2011 ang. SCPI Standard Commands for Programmable Instruments. 1
Spis treści 1 Wprowadzenie 4 1.1 Polecenia i zapytania......................... 4 1.2 Polecenia wspólne i złożone..................... 4 1.3 Skróty................................. 4 1.4 Argumenty poleceń i zapytań.................... 5 1.4.1 Oznaczenia.......................... 5 1.5 Łączenie poleceń........................... 5 2 Polecenia wspólne 6 3 Generator Agilent 33220 7 3.1 Rodzaj sygnału............................ 7 3.2 Częstotliwość sygnału........................ 7 3.3 Amplituda sygnału.......................... 7 3.4 Składowa stała w sygnale...................... 7 3.5 Załączenie sygnału wyjściowego................... 8 4 Oscyloskop TDS 1002 9 4.1 Tor sygnałowy............................ 9 4.1.1 Uaktywnienie pomiarów w danym kanale......... 9 4.1.2 Wielkość tłumienia sondy pomiarowej........... 9 4.1.3 Wzmocnienie......................... 9 4.1.4 Wybór rodzaju sygnału................... 9 4.1.5 Przesunięcie wykresu w pionie............... 10 4.2 Podstawa czasu............................ 11 4.2.1 Szybkość podstawy czasu.................. 11 4.2.2 Przesunięcie środka wykresu względem punktu wyzwalania 11 4.3 Układ wyzwalania.......................... 12 4.3.1 Tryb pracy.......................... 12 4.3.2 Poziom wyzwalania...................... 12 4.3.3 Wybór źródła sygnału synchronizacji............ 12 4.3.4 Wybór rodzaju zbocza.................... 12 4.3.5 Wybór dodatkowego filtru.................. 12 4.4 Pomiar................................. 13 4.4.1 Tryb pomiaru......................... 13 4.4.2 Liczba uśrednianych przebiegów.............. 13 4.4.3 Czas trwania pomiaru.................... 13 4.4.4 Rozpoczęcie i zatrzymanie pomiarów............ 13 4.5 Odczytywanie własności związanych z pomiarem......... 14 4.5.1 Wybór pomiaru....................... 14 4.5.2 Wybór własności....................... 14 4.5.3 Odczytanie wyniku...................... 14 4.5.4 Odczytanie jednostki..................... 14 4.6 Odczytanie wykresu......................... 15 2
4.6.1 Określenie sposobu zapisu liczb............... 15 4.6.2 Wybór wykresu........................ 15 4.6.3 Odczytanie współrzędnych.................. 15 4.6.4 Obliczenie t i......................... 15 4.6.5 Obliczenie u i, umin i, umax i................ 17 4.7 Dodatkowe.............................. 18 4.7.1 Przywrócenie ustawień fabrycznych............. 18 4.7.2 Poprzedzanie odpowiedzi treścią zapytania........ 18 3
1 Wprowadzenie 1.1 Polecenia i zapytania Polecenie (ang. command) jest związane z wykonaniem przez urządzenie pewnej czynności (np. zmiany częstotliwości sygnału w generatorze). Wykonaniu polecenia nie towarzyszy żadna informacja zwrotna. Standardowe polecenie *rst (ang. reset) przywraca ustawienia początkowe urządzenia. Polecenie zakończone znakiem zapytania oznacza zapytanie (ang. query). Najczęściej, zapytanie nie jest związane z wykonaniem żadnej operacji, a jedynie z odczytaniem wartości wybranego parametru urządzenia (np. wielkości amplitudy sygnału w generatorze). Standardowe zapytanie *idn? (ang. identify) odczytuje identyfikator urządzenia. Wielkość liter w treści poleceń i zapytań nie ma znaczenia. 1.2 Polecenia wspólne i złożone Cechą poleceń wspólnych (ang. common) jest ich implementacja przez każde urządzenie. Polecenia (zapytania) wspólne składają się z jednego członu poprzedzonego znakiem gwiazdka. Standardowe polecenie *cls (ang. clear status) usuwa z urządzenia komunikaty o błędach dotyczących wykonanych wcześniej poleceń. Polecenia (zapytania) złożone (ang. compound) składają się z jednego lub więcej członów oddzielonych dwukropkami. W przypadku generatora polecenie :voltage:offset? odczytuje wartość składowej stałej w generowanym sygnale. 1.3 Skróty Każdemu poleceniu (zapytaniu) odpowiada wersja skrócona. Zwyczajowo w dokumentacji część reprezentująca skrót jest zapisana wielkimi literami, np. :VOLTage:OFFSet?. Wersja skrócona tego zapytania jest następująca :volt:offs? 4
1.4 Argumenty poleceń i zapytań Większość poleceń (zapytań) wymaga podania dodatkowych argumentów jak liczby, jednostki itd. Argumenty oddzielamy od nazwy polecenia przynajmniej jedną spacją, a między sobą spacjami lub przecinkami, zgodnie z opisem w dokumentacji. 1.4.1 Oznaczenia <NR1> oznacza liczbę całkowitą, np. 10, -3, +1. <NR2> oznacza liczbę <NR1> lub liczbę rzeczywistą zapisaną przy pomocy kropki dziesiętnej, np. 3.14. <NR3> oznacza liczbę <NR1> lub <NR2> lub liczbę rzeczywistą w notacji wykładniczej, np. 100e-6. {1 10 100 1000} człony oddzielone pionowymi kreskami i ujęte w nawiasy klamrowe przedstawiają możliwe wartości argumentu. Podkreśleniem zaznaczono wartości ustawiane podczas zerowania urządzenia poleceniem *rst. [{mv V}] argumenty zapisane w nawiasach kwadratowych są opcjonalne i można je pominąć. Podkreśleniem zaznaczono wartości przyjmowane przy pominięciu argumentu. 1.5 Łączenie poleceń W jednym wierszu można zapisać kilka poleceń (zapytań). Poszczególne polecenia (zapytania) oddzielamy średnikami. Przesłanie do urządzenia wiersza *rst; *cls; *idn? spowoduje kolejno wyzerowanie urządzenia, usunięcie informacji o błędach i odczytanie identyfikatora urządzenia. W przypadku poleceń złożonych możemy wyróżnić podgrupy powiązane tematycznie. Polecenia pojedynczej podgrupy można przedstawić w postaci struktury drzewiastej, np. VOLTage AMPLitude OFFSet Jeżeli podczas zapisu po sobie kilku poleceń złożonych, nazwa kolejnego polecenia nie rozpoczyna się od dwukropka, to poprzedza się ją wszystkimi, poza ostatnim, członami polecenia poprzedzającego. I tak polecenia :voltage:amplitude 5; :voltage:offset 0 :voltage:amplitude 5; offset 0 są równoważne. 5
2 Polecenia wspólne *rst wyzerowanie urządzenia. *cls wyzerowanie informacji o błędach. *idn? zapytanie o identyfikator. *opc? (ang. operation complete) zapytanie o zakończenie wykonania poprzedzających poleceń. W odpowiedzi na zapytanie po zakończeniu wykonywania poprzedzających poleceń urządzenie prześle wartość 1. *wai (ang. wait) oczekiwanie na zakończenie wykonania poprzedzających poleceń. 6
3 Generator Agilent 33220 3.1 Rodzaj sygnału Polecenie :FUNCtion:SHAPe {SINusoid SQUare TRIangle} ustala rodzaj generowanego sygnału. Zapytanie :FUNCtion:SHAPe? odczytuje rodzaj generowanego sygnału. 3.2 Częstotliwość sygnału Polecenie :FREQuency <NR3> [{Hz khz MHz}] ustala częstotliwość generowanego sygnału. Zapytanie :FREQuency? odczytuje częstotliwość generowanego sygnału w Hz. Zakres częstotliwości pracy generatora wynosi od 10 mhz do 16 MHz. Wyzerowanie urządzenia poleceniem *rst ustala częstotliwość równą 100 khz. 3.3 Amplituda sygnału Polecenie :VOLTage:AMPLitude <NR2> [{mv V}] ustala amplitudę generowanego sygnału. Zapytanie :VOLTage:AMPLitude? odczytuje amplitudę generowanego sygnału w V. Zakres dozwolonych amplitud wynosi od 0 do 10 V. Wyzerowanie urządzenia poleceniem *rst ustala amplitudę równą 1 V. 3.4 Składowa stała w sygnale Polecenie :VOLTage:OFFSet <NR2> [{mv V}] ustala wartość składowej stałej w generowanym sygnale. Zapytanie :VOLTage:OFFSet? odczytuje wartość składowej stałej. Zakres dozwolonych wartości napięcia wynosi od -5 V do 5 V. Wyzerowanie urządzenia poleceniem *rst ustala wartość napięcia równą 0 V. 7
3.5 Załączenie sygnału wyjściowego Polecenie :OUTPut {0 1} odłącza (odpowiednio załącza) sygnał na wyjściu generatora. Zapytanie :OUTPut? odczytuje stan odłączenia lub załączenia sygnału na wyjściu generatora. 8
4 Oscyloskop TDS 1002 4.1 Tor sygnałowy 4.1.1 Uaktywnienie pomiarów w danym kanale :SELect:{CH1 CH2} {0 1} :SELect:{CH1 CH2}? Bezpośrednio po wyzerowaniu urządzenia poleceniem *rst pomiary w kanale CH1 są włączone (:SELect:CH1 1), a w kanale CH2 wyłączone (:SELect:CH2 0). 4.1.2 Wielkość tłumienia sondy pomiarowej W celu zwiększenia zakresu napięć mierzonych oscyloskopem sondy pomiarowe posiadają często dodatkowy dzielnik napięcia. W celu poprawnego wyświetlania wartości mierzonych napięć przez oscyloskop należy podać wielkość tłumienia zastosowanej sondy pomiarowej. :{CH1 CH2}:PRObe {1 10 100 1000} :{CH1 CH2}:PRObe? 4.1.3 Wzmocnienie :{CH1 CH2}:SCAle <NR3> :{CH1 CH2}:SCAle? Jednostka V/ podziałkę (ang. V/div). Wartość po wyzerowaniu poleceniem *rst wynosi 1 V/div. tłumienie zakres wzmocnienia 1 2 mv...5 V 10 20 mv...50 V 100 200 mv...500 V 1000 2 V...5000 V Tablica 1: Zakres wzmocnienia toru sygnałowego 4.1.4 Wybór rodzaju sygnału :{CH1 CH2}:COUPling {AC DC GND} :{CH1 CH2}:COUPling? Ustawienie AC pomija składową stałą napięcia. 9
4.1.5 Przesunięcie wykresu w pionie :{CH1 CH2}:POSition <NR3> :{CH1 CH2}:POSition? Jednostką jest podziałka (ang. division). Wartość po wyzerowaniu poleceniem *rst wynosi 0. 10
4.2 Podstawa czasu 4.2.1 Szybkość podstawy czasu :HORizontal:MAIn:SCAle <NR3> :HORizontal:MAIn:SCAle? Jednostką jest sekunda/ podziałkę (ang. s/div). Wartość po wyzerowaniu poleceniem *rst wynosi 500 µs/div. 4.2.2 Przesunięcie środka wykresu względem punktu wyzwalania :HORizontal:MAIn:POSition <NR3> :HORizontal:MAIn:POSition? Jednostką jest sekunda. Wartość po wyzerowaniu poleceniem *rst wynosi 0. 11
4.3 Układ wyzwalania 4.3.1 Tryb pracy :TRIGger:MAIn:MODe {AUTO NORMal} :TRIGger:MAIn:MODe? W trybie NORMAL pomiar jest inicjowany przez impuls synchronizacyjny. W trybie AUTO przy braku impulsów synchronizacyjnych pomiary są inicjowane automatycznie. 4.3.2 Poziom wyzwalania :TRIGger:MAIn:LEVel <NR3> :TRIGger:MAIn:LEVel? Jednostką jest V. Wartość po wyzerowaniu poleceniem *rst wynosi 0. 4.3.3 Wybór źródła sygnału synchronizacji :TRIGger:MAIn:EDGE:SOUrce {CH1 CH2 EXT EXT5 LINE} :TRIGger:MAIn:EDGE:SOUrce? 4.3.4 Wybór rodzaju zbocza :TRIGger:MAIn:EDGE:SLOpe {FALL RISe} :TRIGger:MAIn:EDGE:SLOpe? 4.3.5 Wybór dodatkowego filtru :TRIGger:MAIn:EDGE:COUPling {AC DC HFRej LFRej NOISErej} :TRIGger:MAIn:EDGE:COUPling? 12
4.4 Pomiar 4.4.1 Tryb pomiaru :ACQuire:MODe {SAMple PEAKdetect AVErage} :ACQuire:MODe? Parametr określa sposób tworzenia wykresu. W trybach SAMPLE i PEAKDETECT wykres tworzony jest na podstawie pojedynczego pomiaru, w trybie AVERAGE jako wartość średnia NUMAVG kolejnych pomiarów. W trybach SAMPLE i AVERAGE wykres tworzony z 2500 punktów o współrzędnych (t i, u i ), gdzie t i określa moment pomiaru, a u i odpowiadającą wartość napięcia. W trybie PEAKDETECT wykres tworzony jest z 1250 odcinków o końcach A = (t i, umin i ) i B = (t i, umax i ), gdzie (t i, t i+1 ) określa przedział czasu podczas którego realizowano pomiar, umin i jest najmniejszą wartością napięcia zmierzoną podczas pomiaru, umax i jest największą wartością napięcia zmierzoną podczas pomiaru. 4.4.2 Liczba uśrednianych przebiegów :ACQuire:NUMAVg {4 16 64 128} :ACQuire:NUMAVg? 4.4.3 Czas trwania pomiaru :ACQuire:STOPAfter {RUNSTop SEQuence} :ACQuire:STOPAfter? W trybie SEQUENCE wykonywany jest jeden pomiar. W trybie RUNSTOP pomiary wykonywane są w sposób ciągły: po zakończeniu pomiaru bieżącego rozpoczyna się pomiar następny. 4.4.4 Rozpoczęcie i zatrzymanie pomiarów :ACQuire:STATE {0 1} :ACQuire:STATE? Polecenie 0 rozpoczyna, a polecenie 1 zatrzymuje pomiary. Po rozpoczęciu pomiaru należy poczekać na jego zakończenie przy pomocy zapytania *opc? 13
4.5 Odczytywanie własności związanych z pomiarem 4.5.1 Wybór pomiaru :MEASUrement:IMMed:SOUrce CH1 CH2 :MEASUrement:IMMed:SOUrce? 4.5.2 Wybór własności :MEASUrement:IMMed:TYPe {FREQuency MEAN PERIod PK2pk CRMs MINImum MAXImum RISe FALL PWIdth NWIdth} :MEASUrement:IMMed:TYPe? 4.5.3 Odczytanie wyniku :MEASUrement:IMMed:VALue? 4.5.4 Odczytanie jednostki :MEASUrement:IMMed:UNITs? 14
4.6 Odczytanie wykresu 4.6.1 Określenie sposobu zapisu liczb Z oscyloskopu nie można odczytać wartości u i, umin i, umax i (4.4.1), a jedynie związane z nimi y i, ymin i, ymax i { 128,..., 127}. Oscyloskop umożliwia przesłanie tych wartości w pojedynczych bajtach albo w postaci tekstowej. Proponujemy skorzystanie z formatu tekstowego, który nie jest jednak automatycznie wybierany po wyzerowaniu urządzenia poleceniem *rst. Stąd przed pierwszym odczytaniem współrzędnych wykresu należy wybrać format tekstowy posługując się poleceniem :DATa:ENCdg ASCIi 4.6.2 Wybór wykresu Kolejnym ustawieniem jest określenie interesującego nas wykresu. :DATa:SOUrce {CH1 CH2} :DATa:SOUrce? 4.6.3 Odczytanie współrzędnych Polecenie :CURVe? przesyła współrzędne punktów wykresu. 1. y 0, y 1,..., y 2499 dla pomiarów typu SAMPLE i AVERAGE. 2. ymin 0, ymax 0,..., ymin 1249, ymax 1249 dla pomiarów PEAKDETECT. 4.6.4 Obliczenie t i Współrzędna t i określa moment pomiaru względem impulsu synchronizacyjnego (ang. trigger). Wartości ujemne odpowiadają momentom przed pojawieniem się impulsu synchronizacyjnego, a dodatnie po pojawieniu się impulsu. Wartości t i obliczamy według wzoru { ti := t 0 + i t dla pomiarów SAMPLE i AVERAGE t i := t 0 + 2i t dla pomiarów PEAKDETECT Jednostką t i jest sekunda. Wartość t 0 odczytujemy poleceniem :WFMPre:XZEro?, a t poleceniem :WFMPre:XINcr?. 15
100 75 50 25 y i 0-25 -50-75 -100 0 250 500 750 1000 1250 1500 1750 2000 2250 2500 t i Rysunek 1: Korespondencja pomiędzy ekranem oscyloskopu a wartościami (t i, y i ) w trybach SAMPLE i AVERAGE. 100 75 50 25 y i 0-25 -50-75 -100 0 125 250 375 500 625 750 875 1000 1125 1250 t i Rysunek 2: Korespondencja pomiędzy ekranem oscyloskopu a wartościami (t i, y i ) w trybie PEAKDETECT. 16
4.6.5 Obliczenie u i, umin i, umax i Wartości u i, umin i, umax i obliczamy według wzoru u i := y zero + y mult (y i y offset ) Wartości y zero, y mult, y offset odczytujemy poleceniami :WFMPre:YZEro? :WFMPre:YMUlt? :WFMPre:YOFf? Jednostką u i jest V. 17
4.7 Dodatkowe 4.7.1 Przywrócenie ustawień fabrycznych :FACTory 4.7.2 Poprzedzanie odpowiedzi treścią zapytania :HEADer {0 1} :HEADer? Ustawienia fabryczne oscyloskopu powodują dopisywanie na początku każdego wyniku treści odpowiadającego mu zapytania. Wygodniej jest ustawić opcję jako wyłączoną. 18