Standardowe polecenia programowanych urządzeń.

( SCPI - Standard Commands for Programmable Instruments )



Jednolity sposób porozumiewania się z przyrządami (język programowania przyrządów) pozwala istotnie ułatwić posługiwanie się nimi, zarówno podczas przygotowania nowej aplikacji jak również modernizacji lub rozbudowy istniejącego systemu pomiarowego. Definicja standardowych poleceń urządzeniowych wymaga określenia:

Rys.1. Relacje standardów systemu pomiarowego.

SCPI oparto na ustaleniach standardu IEEE 488.2 w zakresie stosowanego alfabetu oraz syntaktyki komunikatów i danych (rys.1). Zasadniczy problem jest jednak związany z budową wyczerpującego zbioru wyrazów określających programowane zasoby funkcjonalne dowolnego urządzenia. Wyrazy muszą mieć jednoznaczne znaczenia w odniesieniu od wszystkich produkowanych urządzeń. Dodatkowo musi istnieć możliwość wzbogacania słownictwa w celu zaspokojenia potrzeb nowo powstających urządzeń i rozwijających się technik pomiarowych z zachowaniem zgodności wstecznej.

Do rozwiązania tego problemu wykorzystano:


Wstecz

Uogólniony model przyrządu pokazuje jego elementy funkcjonalne oraz przepływ sygnału przez nie (rys.2). Konkretny przyrząd wykorzystuje zwykle tylko część z przedstawionych elementów funkcjonalnych. Każdy blok modelu grupuje pewne odrębne zasoby funkcjonalne przyrządu charakterystyczne dla danego bloku. Bloki stanowią podsystemy funkcjonalne przyrządu. Sterowanie zasobami funkcjonalnymi danego podsystemu realizuje się za pomocą poleceń należących do podsystemu.

Rys.2.Model programowanego urządzenia.

W ten sposób SCPI grupuje polecenia w 28 podstawowych podsystemach. Poza pokazanymi na rysunku 2, w specyfikacji SCPI są jeszcze zdefiniowane : CONTrol, HCOPy, INSTrument, MMEMory, PROGram, STATus, TEST, TRACe, DATA, UNIT, VXI oraz grupa poleceń MEAS.


Wstecz

Podstawowe podsystemy funkcjonalne urządzeń pomiarowych.

ROUTe - Realizuje dołączanie sygnałów wprowadzonych do portów wejściowych urządzenia do bloku INPut w przypadku urządzenia pomiarowego. W urządzeniach stymulujących wyprowadza wytworzony sygnał na żądany port wyjściowy. Typowe możliwości podsystemu to zamykanie i otwieranie kanałów oraz skanowanie.

INPut - Określa własności portu wejściowego przetwornika. Realizuje funkcje kondycjonowania sygnału przed jego przetworzeniem w bloku SENSe (tłumienie, wzmacnianie, filtracja itp.). Jest też odpowiedzialny za impedancję wejściową, rodzaj sprzężenia (AC, DC) oraz konfigurację wejścia (symetryczne lub niesymetryczne, pływające lub nie).

SENse - Zajmuje się przetwarzaniem sygnału na daną w reprezentacji wewnętrznej przyrządu oraz gromadzeniem danych. Istnieje bardzo wiele wielkości i parametrów, które można mierzyć za pośrednictwem różnego typu sygnałów. Dodatkowo można stosować różne metody pomiaru. Stąd podsystem ten jest bardzo obszerny i podzielony na kilka wewnętrznych podsystemów (22 podsystemy) dotyczących różnych sposobów akwizycji. Programowanie tego podsystemu pozwala wybrać funkcję pomiarową i ustalić własności przetwornika (zakres, rozdzielczość). Podsystem oferuje akwizycję serii danych w dziedzinie czasu lub częstotliwości a także zaawansowane techniki pomiaru kształtu fali, parametrów modulacji sygnału itp.

