Skrypt - Obsługa przyrządów pomiarowych z wykorzystaniem standardu SCPI.doc

(358 KB) Pobierz
4

Ć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.

 

3.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.

 

3.2     Język SCPI

3.2.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.

3.2.2      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.

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)

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

·         ROUTe. Realizuje połączenie sygnału między zaciskami urządzenia a wewnętrznymi blokami We/Wy toru przetwarzania sygnału. Np. zasilacz E3640A ma zaciski wyjściowe zarówno na przednim panelu jak i na tylnej ściance. Jedno z poleceń podsystemu ROUTe określa, na które zaciski podawane jest napięcie wyjściowe.

·         INPut. Blok realizuje kondycjonowanie sygnału pomiarowego przed poddaniem go konwersji na wewnętrzny format danych. Typowe operacje dokonywane w tym bloku to wzmacnianie/tłumienie sygnału, filtracja, konwersja częstotliwości, dopasowanie impedancji, itp Do tej kategorii należą np. polecenia ustalające podziałkę amplitudową w oscyloskopie.

·         SENSe. Realizuje przetwarzanie sygnału na dane wewnętrzne w formacie cyfrowym (wymaga tego choćby przesyłanie danych do systemu komputerowego). Procesy realizowane w tym bloku sprowadzają się więc bardzo często do przetwarzania analogowo-cyfrowego. Do podsystemu SENSe należą np. polecenia ustalające rozdzielczość pomiaru, czas bramkowania, itp. Mnogość mierzonych wielkości i metod pomiarów sprawiają, że kategoria ta jest bardzo rozbudowana.

·         CALCULate. Podsystem, który odpowiada za wykonywanie operacji obliczeniowych na zebranych przez podsystem SENSe danych lub, w ścieżce generacji sygnału (p. rys. 3.2b), operacji obliczeniowych na danych przekazywanych do bloku SOURCe (opisanego poniżej). Operacje tego podsystemu mogą być użyty np. do zmiany jednostek, zamiany dziedziny sygnału (z czasu na częstotliwość - transformata Fouriera), wyznaczenia elementarnych parametrów sygnału, jak np. czasu narastania przebiegu, określenia szczegółowych parametrów generacji fali na podstawie wskaźników modulacji, itp.

·         OUTput. Blok należący do ścieżki generacji sygnału (p. rys. 3.2b), którego celem jest, podobnie jak w bloku INPut, kondycjonowanie sygnału pochodzącego z bloku generacji SOURce a podawanego za pośrednictwem bloku przełączania sygnału ROUTe na zaciski wyjściowe urządzenia. Dość typowym przykładem operacji z tego bloku jest ustalanie impedancji wyjściowej generatora.

·         SOURce. Blok generuje              sygnał o charakterze i parametrach określonych na wcześniejszym etapie ścieżki generacji sygnału (p. rys. 3.2b). Podobnie, jak w przypadku SENSe, może to być bardzo rozbudowany podsystem, ze względu na wielką różnorodność sygnałów generowanych przez urządzenia pomiarowe. Np. Generator Agilent 33120, umożliwiający generację przebiegów o różnych kształtach, przy zastosowaniu różnych rodzajów modulacji, oferuje ponad 30 różnych poleceń z podsystemu SOURce.

·         TRIGger. 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 potrzeb.

·         MEMory. Blok realizuje wewnętrzną pamięć urządzenia, w której przechowywane są dane w postaci cyfrowej. Do bloku odwołują się m. in. podsystemy CALCULate, FORMat, SENSe, SOURce. Pamięć jest praktycznie obecna w każdym urządzeniu programowalnym, ale nie musi być dostępna dla użytkownika. Jeśli jest udostępniona, to podsystem MEMory udostępnia polecenia pozwalające np. na odczytywanie, zapisywanie, kasowanie pamięci, itp. Przykładem może być generator Agilent 33120, zdolny do generowania arbitralnego przebiegu. Ciąg kolejnych próbek określający kształt przebiegu jest przesyłany do wewnętrznego bufora pamięci urządzenia (o pojemności 16000 próbek) z systemu komputerowego.

