Стандартные команды для программируемых приборов ( SCPI ; часто произносится «Скиппи») определяет стандарт для синтаксиса и команд для использования при управлении программируемыми испытаний и измерений устройств, таких как автоматическое контрольно - измерительной аппаратуры и электронных контрольно - измерительной аппаратуры . [2]
Обзор [ править ]
SCPI был определен как дополнительный уровень поверх спецификации IEEE 488.2-1987 «Стандартные коды, форматы, протоколы и общие команды». [3] Стандарт определяет общий синтаксис , структуру команд и форматы данных , которые будут использоваться со всеми инструментами. В нем представлены общие команды (такие как CONFigure
и MEASure
), которые можно использовать с любым инструментом. Эти команды сгруппированы в подсистемы. SCPI также определяет несколько классов инструментов. Например, любой управляемый источник питания будет реализовывать тот же DCPSUPPLY
базовый класс функциональности. Классы инструментов определяют, какие подсистемы они реализуют, а также любые специфические особенности инструмента.
Канал связи физического оборудования не определяется SCPI. Первоначально он был создан для шины IEEE-488 .1 (GPIB), но SCPI также может использоваться с RS-232 , RS-422 , Ethernet , USB , VXIbus , HiSLIP и т. Д.
Команды SCPI представляют собой текстовые строки ASCII , которые отправляются в прибор через физический уровень (например, IEEE-488.1). Команды представляют собой серию из одного или нескольких ключевых слов, многие из которых принимают параметры. В спецификации написаны ключевые слова CONFigure
: можно использовать ключевое слово целиком или можно сократить его до прописной части. Ответы на команды запроса обычно представляют собой строки ASCII. Однако для массовых данных можно использовать двоичные форматы. [2]
Спецификация SCPI состоит из четырех томов: Том 1: «Синтаксис и стиль», Том 2: «Справочник команд», Том 3: «Формат обмена данными», Том 4: «Классы приборов». [2] Спецификация изначально была выпущена в виде платных руководств, а затем в виде бесплатного файла PDF .
История SCPI [ править ]
Впервые выпущенный в 1990 году [2] [4] SCPI возник как дополнительный уровень для IEEE-488 . IEEE-488.1 определяет физическую и электрическую шину, а IEEE-488.2 определяет протокол и формат данных, но не определяет команды прибора. Разные производители и даже разные модели приборов одного и того же типа будут использовать разные наборы команд. SCPI создал стандарт, который может быть общим для всех производителей и моделей. Это требует использования форматов данных IEEE-488.2, но не требует использования шины IEEE-488.1. [5]
В 2002-2003 годах Консорциум SCPI проголосовал за то, чтобы стать частью IVI Foundation (взаимозаменяемые виртуальные инструменты). [5]
История IEEE 488.2 [ править ]
В 1987 году IEEE представил спецификацию IEEE 488.2-1987 « Стандартные коды, форматы, протоколы и общие команды », позже она была пересмотрена в 1992 году как IEEE 488.2-1992 . [6]
В то время как IEEE 488.2 обеспечивал независимый от устройства синтаксис, по-прежнему не существовало стандарта для команд для конкретных инструментов. Команды для управления одним и тем же классом приборов, например мультиметрами, могут различаться у разных производителей и даже у разных моделей. Военно-воздушные силы США [7], а затем и компания Hewlett-Packard осознали эту проблему. В 1989 году HP разработала свой язык TML [8], предшественник SCPI.
IEC разработали свои собственные стандарты параллельно с IEEE, МЭК 60625-2-1993 (IEC 625). В 2004 году IEEE и IEC объединили свои соответствующие стандарты в «двойной логотип». Стандарт IEEE / IEC IEC 60488-2-2004 , Часть 2: Коды, форматы, протоколы и общие команды , [9] заменяет IEEE 488.2-1992 и IEC. 60625-2-1993. [10]
Синтаксис команды [ править ]
Команды SCPI к прибору могут выполнять либо заданную операцию (например, включение источника питания), либо операцию запроса (например, считывание напряжения). Запросы к прибору выдаются путем добавления вопросительного знака в конец команды. Некоторые команды можно использовать как для настройки, так и для запроса инструмента. Например, режим сбора данных прибора можно установить с помощью ACQuire:MODe
команды или запросить его с помощью ACQuire:MODe?
команды. Некоторые команды могут одновременно устанавливать и запрашивать инструмент. Например, *CAL?
команда запускает процедуру самокалибровки на некотором оборудовании, а затем возвращает результаты калибровки.
Подобные команды сгруппированы в иерархическую или «древовидную» структуру. [2] Например, любая инструкция по считыванию показаний прибора начинается с " MEASure
". Конкретные подкоманды в иерархии вложены :
символом двоеточия ( ). Например, команда «Измерение постоянного напряжения» примет форму MEASure:VOLTage:DC?
, а команда «Измерение переменного тока» - форму MEASure:CURRent:AC?
.
:Мера :Напряжение :ОКРУГ КОЛУМБИЯ? : AC? :Текущий :ОКРУГ КОЛУМБИЯ? : AC? ...
Сокращение команд [ править ]
Синтаксис команды показывает некоторые символы как в верхнем, так и в нижнем регистре. Сокращение команды до отправки только в верхнем регистре имеет то же значение, что и отправка команды в верхнем и нижнем регистре. [2]
Например, команда « SYSTem:COMMunicate:SERial:BAUD 2400
» установит для интерфейса последовательной связи RS-232 значение 2400 бит / с . В качестве альтернативы это также может быть сокращено « SYST:COMM:SER:BAUD 2400
». Команда запроса « SYSTem:COMMunicate:SERial:BAUD?
» или « SYST:COMM:SER:BAUD?
» укажет прибору сообщить свою текущую скорость передачи данных.
Объединение команд [ править ]
На инструмент можно подавать несколько команд в одной строке. Они состоят из простых команд, разделенных точкой с запятой ( ;
). Например, команда «Измерьте напряжение постоянного тока, затем измерьте ток переменного тока» будет выдана как MEASure:VOLTage:DC?;:MEASure:CURRent:AC?
.
Простые команды, начинающиеся с двоеточия ( :
), интерпретируются относительно корня дерева команд. В противном случае они неявно ссылаются на последний узел предыдущей команды (если они уже не начинаются со звездочки). Например,
: SOURce: FREQuency: STARt 100; STOP 200
это сокращение для сообщения
: SOURce: FREQuency: STARt 100;: SOURce: FREQuency: STOP 200
Аргументы [ править ]
Для некоторых команд требуется дополнительный аргумент. Аргументы приводятся после команды и разделяются пробелом. [2] Например, команда установить режим триггера инструмента на «нормальный» может быть задана как « TRIGger:MODe NORMal
». Здесь слово « NORMal
» используется в качестве аргумента команды « TRIGger:MODe
».
Целочисленные аргументы [ править ]
Для команд, которые принимают целочисленные аргументы, значения могут быть указаны в нескольких компьютерных числовых форматах : десятичном, шестнадцатеричном, восьмеричном, двоичном. Последние три формата определены стандартом IEEE 488.2 [9], на котором основан SCPI. [2] Десятичные числа ( основание 10) не имеют префикса, шестнадцатеричные числа (основание 16) имеют префикс или , восьмеричные числа (основание 8) - или , а двоичные числа (основание 2) - или . В шестнадцатеричных цифрах могут использоваться либо прописные буквы (ABCDEF), либо строчные буквы (abcdef), либо#H
#h
#Q
#q
#B
#b
буквы в смешанном регистре (aBcDeF). Для восьмеричного числа была выбрана буква « Q » вместо буквы « O », чтобы минимизировать визуальную путаницу с числом « 0 » (ноль). [9]
Следующие примеры аргументов численно эквивалентны:
- Десятичный:
26
- Шестнадцатеричный:
#H1A
или#h1a
- Восьмеричный:
#Q32
или#q32
- Двоичный:
#B11010
или#b11010
См. Также [ править ]
- IEEE-488 (GPIB)
- Архитектура программного обеспечения виртуальных приборов (VISA)
- Инструмент Драйвер
- Список номеров портов TCP и UDP - scpi-raw для TCP-порта 5025 и UDP-порта 5025
Ссылки [ править ]
- ^ Руководство программиста цифровых осциллографов Tektronix TDS2010; 291-страничный PDF-файл.
- ^ a b c d e f g h Спецификация SCPI-1999; Консорциум SCPI.
- ^ ni.com - История GPIB - Developer Zone
- ^ «История ГПИБ» . Национальные инструменты . Проверено 6 февраля 2010 .
В 1990 году спецификация IEEE 488.2 включала документ «Стандартные команды для программируемого инструментария» (SCPI).
- ^ a b "SCPI" . Фонд IVI . Проверено 2 июня 2010 .
- ^ Стандартные коды, форматы, протоколы и общие команды IEEE для использования с IEEE Std 488.1-1987, Стандартный цифровой интерфейс IEEE для программируемых приборов , Институт инженеров по электротехнике и электронике , 1992, ISBN 1-55937-238-9, IEEE Std 488.2-1992
- ^ Project Mate в 1985 году
- ^ "GPIB 101, Учебное пособие по шине GPIB" . ICS Electronics. п. 5, абзац = Команды SCPI.
- ^ a b c Стандартный цифровой интерфейс для программируемых приборов - Часть 2: Коды, форматы, протоколы и общие команды (принятие (IEEE Std 488.2-1992) . IEEE. doi : 10.1109 / IEEESTD.2004.95390 . ISBN 978-0-7381-4100-8.
- ^ «Замененные или отозванные публикации» . IEC. Архивировано из оригинала на 2012-04-17 . Проверено 6 февраля 2010 .
Внешние ссылки [ править ]
Викискладе есть медиафайлы, связанные со стандартными командами для программируемых инструментов . |
- Консорциум SCPI , официальный сайт
- Характеристики
- Спецификация SCPI-1999, том 1-4 , бесплатно, PDF-файл на 819 страницах.
- Спецификация IEEE 488.2-1992 , стоимость 44 доллара США, доступна в виде файла PDF.
- Спецификация IEEE / IEC 60488-2-2004 , стоимость 332 доллара США, доступна в виде файла PDF.
- Тестовое оборудование Примеры SCPI
- Руководство программиста осциллографов Keysight InfiniiVision 2000 серии X, файл PDF на 938 страницах.