CALCulate - Podsystem jest odpowiedzialny za wykonywanie operacji obliczeniowych na zebranych przez podsystem SENse danych. W urządzeniach stymulujących jest używany w odwrotnej kolejności. Przed wygenerowaniem sygnału przez SOURce podsystem CALCulate może być użyty do zmiany jednostek, wykonania odwrotnej transformaty Fouriera itp. Współczesne przyrządy mają spore możliwości przetwarzania danych, stąd też podsystem ten jest rozbudowany. Dostarcza funkcji obliczeń statystycznych, różniczkowania, całkowania, przetwarzania wektorów i danych zespolonych, transformacji w domenie czasowej i częstotliwościowej, itd. Dostępne też jest sterowanie procesem obliczeniowym tak, że możliwe jest przetwarzanie potokowe lub w pewnej wybranej kolejności. Zwykle żądane obliczenia są uruchamiane automatycznie, gdy nowe dane zostaną zebrane. Istnieje też możliwość powtórzenia obliczeń bez potrzeby ponownej akwizycji danych.

TRIGer - Podsystem zajmuje się synchronizacją wszystkich rodzajów akcji przyrządu z wewnętrznymi lub zewnętrznymi zdarzeniami. Podsystem ten implementuje wielowarstwowy model systemu wyzwalania o bardzo elastycznych możliwościach. Polecenia programujące pozwalają go odpowiednio konfigurować w zależności od aktualnych potrzeb.

DISPlay - Dostarcza możliwości funkcjonalne związane z wyborem i prezentacją informacji na urządzeniu wyświetlającym przyrządu. Urządzenia te mogą mieć różną postać, od prostego wyświetlacza do złożonego terminala. Prezentowane informacje obejmują dane pomiarowe, status przyrządu, interakcje użytkownika a także informacje z kontrolera systemu. Gdy okno prezentacji danych jest używane przez kontroler, działa jako wizualny terminal dostępny w przyrządzie. Podsystem dostarcza poleceń sterowania intensywnością, jasnością, kolorami itp. Istnieje możliwość wyświetlania tekstów, grafiki, wykresów. Wykresy mogą być wyświetlane we współrzędnych prostokątnych i biegunowych. Istnieje możliwość określania współrzędnych, siatek, opisów itp.

FORMat - Podsystem dostarcza zestaw poleceń pozwalających wybrać format danych wysyłanych interfejsem do kontrolera systemu, np. z zastosowaniem nagłówków lub bez. Typowo przyrządy SCPI muszą implementować formaty danych określone przez IEEE 488.2. Czasami wskazane jest użycie innego formatu prezentacji danych liczbowych. Aby to udostępnić w podsystemie FORMat mogą się znaleźć potrzebne do tego celu polecenia sterujące, np. określające kolejność wysyłania bajtów bloku reprezentującego binarne dane całkowite lub rzeczywiste.

SOURce - Dostarcza możliwości funkcjonalne związane z przetwarzaniem DA oraz generacji sygnałów analogowych na podstawie dostarczonych danych. Podsystem grupuje polecenia służące do generacji różnorodnych sygnałów. Najczęściej kryje się pod tym określeniem stały lub zmienny sygnał napięciowy, prądowy lub mocy. Mogą to być jednak także inne wielkości jak np. rezystancja lub temperatura. Specjalne polecenia służą do modyfikacji amplitudy i częstotliwości w funkcji czasu. Podsystem SOURce dostarcza też możliwości sterowania modulacją wytwarzanego sygnału. Dostępne są różne rodzaje modulacji (amplitudowa, częstotliwościowa, fazowa itd.).

OUTPut - Podstawowym celem tego podsystemu jest dostarczenie poleceń sterujących kondycjonowaniem sygnału dostarczonego do portu wyjściowego urządzenia. Polecenia dotyczą tłumienia, filtracji sygnału, sposobu sprzężenia (AC, DC), offsetu oraz dołączenia lub odłączenia sygnału. Dostępne są też polecenia dotyczące sposobu zabezpieczenia wyjścia.

MEMory - Podsystem dostarcza poleceń dotyczących operacji w obszarze wewnętrznej pamięci przyrządu, w której mogą być umieszczane makropolecenia, tablice, pliki binarne itp. Typowe polecenia tego podsystemu dotyczą kopiowania, zerowania i usuwania oraz zapytań o dane, wolną przestrzeń itp.

MMEMory - Podsystem MassMEMory dotyczy masowych pamięci przyrządu, które są wbudowane do niego lub dołączane. Podsystem dostarcza podobnych własności jak podsystem MEMory, dodając własności dostępne dla pamięci masowych, a więc używania nazw plików, struktury katalogowej, identyfikacji urządzenia przez nazwę, itp.

