Продолжая использовать сайт, вы даете свое согласие на работу с этими файлами.
Standard Commands for Programmable Instruments
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
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
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
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
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ż
- IEEE-488 (GPIB)
- Virtual Instrument Software Architecture (VISA)
- Interchangeable Virtual Instrument (IVI)
- Instrument Driver
Bibliografia
- "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
- Oficjalna strona
- IEEE488.2-1992 Specification, Publikacja oficjalna IEEE (koszt 44.89USD)
- Open Source SCPI device library