Język SCPI (ang. Standard Commands for Programmable Instruments) SCPI jest oparty na ustaleniach standardu IEEE 488.2 definiującego zakres stosowanego alfabetu, syntaktyki komunikatów oraz formatu danych. Relacje standardów systemu pomiarowego PUKP, 2016 1
Język SCPI Model urządzenia SCPI - najczęściej wykorzystywane grupy podsystemów Język SCPI grupuje podstawowe polecenia w 28 podsystemów, poza przedstawionymi na rys. są zdefiniowane także: CONTrol, HCOPy, INSTrument, PROGram, STATus, TEST, TRACe, DATA, UNIT, VXI oraz MEAS. PUKP, 2016 2
Język SCPI grupa poleceń wspólnych Lp. Mnemonik Znaczenie mnemonika 1 *IDN? Zapytanie o dane identyfikacyjne 2 *RST Zerowanie urządzenia 3 *CLS Zerowanie systemu statusowego 4 *TST? Testowanie i zwrócenie wyników testu 5 *OPC Zgłoszenie wykonania operacji bitem OPC 6 *OPC? Zapytanie o wykonanie operacji 7 *SRE< > Ustawienie maski rejestru statusu 8 *SRE? Zapytanie o maskę rejestru statusu 9 *STB? Zapytanie o zawartość rejestru statusowego 10 *WAI Czekaj na zakończenie operacji nakładkowych 11 *ESE< > Ustawienie maski rejestru zdarzeń 12 *ESE? Zapytanie o maskę rejestru zdarzeniowego 13 *ESR? Zapytanie o zawartość rejestru zdarzeń PUKP, 2016 3
Język SCPI zasady tworzenia słów kluczowych 1. Słowa czteroznakowe oraz krótsze można pozostawić w niezmienionej formie brzmieniowej i utworzyć z niej mnemonik, 2. W przypadku słów dłuższych niż cztery znaki, mnemonik stanowią jego cztery pierwsze znaki, 3. Jeśli powstały mnemonik kończy się samogłoską to skraca się go do trzech znaków, 4. Mnemonik, który jest określony frazą, powstaje przez złożenie pierwszych znaków z pierwszego oraz ostatniego wyrazu. Standard SCPI definiuje również formę notacji polecenia gdzie dopuszcza dwie alternatywne formy: zapis słowa w formie długiej i zapis w formie krótkiej. Forma zapisu mnemonika SCPI Długa (słowa kluczowego) Krótka (słowa kluczowego mnemonik) CONFigure TRIGger CALCulate CONF TRIG CALC PUKP, 2016 4
Język SCPI format poleceń :Węzeł(1) :Węzeł(2):Węzeł(n):PAR{[?] lub [Spacja <Argument> ]} -znak : określający przejście do następnego poziomu drzewa poleceń, pierwszy znak : w poleceniu oznacza powrót do poziomu korzenia drzewa poleceń. -Węzeł(1) jest słowem kluczowym w poleceniu programującym tzw. Korzeń, odpowiadający nazwie podsystemu, -Węzeł(2) jest słowem kluczowym (mnemonikiem) drugiego poziomu, -Węzeł(n) jest słowem kluczowym (mnemonikiem) n-tego poziomu, -PAR jest słowem końca gałęzi, do którego parametru odnosi się polecenie i argument, -{[?] lub [Spacja <Argument> ]} parametr komendy określający czy jest to forma nastawcza czy pytająca. W formie nastawczej po znaku spacji należy ustawić wartość. PUKP, 2016 5
Język SCPI komunikaty złożone TRIGger COUNt DELay SOURce NRf NRf BUS EXT IMM Polecenie złożone programujące podsystem TRIGger można zapisać następująco: TRIG:COUN 18;:TRIG:DEL 5;:TRIG:SOUR BUS lub w uproszczeniu: TRIG:COUN 18;DEL 5;SOUR BUS PUKP, 2016 6
Język SCPI typy argumentów Numeryczny zapis wartości liczbowej w kodzie ASCII z uwzględnieniem znaku liczby oraz notacji naukowej, typ numeryczny wykorzystuje również przyrostek określający jednostkę programowanego parametru (np. [MHz], [khz], [ma] itp.). W przypadku braku jednostki oznacza to użycie jednostek podstawowych (np. [Hz], [A] itp.) standard dopuszcza stosowanie określeń zastępczych, takich jak MINinum, MAXimun, DEFault ustawiające odpowiednio minimalną, maksymalną lub domyślną wartość programowanego parametru. Domyślna wartość jest zazwyczaj obowiązująca po zerowaniu urządzenia. Dyskretny charakteryzujący nastawę mającą kilka wartości, co pozwala lepiej zaprezentować wybór nazwą niż wartością liczbową. Wartości tego typu parametru są listą słów charakterystycznych odpowiadających odpowiednim ustawieniom (np. sposobowi wyzwalania urządzenia: IMM natychmiastowemu; BUS z interfejsu; EXT sygnałem zewnętrznym). Boolowski charakteryzuje się dwuznacznym stanem nastawy tj. TRU/FALS co jest odpowiednikiem przełącznika ON/OFF i pozwala np. włączyć lub wyłączyć dany kanał pomiarowy. Standard dopuszcza dwie postacie zapisu za pomocą słów ON/OFF lub za pomocą znaków ASCII 1 / 0. Stringowy charakteryzuje się zbiorem znaków ASCII w łańcuchu określonym znakami cytowania ( ) lub ( ). PUKP, 2016 7
Język SCPI zastosowanie w liczniku czasu CONFigure THReshold GATe SAMPling {<value> MIN MAX?} {<value> MIN MAX? HELP} {<value> MIN MAX? HELP} STATus FIFO S EN CTRL MEAS {?} {?} {?} {?} {?} PUKP, 2016 8
Język SCPI Zestawienie wybranych komend licznika T3300W Nagłówek polecenia SCPI Argument polecenia SCPI Lp. Korzeń 1 Poziom 2 Poziom 1 : TRIGger : SOURce : EXT _ HIGH 2 LOW 3 REDG 4 FEDG 5 AUTO 6 : INPut : A _ ON 7 OFF 8 B _ ON 9 OFF 10 F _ ON 11 OFF 12 : STATus : CTRL? 13 FIFO? 14 EN? 15 S? 16 MEAS? 17 : MODE : FREQuency 18 TIME 19 : MEAS : COUNt? 20 _ <value> 21 CONTINIOUS PUKP, 2016 9
Llicznik T3300W budowa kontrolera komunikatów SCPI RX BLOK UART RX BLOK PAMIECI ROM BLOK UART TX TX STATUS OF UBOX MUX BLOK MIKROKONTROLERA PicoBlaze WRITE TO UBOX DANE Z LICZNIKA 32-bity BLOK WY READ FROM UBOX ROZKAZ DANE DO LICZNIKA 32-bity PUKP, 2016 10
Llicznik T3300W sterowany za pomocą komunikatów SCPI PUKP, 2016 11
Witryna oscyloskopu InfiniiVision 6000 PUKP, 2016 12
Witryna oscyloskopu InfiniiVision 6000 PUKP, 2016 13
Schemat blokowy generatora T5400W PUKP, 2016 14
T5400W - Przykładowe zestawienie obliczenia błędu dla częstotliwości 50 Hz PUKP, 2016 15
T5400W - Sterowanie PUKP, 2016 16
T5400W - Testowanie PUKP, 2016 17