INSTrument - Przyrząd może być złożony z kilku powielonych jednostek funkcjonalnych stanowiących oddzielne przyrządy wewnętrzne, np. potrójne źródło napięć. Podsystem INSTrument dostarcza mechanizmu identyfikacji i wyboru jednego z wewnętrznych przyrządów.

STATus - Podsystem dostarcza poleceń, które wraz z poleceniami wspólnymi IEEE488.2 zapewniają pełną obsługę systemu raportowania statusu urządzeń SCPI. Odpowiednie polecenia konfiguracyjne systemu raportowania pozwalają użytkownikowi wybrać zdarzenia, które są uważane w danej implementacji za istotne i potrzebują natychmiastowej obsługi w procesie sterowania. Podsystem dostarcza poleceń związanych z obsługą rejestru jakości sygnału oraz rejestru stanu działania urządzenia. Oba wymienione rejestry są wymagane przez SCPI.

SYSTem - Podsystem dostarcza możliwości funkcjonalnych związanych z ustawianiem globalnych konfiguracji takich jak czas, data, ochrona pewnych zasobów urządzenia. Pozwala też uzyskiwać informacje o błędach działania urządzenia gromadzonych w kolejce błędów (zapytanie SYST:ERR?). Podsystem specyfikuje wszystkie numery błędów oraz odpowiadające im teksty wyjaśniające. Kolejna grupa poleceń tego podsystemu dotyczy konfigurowania interfejsów dla urządzeń peryferyjnych (drukarki, plotery). Uwzględnione są interfejsy: Centronics, GPIB oraz RS-232. Podsystem może też zawierać polecenia wspomagające użytkownika w sensie dostarczenia mu listy wszystkich zaimplementowanych poleceń SCPI a ponadto syntaktyki każdego z nich.


Wstecz

Drzewa poleceń SCPI.

SCPI grupuje polecenia w 28 podstawowych podsystemach. Polecenia danej grupy sterują zasobami funkcjonalnymi odpowiadającego podsystemu funkcjonalnego urządzenia.

Rys.3. Podstawowe podsystemy poleceń.

W poszczególnych podsystemach następuje kolejne grupowanie zasobów funkcjonalnych oraz związanych z nimi poleceń, itd.

Rys.4. Przykładowe grupy poleceń podsystemu SENSe.

Każdy podsystem (grupa) na dowolnym poziomie powstałej struktury stanowi jej węzeł i jest nazwany odpowiednim słowem kluczowym, którego brzmienie powinno kojarzyć się z kryjącymi się za nim funkcjami.

Węzłami takiej struktury są więc grupy zasobów funkcjonalnych i związanych z nimi poleceń. Kolejne podziały grup prowadzą w końcu do wytypowania węzłów końcowych dotyczących konkretnych zasobów funkcjonalnych. Są nimi wierzchołki drzewa danego podsystemu.

Struktura drzewa danego podsystemu podstawowego obrazuje możliwości dotyczące programowania tego podsystemu funkcjonalnego urządzenia.

Rys.5. Fragment podsystemu SENSe z pokazaniem wierzchołków drzewa poleceń.

Ostatni węzeł każdej gałęzi dotyczy konkretnego zasobu funkcjonalnego urządzenia ale, aby w poleceniu programującym określić go jednoznacznie, należy podać nazwy podsystemów do których należy. Dlatego nagłówek polecenia przyjmuje formę ścieżki podającej nazwy kolejnych podsystemów od poziomu korzenia do wierzchołka, który jest nazwą bezpośrednią programowego zasobu. W rezultacie typowy nagłówek polecenia SCPI jest ciągiem nazw separowanych znakiem dwukropka i stanowi zdanie opisujące jednoznacznie programowy zasób:

:SENSe:VOLTage:RANGe:AUTO
( automatyczne dobieranie podzakresu przetwornika pomiaru napięcia )

Całe polecenie SCPI składa się z nagłówka oraz ewentualnych argumentów polecenia :

:SENSe:VOLTage:RANGe:AUTO:DIRection  DOWN

:SENSe:VOLTage:RANGe:LOWer  <NRf>

Przedstawiona koncepcja hierarchicznego grupowania zasobów funkcjonalnych urządzenia oraz poleceń dotyczących sterowania nimi zapewnia:

