Standard Commands for Programmable Instruments

Z Wikipedii, wolnej encyklopedii

Standard Commands for Programmable Instruments, SCPI – standard komunikacji z urządzeniami pomiarowymi (oscyloskopy, multimetry, mierniki częstotliwości itp.) i laboratoryjnymi (zasilacze, generatory przebiegów). Definiuje składnię oraz podstawowe komendy, które można wydawać urządzeniom pomiarowym. Należy on do grupy najpopularniejszych standardów obsługiwanych przez wszystkich dużych producentów sprzętu pomiarowego i laboratoryjnego.

Ogólny opis[edytuj | edytuj kod]

W 1990 standard komunikacji SCPI został przyjęty przez IEEE jako standard pod numerem IEEE 488.2. Standard ten opisuje ogólną składnię, strukturę komend i formaty danych wymienianych pomiędzy komputerami a podłączonymi do nich urządzeniami pomiarowymi. W ramach standardu zdefiniowanych jest również podstawowy zestaw komend obsługiwanych przez wszystkie urządzenia (np. CONFigure - konfiguracja określonego parametru, MEASure - dokonanie pomiaru). Komendy SCPI pogrupowane są w główne klasy funkcjonalne obsługiwane przez różne typy urządzeń. Na przykład każdy zasilacz uniwersalny powinien mieć zaimplementowaną tą samą podstawową funkcjonalność klasy DCSUPPLY.

Relacja do innych standardów[edytuj | edytuj kod]

