1 Standaryzacja poleceń urządzeniowychSCPI Standaryzacja poleceń urządzeniowych
2 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) istotnie ułatwia : Opracowanie nowej aplikacji ; Modernizację lub rozbudowę istniejącego systemu pomiarowego. Definicja standardowych poleceń urządzeniowych wymaga określenia: Alfabetu ( stosowany kod ), Zasad pisowni słów oraz zdań ( syntaktyka poleceń i odpowiedzi ), Słownictwa, czyli zbioru dostępnych wyrazów oraz ich przeznaczenia ( ustalenie nazw zasobów funkcjonalnych urządzeń, czyli nagłówków poleceń ).
3 Umowa SCPI: SCPI oparto na ustaleniach standardu IEEE w zakresie stosowanego alfabetu oraz syntaktyki komunikatów i danych. Zasadniczy problem jest związany z ustaleniem zbioru nazw zasobów funkcjonalnych: Wyczerpującego i jednoznacznego dla różnorodnych typów produkowanych urządzeń. Rozszerzalnego w celu zaspokojenia potrzeb nowo powstających urządzeń i rozwijających się technik pomiarowych. Zachowania zgodności wstecznej w miarę rozwoju słownictwa. Zasadniczą częścią specyfikacji SCPI jest słownik poleceń. Podlega on systematycznemu rozwojowi tak, że co kilka lat ukazuje się zmodernizowana wersja specyfikacji. 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 (członkowie założyciele-sponsorzy, udziałowcy, stowarzyszeni).
4 Koncepcja rozwiązania problemu nazw :Do rozwiązania problemu nazewnictwa zasobów funkcjonalnych urządzeń ( nagłówków poleceń ) wykorzystano: Uogólniony model programowanego urządzenia; Koncepcję nagłówków złożonych zawartą w specyfikacji IEEE
5 CALCulate:FUNCtion AVERageModel urządzenia : Model przedstawia schemat blokowy ilustrujący działanie urządzenia; Każdy blok grupuje zasoby dotyczące pewnego obszaru charakterystycznych funkcjonalności urządzenia; Bloki modelu stanowią podsystemy funkcjonalne urządzenia. Nazwy podsystemów oddają typ ich funkcjonalności. Polecenia, które programują funkcje danego podsystemu zawsze rozpoczynają się jego nazwą, np.: INPut:ATTenuation CALCulate:FUNCtion AVERage
6 Podsystem funkcjonalny :Wewnątrz każdego podsystemu, jego funkcjonalności podlegają dalszej klasyfikacji, której wynikiem są podgrupy funkcjonalne podsystemu (np. VOLTage, CURRent i FUNCtion podsystemu SENSe); Polecenia, które programują funkcje danej podgrupy podsystemu zawierają w swoim nagłówku nazwę podsystemu oraz podgrupy, np.: SENSe:VOLTage:RANGe 2
7 Struktura hierarchiczna zasobów funkcjonalnych :W wyniku wyznaczenia podgrup zasobów funkcjonalnych o podobnym przeznaczeniu powstaje struktura drzewiasta charakteryzująca możliwości funkcjonalne danego podsystemu urządzenia. Każda podgrupa na dowolnym poziomie powstałej struktury tworzy węzeł nazwany odpowiednim słowem kluczowym. Nazwa węzła powinna kojarzyć się z kryjącymi się za nim funkcjami. 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.
8 Struktura hierarchiczna zasobów a nagłówek polecenia :Ostatni węzeł każdej gałęzi dotyczy konkretnego zasobu funkcjonalnego urządzenia. Aby w poleceniu programującym określić taki węzeł jednoznacznie, należy podać nazwy wszystkich podgrup do których należy. Dlatego nagłówek polecenia definiujący programowany zasób, przyjmuje formę ścieżki podającej nazwy kolejnych podgrup od poziomu korzenia do wierzchołka, który bezpośrednio określa programowany zasób.
9 Nagłówek polecenia SCPI:W rezultacie typowy nagłówek polecenia SCPI jest ciągiem nazw węzłów separowanych znakiem dwukropka i stanowi zdanie opisujące jednoznacznie programowy zasób: :SENSe:VOLTage:RANGe:AUTO:DIRection ( 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 2
10 Zalety nagłówka złożonego :Koncepcja określenia programowanego zasobu na podstawie hierarchicznego pogrupowania zasobów funkcjonalnych urządzenia zapewnia: Możliwość stosowania krótkich nazw węzłów z zachowaniem pełnej ich jednoznaczności. Znaczenie węzła wynika z jego nazwy i położenia w drzewie poleceń. Identyczne nazwy węzłów nie powodują niejednoznaczności, jeśli tylko występują w różnych gałęziach podsystemu (np. RESolution, RANGe, AUTO); Możliwość rozbudowy drzewa na każdym poziomie; Zachowanie zgodności wstecznej.
11 Zakres definicji SCPI :Umowa SCPI wykorzystuje ustalenia specyfikacji IEEE i dodatkowo definiuje: Model podstawowy urządzenia oraz modele pochodne (podsystemy i ich znaczenie). Zasady tworzenia nazw węzłów (słów kluczowych). Zasady zapisu poleceń urządzeniowych (syntaktyka poleceń). Dodatkowe typy danych (boolowskie i rozszerzenia numerycznych) oraz uściślenia danych wyrażeniowych. Słownik poleceń w odniesieniu do ogółu urządzeń pomiarowych (drzewa podsystemów, nazwy węzłów i ich znaczenie). Nowe elementy w systemie raportowania statusu. Model podsystemu TRIGger. Klasy urządzeń SCPI.
12 Forma długa i krótka nazwy SCPI :Słowa kluczowe używane w poleceniach SCPI obejmują nazwy: węzłów w podsystemach funkcjonalnych urządzeń ( SENSe, INPut, CALCulate); argumentów znakowych (EXTernal, IMMediate, NORMal, INVerted); zastępczych wartości liczbowych (MAXimum, INFinity, DOWN); nazw używanych w argumentach wyrażeniowych (IMPLied). Nazwa może przyjmować formę długą (pełna nazwa) lub formę mnemonika: Forma długa jest pełnym słowem o długości do 12 znaków, np.. FREQUENCY; Forma krótka jest skrótem formy długiej , najczęściej w postaci czterech jej pierwszych znaków, np. FREQ; W dokumentacji podawana jest forma długa z wyróżnieniem formy krótkiej zapisem wielkimi literami, np. FREQuency; W poleceniach można stosować obie formy a nawet mieszać je. Nie są dozwolone formy pośrednie: SOURce:LIST:FREQuency? - poprawne polecenie; tylko forma długa SOURce:LIST:FREQ? - poprawne polecenie; forma długa i krótka Source:list:FrEqUeNcY? - poprawne polecenie; wielkość liter nie ma znaczenia SOUR:LIST:FREQuen? - niepoprawne polecenie;
13 Zasada tworzenia formy krótkiej nazwy SCPI :Reguły tworzenia mnemoników słów kluczowych : Słowo kluczowe czteroznakowe lub krótsze jest jednocześnie mnemonikiem: Free ® FREE Auto ® AUTO AC ® AC Mnemonik dłuższego słowa stanowią jego cztery pierwsze znaki: Frequency ® FREQ Voltage ® VOLT Mnemonik kończący się samogłoską skraca się do trzech znaków: Power ® POW Attenuation ® ATT Dla nazwy określonej frazą, forma długa jest złożeniem pierwszych znaków wyrazów składowych i ostatniego wyrazu frazy. Forma krótka zgodnie z zasadami 1 do 3: Not A Number ® Nanumber ® NAN Negative Transition ® Ntransition ® NTR Peak To Peak ® PTPeak ® PTP
14 Formy dokumentowania poleceń SCPI :Dobrym sposobem przedstawienia i dokumentacji drzewa poleceń jest jego graficzna prezentacja. Obraz drzewa poleceń jednoznacznie prezentuje powiązania węzłów i pozwala szybko oraz bezbłędnie formułować nagłówek żądanego polecenia. Znak : oznacza przesunięcie na kolejny poziom w drzewie poleceń. Nawiasy kwadratowe obejmujące nazwę węzła oznaczają węzły domyślne. Węzeł domyślny można pominąć w nagłówku polecenia, np. : SENSe:VOLTage:DC:RANGe:UPPer 5 jest identyczne z poleceniem VOLTage:RANGe 5 Mankamentem graficznej prezentacji są jej rozmiary oraz brak skutecznej możliwości opisu argumentów poleceń oraz dodania uwag.
15 Forma tabelaryczna opisu poleceń SCPI (1):Polecenie Argumenty Uwagi [:SENSe] :CURRent | :POWer | :VOLTage :AC | [:DC] :PROTection [:LEVel]
16 Forma tabelaryczna opisu poleceń SCPI (2):Polecenie Argumenty Uwagi INPut :ATTenuation
17 Forma tabelaryczna opisu poleceń SCPI (3):Polecenie Argumenty Uwagi [:SENSe] :CURRent | :POWer | :VOLTage :AC | [:DC] :PROTection [:LEVel]
18 Forma tabelaryczna opisu poleceń SCPI (4):Polecenie Argumenty Uwagi [:SENSe] :CURRent | :POWer | :VOLTage :AC | [:DC] :PROTection [:LEVel]
19 Forma tabelaryczna opisu poleceń SCPI (5):Polecenie Argumenty Uwagi [:SENSe] :CURRent | :POWer | :VOLTage :AC | [:DC] :PROTection [:LEVel]
20 Forma tabelaryczna opisu poleceń SCPI (6):Polecenie Argumenty Uwagi [:SENSe] :CURRent | :POWer | :VOLTage :AC | [:DC] :PROTection [:LEVel]
21 Aliasy w poleceniach SCPI :Jednym z celów projektu SCPI było zapewnienie stosowania takich samych poleceń w stosunku do identycznych zasobów funkcjonalnych w różnych urządzeniach. Różne dziedziny techniki stosują odmienną terminologię. W celu pokonania tego problemu SCPI pozwala stosować aliasy, czyli różne słowa kluczowe dla określonego węzła. Np. do określenia częstotliwości nośnej sygnału generatora stosuje się mnemonik CW (continuous wave) lub jego alias FIXed. Częstotliwość nośną sygnału generatora można ustawić jednym z przedstawionych poleceń: FREQuency:CW 10MAHZ lub FREQuency:FIXed 10MAHZ
22 Nagłówek polecenia SCPI :SENSe:VOLTage:DC:RANGe:UPPer 5 oraz SENSe:VOLTage:DC:RANGe:LOWer 5 Ścieżka nagłówka (header path) jest identyczna dla obu poleceń: SENSe:VOLTage:DC:RANGe Nagłówek polecenia SCPI jest pełną ścieżką prowadzącą od węzła podstawowego do wybranego wierzchołka gałęzi drzewa podsystemu. Proste polecenia muszą stosować tak budowane nagłówki. W poleceniach złożonych nie zawsze trzeba stosować pełne nagłówki. W szczególnych przypadkach można pominąć powtarzające się części poleceń składowych ( header path ). Parser zapamiętuje nagłówek ścieżki polecenia zaczynającego się dwukropkiem i stosuje go do następnego polecenia, jeśli nie rozpoczyna się ono dwukropkiem ( nie definiuje nagłówka od poziomu korzenia).
23 Nagłówek polecenia SCPI (2):Polecenie Argumenty Uwagi [:SENSe] :VOLTage :AC | [:DC] :RANGe [:UPPer]
24 Nagłówek polecenia SCPI (3):Polecenie Argumenty Uwagi [:SENSe] :VOLTage :AC | [:DC] :RANGe [:UPPer]
25 Nagłówek polecenia SCPI (4):Polecenie Argumenty Uwagi [:SENSe] :VOLTage :AC | [:DC] :RANGe [:UPPer]
26 Nagłówek polecenia SCPI (5):Polecenie Argumenty Uwagi [:SENSe] :VOLTage :AC | [:DC] :RANGe [:UPPer]
27 Nagłówek polecenia - węzły domyślne (1) :Polecenie Argumenty Uwagi [:SENSe] :VOLTage :AC | [:DC] :RANGe [:UPPer]
28 Nagłówek polecenia - węzły domyślne (2):Polecenie Argumenty Uwagi [:SENSe] :VOLTage :AC | [:DC] :RANGe [:UPPer]
29 Cel stosowania węzłów domyślnych :Węzły domyślne : Upraszczają postać często używanych poleceń: SENSe:VOLTage:AC:RANGe:UPPer po opuszczeniu węzłów domyślnych VOLTage:RANGe 2 Pozwalają rozbudować drzewo poleceń z zachowaniem zgodności wstecznej. OUTPut:FILTer ON OUTPut:FILTer:LPASs ON OUTPut:FILTer ON Program opracowany dla przyrządu wykorzystującego I wersję drzewa poleceń powinien funkcjonować na analogicznym przyrządzie stosującym nową wersję drzewa poleceń.
30 Zwielokrotnione podsystemy funkcjonalne urządzeń:Podstawowe podsystemy funkcjonalne mogą występować wielokrotnie w urządzeniu. 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 ogólne typy modeli: Model podstawowy, w którym dany podsystem występuje jednokrotnie. Model z klonowaniem, w którym model podstawowy występuje kilkakrotnie. Model amorficzny, w którym powtarzają się tylko pewne podsystemy funkcjonalne. Model podstawowy (warstwowy) wykorzystuje podsystemy jednokrotnie ; zatem ich nazwy przyjmują swoje formy podstawowe.
31 Zwielokrotnione podsystemy:Model z klonowaniem. Nazwy powtórzonych podsystemów są rozszerzone 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 , równoległych kanałów o podobnych lub identycznych własnościach. Model amorficzny. Powtarzają się pewne podstawowe podsystemy funkcjonalne (np. INPut) oraz pewne podsystemy wewnątrz podsystemów podstawowych (np. POWer należący do podsystemu podstawowego SENSe).
32 Przyrządy zwielokrotnione:Przyrząd może posiadać kilka logicznych jednostek odpowiadających funkcjonalnie odrębnym urządzeniom i obsługiwanych wspólnym interfejsem. 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. Potrójne źródło napięć HPE3631 jest przykładem takiego urządzenia. Posiada trzy źródła napięć w postaci osobnych jednostek logicznych przyrządu. Wśród podsystemów podstawowych takiego urządzenia musi występować podsystem INSTrument, który dostarcza mechanizmu identyfikacji i wyboru jednostki logicznej przez nazwę lub numer : INST :NSEL 2 - wybiera jednostkę logiczną nr 2; INST [ :SEL ] P6V - wybiera jednostkę logiczną o nazwie P6V Po wyborze jednostki logicznej wszystkie polecenia dotyczące podsystemów (OUTPut, SOURce, CALCulate itd.) są kierowane do tej jednostki. Część podsystemów podstawowych dotyczy całego urządzenia, np. podsystem STATus, FORMat itp.
33 Główne kategorie przyrządów:Podstawowa funkcja Typ przyrządu Podstawowy podsystem Przykłady Pomiar sygnału Przyrząd pomiarowy SENSe Woltomierz, oscyloskop, licznik, termometr Generacja sygnału Źródło sygnału SOURce Generator fali, zasilacz Rozprowadzenie sygnału Urządzenie przełączające ROUTe Komutator kanałów, multiplekser Główne podsystemy przyrządu pomiarowego. Węzeł SENSe jest węzłem domyślnym. Główne podsystemy źródła sygnału. Węzeł SOURce jest węzłem domyślnym.
34 Podsystem SENSe (sensor; sense):Podsystem SENSe grupuje wszystkie funkcjonalności dotyczące przetworzenia parametrów sygnałów na ich reprezentacje liczbowe. Wspomniane funkcjonalności dotyczą zarówno ustawienia parametrów stosowanych przetworników jak i sposobu akwizycji danych ( wyniki skalarne, wektorowe itp.). Różnorodność sygnałów i ich parametrów oraz metod ich pomiarów powoduje, że podsystem ten jest najbardziej rozbudowanym spośród wszystkich podstawowych podsystemów SCPI. Specyfikacja podsystemu dotyczy ogółu urządzeń pomiarowych. Typowy przyrząd nie implementuje oczywiście wszystkich możliwości funkcjonalnych zawartych w opisie podsystemu SENSe. Przyrząd implementuje tylko niezbędny podzbiór możliwości funkcjonalnych potrzebnych do realizacji zadań, dla których został zaprojektowany. Implementowane drzewo poleceń podsystemu SENSe jest uproszczeniem ogólnego. Uproszczeniem związanym z wykorzystaniem określonych funkcjonalności tego podsystemu.
35 Wybór funkcji pomiarowej:Polecenie Argumenty Uwagi Opis :SENSe :FUNCtion :CONCurrent
36 Specyfikacja funkcji pomiarowej (
37 Specyfikacja funkcji pomiarowej (
38 Dodatki w specyfikacji funkcji pomiarowej :