Wychodząc z przedstawionych założeń dotyczących tworzenia hierarchicznej struktury poleceń oraz zakładając wykorzystanie ustaleń specyfikacji IEEE 488.2 odnośnie syntaktyki poleceń i danych umowa SCPI definiuje:

SCPI zakłada zgodność urządzeń ze specyfikacją IEEE 488.2. Polecenia wspólne IEEE 488.2 są zatem dodatkowym podzbiorem poleceń urządzeniowych SCPI z tym, że tylko 13 z nich urządzenia zgodne z SCPI muszą obowiązkowo stosować. Są to:

*CLS

- Zerowanie systemu statusowego.

*ESE  <NRf>

- Ustawienie maski standardowego rejestru zdarzeń.

*ESE?

- Zapytanie o maskę standardowego rejestru zdarzeń.

*ESR?

- Zapytanie o zawartość standardowego rejestru zdarzeń.

*IDN?

- Zapytanie o dane identyfikacyjne.

*OPC

- Zgłoszenie wykonania operacji bitem OPC.

*OPC?

- Zgłoszenie wykonania operacji odpowiedzią '1'.

*RST

- Zerowanie urządzenia.

*SRE  <NRf>

- Ustawienie maski rejestru statusowego.

*SRE?

- Zapytanie o maskę rejestru statusowego.

*STB?

- Zapytanie o zawartość rejestru statusowego.

*TST?

- Wykonaj testowanie i podaj wynik testowania.

*WAI

- Czekaj na zakończenie operacji nakładkowych.

Zasadniczą częścią specyfikacji SCPI jest słownik poleceń [2]. Podlega on systematycznemu rozwojowi tak, że każdego roku ukazuje się zmodernizowana wersja specyfikacji. Modyfikacje dotyczą głównie słownika poleceń. SCPI nie jest standardem przyjętym przez organizacje normalizacyjne właśnie z powodu systematycznego uzupełniania specyfikacji. Jest tylko dobrowolną umową producentów sprzętu pomiarowego. Pielęgnacją specyfikacji w zakresie jej rozwoju i zachowania zgodności wstecznej zajmuje się specjalnie powołane do tego celu stowarzyszenie producentów aparatury pomiarowej.


Wstecz

Słowa kluczowe - nazwy węzłów.

Nazwa węzła może przyjmować formę długą (pełna nazwa) lub formę mnemonika. Obowiązują następujące reguły tworzenia słów kluczowych oraz ich mnemoników:

  1. Słowo kluczowe czteroznakowe lub krótsze jest jednocześnie mnemonikiem:
  2. Free
    Auto

    ®
    ®

    FREE
    AUTO

  3. Mnemonik dłuższego słowa stanowią jego cztery pierwsze znaki:
  4. Frequency
    Voltage

    ®
    ®

    FREQ
    VOLT

  5. Mnemonik kończący się samogłoską skraca się do trzech znaków:
  6. Power
    Attenuation

    ®
    ®

    POW
    ATT

  7. Słowo kluczowe, którego pełna nazwa jest określona frazą, jest złożeniem pierwszego znaku pierwszego wyrazu z ostatnim słowem zdania:
  8. Direct Sequence
    Negative Transition

    ®
    ®

    DSequence
    NTransition

    ®
    ®

    DSEQ
    NTR

Podane zasady dotyczą wszystkich nazw używanych w SCPI, czyli nazw węzłów, argumentów znakowych, zastępczych wartości liczbowych, nazw używanych w argumentach wyrażeniowych itd.

Wszystkie nazwy użyte w poleceniu SCPI zapisuje się w formie :

     długiej (słowa kluczowego)
lub
     krótkiej (mnemonika słowa kluczowego)

®

®

CONFigure

CONF

Nazwa użyta w poleceniu może być zapisana małymi lub wielkimi literami. Jeśli używa się długiej formy zwyczajowo przyjęło się zapisywać część odpowiadającą mnemonikowi wielkimi literami a pozostałą część małymi:

CURRent       TRIGger

Urządzenie akceptuje obie formy, wobec czego korzystniej jest używać oszczędniejszą formę krótką. Niedopuszczalne są zapisy pośrednie, np.

TRIGg

®

źle

CONFig

®

źle