·         FORMat. Podsystem format umożliwia nadawanie danym przesyłanym przez interfejs do kontrolera systemu określonego formatu. Możliwe jest np. wysyłanie danych w postaci znakowej ASCII, w postaci binarnej, z nagłówkiem lub bez.

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 SCPI1999 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żą:

·         DISPlay. Blok odpowiedzialny za prezentację wizualną informacji kontrolno-pomiarowej. W modelu z rys 3-1 zasadniczy tok przetwarzania informacji prowadzi przez magistralę danych z i do kontrolera systemu. Oczywiście większość urządzeń jest wyposażona w lokalny wyświetlacz umożliwiający wizualizację stosownych informacji.

·         STATus. Blok odpowiedzialny za określanie stanu urządzenia. Jest to ważna część funkcjonalności systemu, zwłaszcza w wypadku synchronizacji pracy kilku instrumentów.

·         SYSTem. Blok operacji odpowiedzialnych za różne, nie związane bezpośrednio z pomiarem aspekty konfiguracji urządzenia pomiarowego. Zawarte tu są np. operacje odpowiedzialne za ustalanie parametrów transmisji, języka interfejsu instrumentu, zarządzania kolejką zarejestrowanych komunikatów o błędach, ustawiania daty i czasu, zarządzania lokalnymi urządzeniami peryferyjnymi, itp.

·         Inne, specyficzne, takie jak: CALibration – blok realizujące procedury kalibracyjne urządzenia, DIAGnostic – procedury diagnostyczne, INSTrument – zarządzanie wieloma logicznymi urządzeniami pomiarowymi, jeśli przyrząd pomiarowy jest złożony, TRACe/DATA – zarządzanie przebiegami zapisanymi w pamięci wewnętrznej przyrządu, HCOPy – wydruki danych pomiarowych na lokalnych drukarkach, dołączonych bezpośrednio do przyrządu, itd.

3.2.3     Składnia języka

W  tym punkcie podane są najważniejsze zasady zapisywania poleceń SCPI oraz sposobu opisywania zestawów poleceń SCPI, umieszczanych w instrukcjach obsługi konkretnych urządzeń pomiarowych. Zrozumienie tych zasad jest niezbędne dla sprawnego wykonania ćwiczenia.

Każdy z wymienionych w poprzednim punkcie podsystemów może obejmować wiele poleceń realizujących określoną grupę operacji dla danego urządzenia. Konkretne polecenia również mogą tworzyć mieć wiele wariantów, co sprawia, że  zestaw poleceń najłatwiej prezentować w postaci drzewiastej,

[SOURce:]

              FM:

                            DEViation <wartość_liczb>

                            INTernal:

                                          FUNCtion {SINusoid|SQUare|TRIangle}

                                          FREQuency <wartość_liczb>

                            STATe {OFF|ON}

SYSTem:

   BEEPer:

      FREQuency <wartość_liczb>

      TIME <wartość_liczb>

...

hierarchicznej struktury.

Rys. 3. 3. Fragment drzewa poleceń

Drzewo zaczyna się od abstrakcyjnego „korzenia”, reprezentującego całe urządzenie, węzłamipierwszego poziomu są opisane powyżej główne podsystemy, kolejne poziomy drzewa tworzą konkretne polecenia i ich warianty.  Fragment takiej struktury dla hipotetycznego urządzenia pomiarowego  pokazany jest na rys. 3.3.

Polecenie SCPI to zapis całej ścieżki, prowadzącej od korzenia aż do „liścia” drzewa, tj. do najniższego poziomu, w stosownej funkcjonalnej gałęzi. Poszczególne węzły ścieżki rozdzielone są dwukropkami. Np. w przypadku drzewa z rys. 3.3, polecenie ustawiające czas trwania sygnału dźwiękowego na 1 sekundę miałoby postać: SYSTEM:BEEPER:TIME 1. Jak widać, segmenty określające ścieżkę polecenia są oddzielone dwukropkami, natomiast parametr, ustalający czas trwania sygnału oddzielony jest od polecen...

Zgłoś jeśli naruszono regulamin