Стандартные команды для программируемых инструментов
Стандартные команды для программируемых приборов ( SCPI ; часто произносится как «скиппи») определяют стандарт синтаксиса и команд, используемых при управлении программируемыми испытательными и измерительными устройствами, такими как автоматическое испытательное оборудование и электронное испытательное оборудование . [3]
Обзор
[ редактировать ]SCPI был определен как дополнительный уровень поверх спецификации IEEE 488.2-1987 «Стандартные коды, форматы, протоколы и общие команды». [4] Стандарт определяет общий синтаксис , структуру команд и форматы данных , которые будут использоваться со всеми инструментами. Он представил общие команды (такие как CONFigure
и MEASure
), который можно использовать с любым инструментом. Эти команды сгруппированы в подсистемы. SCPI также определяет несколько классов инструментов. Например, любой управляемый источник питания будет реализовывать то же самое. DCPSUPPLY
базовый функциональный класс. Классы инструментов определяют, какие подсистемы они реализуют, а также любые функции, специфичные для инструмента.
Канал связи физического оборудования не определяется SCPI. Хотя изначально SCPI был создан для шины IEEE-488.1 (GPIB), его также можно использовать с RS-232 , RS-422 , Ethernet , USB , VXIbus , HiSLIP и т. д.
Команды SCPI представляют собой текстовые строки ASCII , которые отправляются на прибор через физический уровень (например, IEEE-488.1). Команды представляют собой серию из одного или нескольких ключевых слов, многие из которых принимают параметры. В спецификации прописаны ключевые слова CONFigure
: можно использовать все ключевое слово или сократить его до заглавной части. Ответы на команды запроса обычно представляют собой строки ASCII. Однако для больших объемов данных можно использовать двоичные форматы. [3]
Спецификация SCPI состоит из четырех томов: Том 1: «Синтаксис и стиль», Том 2: «Справочник команд», Том 3: «Формат обмена данными», Том 4: «Классы инструментов». [3] Первоначально спецификация была выпущена в виде платного печатного руководства, а затем в виде бесплатного файла PDF .
История SCPI
[ редактировать ]Впервые выпущенный в 1990 году, [3] [5] SCPI возник как дополнительный уровень для IEEE-488 . IEEE-488.1 определял физическую и электрическую шину, а IEEE-488.2 определял протокол и формат данных, но не определял команды инструмента. Разные производители и даже разные модели приборов одного и того же типа будут использовать разные наборы команд. SCPI создал стандарт, который может быть общим для всех производителей и моделей. Он требует использования форматов данных IEEE-488.2, но не требует использования шины IEEE-488.1. [6]
В 2002–2003 годах Консорциум SCPI проголосовал за то, чтобы стать частью Фонда IVI (Взаимозаменяемые виртуальные инструменты). [6]
История IEEE 488.2
[ редактировать ]В 1987 году IEEE представил спецификацию IEEE 488.2-1987 « Стандартные коды, форматы, протоколы и общие команды », которая позже была пересмотрена в 1992 году как IEEE 488.2-1992 . [7]
Хотя IEEE 488.2 обеспечивал независимый от устройства синтаксис, стандарта для команд, специфичных для прибора, по-прежнему не существовало. Команды для управления приборами одного и того же класса, например мультиметрами, могут различаться в зависимости от производителя и даже модели. ВВС США, [8] а позже и Hewlett-Packard осознали эту проблему. В 1989 году HP разработала свой язык TML. [9] который был предшественником SCPI.
МЭК . разработала свои собственные стандарты параллельно с IEEE, а именно IEC 60625-2-1993 (IEC 625) В 2004 году IEEE и IEC объединили свои соответствующие стандарты в стандарт IEEE/IEC с «двойным логотипом» IEC 60488-2-2004 , Часть 2: Коды, форматы, протоколы и общие команды . [10] заменяет IEEE 488.2-1992 и IEC 60625-2-1993. [11]
Синтаксис команды
[ редактировать ]Команды SCPI для прибора могут выполнять либо операцию установки (например, включение источника питания), либо операцию запроса (например, считывание напряжения). Запросы к прибору отправляются путем добавления вопросительного знака в конце команды. Некоторые команды можно использовать как для настройки, так и для запроса прибора. Например, режим сбора данных прибора можно установить с помощью ACQuire:MODe
команду или ее можно запросить с помощью команды ACQuire:MODe?
команда. Некоторые команды могут одновременно устанавливать и запрашивать инструмент. Например, *CAL?
Команда запускает процедуру самокалибровки на некотором оборудовании, а затем возвращает результаты калибровки.
Подобные команды группируются в иерархическую или «деревовидную» структуру. [3] Например, любая инструкция по считыванию результатов измерения с прибора начинается с « MEASure
". Отдельные подкоманды в иерархии вложены через двоеточие ( :
) характер. Например, команда «Измерить напряжение постоянного тока» будет иметь вид MEASure:VOLTage:DC?
, а команда «Измерить переменный ток» примет вид MEASure:CURRent:AC?
.
:MEASure :VOLTage :DC? :AC? :CURRent :DC? :AC? ...
Сокращение команд
[ редактировать ]Синтаксис команды отображает некоторые символы в сочетании верхнего и нижнего регистра. Сокращение команды до отправки только верхнего регистра имеет то же значение, что и отправка команды в верхнем и нижнем регистре. [3]
Например, команда « 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
Аргументы
[ редактировать ]Некоторые команды принимают или требуют один или несколько дополнительных аргументов. Аргументы задаются после команды и отделяются от команды пробелом. [3] Например, команда для установки режима запуска прибора на «нормальный» может быть задана как « TRIGger:MODe NORMal
". Вот слово " NORMal
" используется в качестве аргумента для " TRIGger:MODe
". Если указано несколько аргументов, аргументы записываются в виде списка, разделенного запятыми. Например, команда запроса, которая выполняет измерение напряжения переменного тока на цифровом мультиметре с использованием диапазона измерения измерителя 10 VRMS и отображает измеренное напряжение. значение с разрешением 4-1/2 разряда будет записано как " MEASure:VOLTage:AC? 10,4
".
Целочисленные аргументы
[ редактировать ]Для команд, которые принимают целочисленные аргументы, значения могут быть указаны в нескольких форматах компьютерных чисел : десятичном, шестнадцатеричном, восьмеричном, двоичном. Последние три формата определены стандартом IEEE 488.2. [10] на котором основан SCPI. [3] Десятичные числа ( основание 10) не имеют префикса, шестнадцатеричные числа (основание 16) имеют префикс #H
или #h
, восьмеричные числа (основание 8) с #Q
или #q
и двоичные числа (основание 2) с #B
или #b
. Шестнадцатеричные цифры могут использовать либо прописные буквы (ABCDEF), либо строчные буквы (abcdef), либо буквы смешанного регистра (aBcDeF). » была выбрана буква « Q Для восьмеричного числа вместо буквы « О », чтобы минимизировать визуальную путаницу с цифрой « 0 » (ноль). [10]
Следующие примеры аргументов численно эквивалентны:
- Десятичный:
26
- Шестнадцатеричный:
#H1A
или#h1a
- Восьмеричная:
#Q32
или#q32
- Двоичный:
#B11010
или#b11010
См. также
[ редактировать ]- IEEE-488 (GPIB)
- Архитектура программного обеспечения виртуальных инструментов (VISA)
- Драйвер инструмента
- Список номеров портов TCP и UDP — scpi-raw для TCP-порта 5025 и UDP-порта 5025.
Ссылки
[ редактировать ]- ^ Руководство программиста цифрового осциллографа Tektronix TDS2010; 2020; 291 страница.
- ^ Руководство по программированию осциллографа Rigol DS1074Z; 2019 год; 264 страницы.
- ^ Jump up to: а б с д и ж г час Спецификация SCPI-1999; Консорциум SCPI.
- ^ ni.com - История GPIB - Зона разработчика
- ^ «История ГПИБ» . Национальные инструменты . Проверено 6 февраля 2010 г.
В 1990 году спецификация IEEE 488.2 включала документ «Стандартные команды для программируемых приборов» (SCPI).
- ^ Jump up to: а б «СКПИ» . Фонд ИВИ . Проверено 2 июня 2010 г.
- ^ Стандартные коды, форматы, протоколы и общие команды IEEE для использования со стандартом IEEE Std 488.1-1987, Стандартный цифровой интерфейс IEEE для программируемых приборов , Институт инженеров по электротехнике и электронике , 1992, ISBN 1-55937-238-9 , стандарт IEEE 488.2-1992.
- ↑ Project Mate в 1985 году.
- ^ «GPIB 101, Учебное пособие по шине GPIB» . ИКС Электроника. п. 5, абзац = Команды SCPI.
- ^ Jump up to: а б с Стандартный цифровой интерфейс для программируемых приборов. Часть 2: Коды, форматы, протоколы и общие команды (принятие (IEEE Std 488.2-1992) . IEEE. doi : 10.1109/IEESTD.2004.95390 . hdl : 11059/14380 . ISBN 978-0-7381-4100-8 .
- ^ «Замененные или отозванные публикации» . МЭК. Архивировано из оригинала 17 апреля 2012 г. Проверено 6 февраля 2010 г.
Внешние ссылки
[ редактировать ]- Организация SCPI , официальный сайт
- Технические характеристики
- SCPI-1999, Том 1-4 , бесплатно , PDF-файл на 819 страниц. (команды * не включены, поскольку они указаны в IEEE 488.2)
- IEEE 488.2-1992 , стоимость 49 долларов США в 2024 году, доступен в виде 254-страничного PDF-файла. (заменяет IEEE 488.2-1987 , оба заменены IEEE/IEC 60488-2-2004)
- IEEE/IEC 60488-2-2004 , стоимость 354 доллара США в 2024 году, доступен в виде 264-страничного PDF-файла. (заменяет IEC 60625-2-1993/IEEE 488.2-1992/IEEE 488.2-1987)
Примеры руководства по программированию
[ редактировать ]- Мультиметры
- Tektronix DMM6500 , PDF-файл на 1202 страницы.
- Осциллографы
- Семейства Keysight InfiniiVision , PDF-файл на 1896 страницах.
- Rohde-Schwarz MXO 4 Series , PDF-файл на 848 страниц.
- Tektronix MSO 4/5/6 Families , PDF-файл на 2050 страниц.