W odpowiedziach dostarczanych przez urządzenia nazwy podawane są zawsze w formie krótkiej przy użyciu wielkich liter. Zasada powyższa dotyczy nagłówków odpowiedzi oraz danych znakowych.


Wstecz

Formułowanie poleceń SCPI.

Format polecenia prostego:

:XXXXxx [ :YYYYyyy..........[ :ZZZZzzzz ] ] [ ? ] < SPACJA > [ argumenty ]

< : > znak oznaczający przesunięcie do następnego poziomu drzewa poleceń. Pierwszy znak < : > oznacza powrót do poziomu korzenia. W pierwszym poleceniu komunikatu złożonego rozpoczynający znak < : > można pominąć:

      :SENS :VOLT :DC :RANG   10.0
lub z uproszczeniem
       SENS :VOLT :DC :RANG   10.0

< ? > znak zapytania używa się do formułowania zapytań, np. :

VOLT :DC :RANG?
VOLT :DC :RANG?   DEF

-
-

zapytanie o aktualne ustawienia;
zapytanie o ustawienie domyślne.

< , > przecinek jest znakiem separującym argumenty polecenia:

CONF :VOLT :DC     1.0, 0.001
CONF :VOLT :DC?    MAX, MIN

<SP> spacja lub tabulacja służy do odseparowania nagłówka polecenia od argumentów.

< ; > średnik jest separatorem poleceń prostych wchodzących w skład komunikatu złożonego.

Rys.6. Fragmenty podsystemów INPut i TRIGger.

Polecenie złożone programujące podsystem TRIGger można zapisać następująco:

TRIG :COUN  10 ; :TRIG :DEL  2 ; :TRIG :SOUR  BUS

Znak < ; > nie zmienia aktualnego położenia w drzewie poleceń. Zatem jeśli kolejne polecenia dotyczą tego samego drzewa i węzłów leżących na tym samym poziomie nie trzeba definiować pełnej ścieżki od poziomu korzenia. Polecenie można zapisać prościej w postaci:

TRIG :COUN  10 ; DEL  2 ; SOUR  BUS

Jeśli jednak kolejne polecenia proste dotyczą różnych poziomów w drzewie poleceń danego podsystemu lub różnych podsystemów, wówczas należy podać pełną ścieżkę od poziomu korzenia:

TRIG :SOUR  BUS ; :INP :ATT  10 ; :TRIG :DEL  2

Terminator komunikatu i odpowiedzi w SCPI :

1.Obowiązującym terminatorem jest znak <NL> (SCPI stosuje się nie tylko do GPIB).
2.W GPIB można stosować <END> lub <NL^END>.


Wstecz

Węzły domyślne.

W drzewie poleceń mogą występować węzły domyślne. Pozwalają one :

    1. skracać postać często używanych poleceń;

    2. rozbudować drzewo poleceń z zachowaniem zgodności wstecznej.

Upraszczanie poleceń:

Rys.7. Fragment podsystemu OUTPut z węzłem domyślnym STATe.

Polecenie dołączania i odłączania wyjścia sygnału należy do często stosowanych, stąd w konkretnej implementacji węzeł ten może być węzłem domyślnym. Pełna forma polecenia ma postać:

OUTP :STAT   ON

natomiast uproszczona:  

OUTP   ON

Rozbudowa drzewa poleceń:

Rys.8. Rozbudowa podsystemu z zachowaniem zgodności wstecznej.

Polecenia wyboru filtru dolnoprzepustwego.

Program opracowany dla przyrządu wykorzystującego I wersję drzewa poleceń powinien funkcjonować na analogicznym przyrządzie stosującym nową wersję drzewa poleceń.


Wstecz

Węzły AUTO.

Umożliwiają automatyczne ustawienie parametrów programowanego zasobu zapewniające uzyskanie optymalnych warunków przetwarzania sygnału. Np. polecenie:

INP :ATT :AUTO  ON

zapewni kanałowi wejściowemu maksymalną czułość bez przesterowania.

AUTO dysponuje argumentami ON, OFF i ONCE. Argument ONCE poleca wykonanie automatycznego doboru oraz zamrożenie uzyskanego stanu, co odpowiada włączeniu i wyłączeniu funkcji AUTO. Przykłady zastosowania węzła AUTO :

CAL :ZERO :AUTO  ON
 
