Skrypt - Obsługa przyrządów pomiarowych z wykorzystaniem standardu SCPI, Nauka i Technika, Automatyka, Komputerowe Systemy Pomiarowo-Diagnostyczne, Agilent Vee Pro


ĆWICZENIE NR 3

Obsługa przyrządów pomiarowych z wykorzystaniem standardu SCPI

Cel ćwiczenia

Ćwiczenie zapoznaje ze zdalną obsługą instrumentów pomiarowych za pomocą języka SCPI. Wykorzystane są cztery przyrządy: zasilacz E3640A, multimetr HP34401A, generator HP33120A firmy Agilent oraz oscyloskop TDS 340A firmy Tektronix. Omówiona jest struktura i składnia języka SCPI, zaprezentowana jest możliwość sterowania tymi przyrządami przy użyciu komputera z portem szeregowym RS232C.

  1. Wprowadzenie

Złożony charakter współczesnych procesów technologicznych wymaga odpowiednio rozbudowanych systemów pomiarowo-diagnostycznych. Omawiane w kolejnych ćwiczeniach interfejsy zapewniają standaryzację elektryczno-mechanicznych aspektów łączenia pojedynczych urządzeń pomiarowych w systemy realizujące złożone zadania. Oczywiste jest jednak, że standaryzacja powinna także dotyczyć komunikatów przesyłanych za pomocą interfejsów. Urządzenia realizujące te same funkcje pomiarowe - multimetry, generatory, analizatory stanów logicznych, są produkowane przez wielu producentów. Sytuacja, w której każdy producent stosuje własne, dedykowane rozwiązania dotyczące sterowania urządzeniami znacznie utrudniałaby utrzymywanie i modyfikowanie systemów pomiarowych. Prawdę mówiąc sytuacja taka przez długi czas utrzymywała się w technice pomiarowej. Zbiory komend sterujących urządzeniami pomiarowymi były odmienne nie tylko u różnych producentów ale nawet w różnych modelach tej samej serii jednej firmy. Dziś języki te określa się zbiorczym mianem „R2D2”, ponieważ większość z nich, dla oszczędności zasobów cyfrowych urządzenia, kodowała komendy za pomocą krótkich nazw, składających się często z litery i cyfry. Standard IEEE 488.2 (p. ćw. 5) przyniósł pewne ujednolicenie w tej kwestii, poprzez wprowadzenie szeregu komend, które muszą być rozpoznawane przez wszystkie urządzenia wykorzystujące ten interfejs. Jednak komendy te miały dość ogólny charakter, podczas gdy w pożądanym języku sterowania urządzeniami pomiarowymi ważna jest nie tylko uniwersalność, ale także odpowiednio silna ekspresja, zdolna do wykorzystania specyficznych cech procesu pomiarowego realizowanego przez dane urządzenie. Pierwszą propozycję takiego języka wysunęła firma Hewlett Packard w 1989 r pod nazwą TMSL (Test and Measurement Systems Language). Standard ten stał się podwaliną do sformułowania nowego języka o nazwie SCPI (Standard Commands for Programmable Instrumentation). Jego opracowaniem zajęło się konsorcjum firm, do którego weszły m.in.: HP, Tektronix, Fluke, Phillips, Keithley, Bruel & Kjaer, i National Instruments. Konsorcjum to działa do dziś [7], wypracowując kolejne redakcje standardu i czuwając nad zmianami, wynikającymi z pojawiania się nowych typów urządzeń pomiarowych.

Podstawowym zyskiem ze sformułowania języka SCPI jest oczywiście kompatybilność z punktu widzenia sterującego programu urządzeń pochodzących od różnych producentów. Język ten stał się prawdziwą lingua franca dla przyrządów pomiarowych.

  1. Język SCPI

    1. Ogólny opis języka SCPI

Język SCPI definiuje strukturę rozkazów oraz reguły syntaktyczne ich budowy, a także określa ogólny model programowalnego urządzenia pomiarowego i związany z nim model rozkazów do komunikacji pomiędzy kontrolerem (komputerem), a urządzeniami w automatycznym systemie pomiarowym [1].

W dziedzinie programowania przyrządów pomiarowych, standard SCPI (ostatnie pełne sformułowanie z 1999 roku [2]), zwany czasem językiem SCPI, jest obecnie standardem niezależnym od rodzaju zastosowanego interfejsu w systemie. Pomimo, że oparto go na ustaleniach standardu IEEE 488.2, polecenia SCPI mogą być przesyłane przez inne interfejsy, np. RS232 (w tym ćwiczeniu), VXIBus, itp.

SCPI służy do porozumiewania się z przyrządem pomiarowym i nie należy go mylić z takimi językami używanymi do tworzenia aplikacji, jak C, Basic czy Pascal. Jego polecenia są tekstami wysyłanymi do przyrządów pomiarowych i nie mają możliwości realizowania podstawowych konstrukcji zapewniających ekspresję języka programowania, takich jak pętla, instrukcja warunkowa, typy danych i zmienne. Język SCPI jest raczej językiem makropoleceń.