SCPI definiuje jedynie standard komend wysyłanych do urządzenia pomiarowego oraz standard odpowiedzi. SCPI nie definiuje sposobu podłączenia urządzeń do komputera (mogą być podłączone zarówno przez RS-232, USB, VXIbus, HiSLIP lub IEEE-488 (GPIB). Mimo iż oryginalnie SCPI wywodzi się z prac nad standaryzacją fizycznego interfejsu GPIB to w żaden sposób nie jest ograniczony do urządzeń podłączanych przez GPIB.

Podłączenie fizyczne: definiowane jest przez standardy typu GPIB, USBTMC (USB Test and Measurement Device) - w przypadku USB, HiSlip - w przypadku TCP/IP.

Podłączenie logiczne i utrzymanie sesji z urządzeniem, adresowanie urządzeń: najczęściej jest realizowane za pomocą standardu VISA (Virtual Instrument Software Architecture). Na tym poziomie każde urządzenie (np. oscyloskop cyfrowy) otrzymuje swój adres (typu: USB::0x1234::125::A22-5::INSTR)

W ramach sesji utworzonej przez sterowniki VISA następuje komunikacja w języku komend SCPI. Na przykład w celu dokonania pomiaru napięcia wydane są komendy MEASure:VOLTage:DC?

Komendy te mogą być wydawane bezpośrednio przez program użytkownika, coraz częściej jednak używane są do tego celu biblioteki IVI (Interchangeable Virtual Instrument) które w przeciwieństwie do samego języka SCPI pozostawiającego większość szczegółów implementacyjnych producentom urządzeń definiują taką samą składnię dla dowolnego urządzenia danego typu - na przykład każde urządzenie obsługujące pomiar napięcia będzie musiało obsłużyć wywołanie MeasureDCVoltage() - odpowiadające powyższemu ciągowi komend SCPI. Korzystanie z bibliotek IVI jest obecnie optymalną metodą komunikacji programów komputerowych z urządzeniami pomiarowymi. Biblioteki IVI często wewnętrznie tłumaczą wywołania typu MeasureDCVoltage() na ciąg komend SCPI.

Składnia komend SCPI[edytuj | edytuj kod]

Komendy SCPI są wysyłane w postaci tekstowej (ASCII). Komenda składa się z jednego lub więcej słów kluczowych, niektóre mogą przyjmować dodatkowe parametry. Wielkość liter nie ma znaczenia. W dokumentacji systemu SCPI oraz w literaturze przyjmuje się zapis komend częściowo dużymi, a częściowo małymi literami (np. CONFigure, MEASure). Część zapisana dużymi literami jest obowiązkowa, a część pisana małymi literami może zostać opuszczona w komunikacji z urządzeniem (np. zapis measure:voltage:dc jest równoważny z MEASURE:VOLTAGE:DC oraz z zapisem MEAS:VOLT:DC, a zapis SYSTem:COMMunicate:SERial:BAUD? z SYST:COMM:SER:BAUD?).

Komendy zakończone znakiem zapytania wymagają odpowiedzi ze strony urządzenia pomiarowego, a komendy nie zakończone tym znakiem takiej odpowiedzi nie wymagają. Na przykład: MEASure:VOLTage:DC oznacza rozkaz dokonania pomiaru - ale bez przesyłania go do komputera, ale już MEASure:VOLTage:DC? oznacza, że po dokonaniu pomiaru należy przesłać wartość napięcia do komputera.

Odpowiedzi otrzymywane z urządzenia są zwykle w postaci tekstowej, aczkolwiek odpowiedź może przyjść również w postaci binarnej (np. komenda dla oscyloskopu WAVE:DATA? może w odpowiedzi dać ciąg bajtów z kolejnymi wartościami składającymi się na przebieg sygnału, a komenda DISPLAY:DATA? może w odpowiedzi zwrócić bitmapę (BMP lub GIF lub PNG) zawierającą zrzut ekranu urządzenia.

Komendy tworzą drzewo od najbardziej ogólnej do najbardziej szczegółowej. Poziomy drzewa oddzielane są znakiem ":". Na przykład MEASURE:VOLTAGE:DC składa się z trzech poziomów. MEASure:CURRent:AC to inna gałąź drzewa komend z klasy 'dokonaj pomiaru' - "MEASure".

Argumenty dla komendy podawane są po spacji oddzielającej drzewo komend od reszty linii. Na przykład MEASure:VOLTage:DC CHANnel1 zawiera dodatkowy argument "Channel1". TRIGger:MODe NORMal zawiera argument "Normal" dla komendy "MODE".

Komendy mogą być oddzielane znakiem końca linii lub znakiem średnika i z wyjątkiem pierwszej komendy muszą zaczynać się od znaku ":".

Historia[edytuj | edytuj kod]

Pierwsza wersja standardu została opublikowana w 1990r. Na początku była traktowana jako część standardu IEEE-488 opisująca transmisję z urządzeniami podłączanymi poprzez szynę GPIB. Różni producenci zaczęli stosować język komend SCPI zupełnie niezależnie od sposobu fizycznego podłączenia i język ten oderwał się od reszty standardu IEEE-488. Wyłączono go do osobnego standardu IEEE-488.2. Jego rozwojem zajęło się powołane do tego celu konsorcjum SCPI.

W 2002-2003r konsorcjum SCPI weszło w skład IVI Foundation (Interchangeable Virtual Instruments Foundation) i od tego czasu standard SCPI jest utrzymywany przez tę fundację. Od tego czasu producenci oprogramowania pomiarowego coraz częściej zamiast bezpośredniego korzystania z komend SCPI zaczynają korzystać z bardziej ogólnych wywołań zdefiniowanych przez IVI w ramach klas/sterowników IVI.

Zobacz też[edytuj | edytuj kod]

Bibliografia[edytuj | edytuj kod]

  • "Standard Commands for Programmable Instruments (SCPI)" Volume 1: "Syntax and Style" VERSION 1999.0 May, 1999 Printed in U.S.A." [1]
  • "Your Guide to Getting Started with IVI Drivers" Revision 1.2 © Copyright IVI Foundation, 2012 [2]
  • "SCPI Consortium" na stronach "IVI Foundation" [3]

Linki zewnętrzne[edytuj | edytuj kod]