- kalibruj zero przetwornika przy każdym pomiarze;
SENS :VOLT :AC :RANG :AUTO  ON - dobieraj optymalnie podzakresy przyrządu do mierzonego sygnału;
SOUR :VOLT :LEV :IMM :AMPL :AUTO  ON - skoryguj automatomatycznie. ustawienie napięcia wyjściowego, aby nie przekroczyć limitu mocy.

Wstecz

Przyrządy zwielokrotnione.

Przyrząd może zawierać kilka logicznych jednostek odpowiadających funkcjonalnie dedykowanemu przyrządowi. Potrójne źródło napięć może być traktowane jako trzy logiczne przyrządy. Poszczególne jednostki logiczne nie muszą mieć takich samych własności funkcjonalnych jak również nie muszą być jednocześnie dostępne w sensie sterowania.

Wśród podsystemów poleceń takiego urządzenia musi występować podsystem INSTrument, który dostarcza mechanizmu identyfikacji i wyboru jednostki logicznej przez nazwę lub numer :

INST :NSEL  2
INST [ :SEL ]   P6V
-  wybiera jednostkę logiczną nr 2;
-  wybiera jednostkę logiczną o nazwie P6V

Po wyborze wszystkie polecenia podsystemów (OUTPut, SOURce, CALCulate itd.) są kierowane automatycznie do wybranej jednostki logicznej.

Urządzenia z zwielokrotnionymi podsystemami funkcjonalnymi.

W urządzeniu podstawowe podsystemy funkcjonalne mogą występować wielokrotnie. Nie dotyczy to tylko podsystemów FORMat, INSTrument, MEMory, MMEMory, STATus, SYSTem i TRACe.

W celu wyróżnienia wielokrotnych wystąpień określonych podsystemów oraz zapewnienia jednoznacznego programowania ich zasobów dodaje się do nazw węzłów przyrostki numeryczne, np. SENSe1, SENSe2 itd. Nazwa z przyrostkiem 1 jest równoważna nazwie podstawowej (SENSe1 = SENSe).

W modelach urządzeń wyróżnia się trzy typy ogólne modeli. Model warstwowy, który wykorzystuje określone podsystemy co najwyżej jednokrotnie i wobec tego nazwy bloków przyjmują swoje formy podstawowe.

Rys.9. Model warstwowy przyrządu.

Model z klonowaniem, który powtarza model warstwowy stosownie do potrzeb. Tutaj nazwy powtórzonych podsystemów są rozszerzone odpowiednimi numerami od 1 do N, odpowiednio dla każdego powtórzenia. Rozszerzenie dotyczy tylko nazw podstawowych podsystemów. Model taki jest odpowiedni dla urządzenia mającego kilka niezależnych właściwości funkcjonalnych.

Rys.10. Model przyrządu z klonowaniem modelu warstwowego.

Model amorficzny (bezpostaciowy), w którym mogą się powtarzać pewne podsystemy funkcjonalne wewnątrz podsystemów podstawowych, np. wykorzystuje się kilka podsystemów POWer (przetworników mocy) należących do podsystemu podstawowego SENSe.

Rys.11. Przykład modelu amorficznego.

Przykład pokazuje wykorzystanie dwóch wystąpień podsystemu POWer w systemie SENS. Tym razem wewnątrz systemu SENSe tylko podsystemy POWer muszą dostać przyrostki wyróżniające ich wielokrotne wystąpienie.


Wstecz

Typy kompatybilności uzyskane dzięki SCPI.

Konkretne urządzenie stosuje tylko określony podzbiór poleceń zdefiniowanych w specyfikacji SCPI. Tylko te, które są związane z implementowanymi w urządzeniu zasobami funkcjonalnymi.

Korzyści uzyskane z zastosowania zunifikowanych poleceń :


Literarura.

[1] SCPI 1995 - Syntax and Style; vol.1, SCPI Consortium, 1995.
[2] SCPI 1995 - Command Reference; vol.2, SCPI Consortium, 1995.
[3] SCPI 1995 - Data Interchange Format; vol.3, SCPI Consortium, 1995.
[4] SCPI 1995 - Instrument Classes; vol.4, SCPI Consortium, 1995.


15 grudzień 1999 r. opr. dr inż. Bogdan Kasprzak
rys. Lidia Stańczyk

Interfejsy systemów pomiarowych Spis treści