Zasadniczy problem w konstrukcji takiego języka jak SCPI związany z budową wystarczającego zbioru poleceń, pokrywających bardzo zróżnicowane możliwości funkcjonalne różnych urządzeń. Głównym założeniem przy konstrukcji zbioru poleceń w SCPI jest unikanie nazywania na wiele sposobów podobnych funkcji. Zbiór poleceń stara się zachować spójność. Standard SCPI-1999 wymienia wertykalną i horyzontalną spójność. Spójność wertykalna, to utrzymywanie tej samej nazwy dla tej samej funkcji w obrębie jednej klasy instrumentów. Funkcja pomiaru napięcia stałego powinna się nazywać tak samo we wszystkich multimetrach. Spójność horyzontalna to zapewnienie tej samej nazwy funkcji w instrumentach należących do różnych klas. Pomiar amplitudy przebiegu powinien się nazywać tak samo, niezależnie, czy jest realizowany przez multimetr czy przez oscyloskop (a więc niezależnie nawet od metody pomiaru). Utrzymywanie obu rodzajów spójności zapewnia przejrzystą strukturę zbioru poleceń.

Oczywiście, standard SCPI przewiduje rozszerzenia zbioru poleceń i wskazuje szereg rekomendacji co do tego, jak konstruować propozycje uzupełnień funkcjonalnych. Producenci sprzętu pomiarowego mogą ustalać swój własny zbiór poleceń, skonstruowany w duchu zaleceń standardu, mogą się także zwracać do konsorcjum o włączenie nowego obszaru funkcjonalnego wprost do standardu.

    1. Model programowalnego instrumentu

Przy ustalaniu zestawu poleceń języka SCPI został założony ogólny model funkcjonalny programowalnego przyrządu pomiarowego, zdefiniowany w standardzie SCPI-1999 ([2]), pokazany na rys. 3.1. Jest to dość ogólny model, pokrywający zakres funkcjonalny szerokiej klasy przyrządów pomiarowych. Urządzenie nie musi realizować wszystkich uwidocznionych funkcji. Nie oczekuje się np. od zasilacza funkcji pomiarowych, a tylko generacji sygnału. Wprowadzenie modelu umożliwia kategoryzację poleceń języka SCPI a co za tym idzie stworzenie czytelnej struktury poleceń, do której łatwo mogą się dopasować nowe przyrządy pomiarowe.

0x01 graphic

Rys. 3. 1. Uogólniony model przyrządu w standardzie SCPI

Model nie określa szczegółów w rodzaju określenia wewnętrznych formatów danych, wewnętrznej organizacji pamięci, nie są też zawarte w nim tzw. funkcje administracyjne, np. kalibracja urządzenia, specyficzne tryby dostępu do pamięci, itp.

Standard SCPI-99 uszczegóławia model z rys. 3.1, podając strukturę wewnętrzną bloków funkcji pomiarowych oraz generacji sygnału. Pokazane jest to na rys. 3.2, przy czym poszczególne bloki funkcjonalne zostały opatrzone angielskimi mnemonikami (INPut, SENSe, itp.), tak, jak to zostało zaproponowane w standardzie. Mnemoniki te są zarazem nazwami głównych kategorii poleceń języka SCPI (kategorie te są też zwane podsystemami). Mnemonikami pokazanych na rys. 3.1 bloków podłączenia sygnału oraz formatowania danych są, odpowiednio: ROUTe i FORMat. Małe litery w nazwach oznaczają część opcjonalną, której nie trzeba koniecznie podawać przy wydawaniu polecenia w języku SCPI (p. p. 3.2.3).

Rys. 3. 2. Struktura wewnętrzna bloku funkcji pomiarowych (a) oraz bloku generacji sygnału (b)0x08 graphic

Poniżej podane jest znaczenie poszczególnych bloków funkcjonalnych w modelu programowalnego urządzenia pomiarowego:

Nakreślony powyżej model urządzenia opisuje ogólną ścieżkę propagacji informacji: od wejścia do kontrolera systemu w przypadku funkcji pomiarowych oraz od kontrolera systemu do wyjścia w przypadku funkcji generacyjnych. Standard SCPI-1999 przewiduje wiele wariantów tego podstawowego modelu. M.in. określone są zasady opisywania urządzeń o zwielokrotnionych wejściach, torach przetwarzania, o kaskadowych blokach kalkulacyjnych, itp.

Oprócz wymienionych powyżej, w standardzie SCPI przewidzianych jest wiele innych podsystemów, realizujących funkcje związane z obsługą urządzenia pomiarowego. Do ważniejszych należą: