Los comandos estándar para instrumentos programables ( SCPI ; a menudo pronunciado "skippy") definen un estándar para la sintaxis y los comandos para usar en el control de dispositivos de prueba y medición programables, como equipos de prueba automáticos y equipos de prueba electrónicos . [2]
Descripción general
SCPI se definió como una capa adicional sobre la especificación IEEE 488.2-1987 "Códigos estándar, formatos, protocolos y comandos comunes". [3] El estándar especifica una sintaxis , una estructura de comando y formatos de datos comunes , que se utilizarán con todos los instrumentos. Introdujo comandos genéricos (como CONFigure
y MEASure
) que podrían usarse con cualquier instrumento. Estos comandos se agrupan en subsistemas. SCPI también define varias clases de instrumentos. Por ejemplo, cualquier fuente de alimentación controlable implementaría la misma DCPSUPPLY
clase de funcionalidad básica. Las clases de instrumentos especifican qué subsistemas implementan, así como cualquier característica específica del instrumento.
El enlace de comunicaciones de hardware físico no está definido por SCPI. Si bien se creó originalmente para el bus IEEE-488 .1 (GPIB), SCPI también se puede usar con RS-232 , RS-422 , Ethernet , USB , VXIbus , HiSLIP , etc.
Los comandos SCPI son cadenas textuales ASCII , que se envían al instrumento a través de la capa física (por ejemplo, IEEE-488.1). Los comandos son una serie de una o más palabras clave, muchas de las cuales toman parámetros. En la especificación, las palabras clave están escritas CONFigure
: Se puede usar la palabra clave completa o se puede abreviar solo a la parte en mayúsculas. Las respuestas a los comandos de consulta suelen ser cadenas ASCII. Sin embargo, para datos masivos, se pueden utilizar formatos binarios. [2]
La especificación SCPI consta de cuatro volúmenes: Volumen 1: "Sintaxis y estilo", Volumen 2: "Referencia de comandos", Volumen 3: "Formato de intercambio de datos", Volumen 4: "Clases de instrumentos". [2] La especificación se publicó originalmente como manuales impresos no gratuitos y luego como un archivo PDF gratuito .
Historia de SCPI
Lanzado por primera vez en 1990, [2] [4] SCPI se originó como una capa adicional para IEEE-488 . IEEE-488.1 especificó el bus físico y eléctrico, e IEEE-488.2 especificó el protocolo y el formato de datos, pero ninguno especificó los comandos del instrumento. Diferentes fabricantes, e incluso diferentes modelos, del mismo tipo de instrumento utilizarían diferentes conjuntos de comandos. SCPI creó un estándar que podría ser común a todos los fabricantes y modelos. Requiere el uso de los formatos de datos IEEE-488.2, pero no exige el bus IEEE-488.1. [5]
En 2002-2003, el Consorcio SCPI votó para formar parte de la Fundación IVI (Instrumentos virtuales intercambiables). [5]
Historia IEEE 488.2
En 1987, IEEE introdujo la especificación IEEE 488.2-1987 " Códigos estándar, formatos, protocolos y comandos comunes ", que luego fue revisada en 1992 como IEEE 488.2-1992 . [6]
Si bien IEEE 488.2 proporcionó una sintaxis independiente del dispositivo, todavía no existía un estándar para comandos específicos de instrumentos. Los comandos para controlar la misma clase de instrumento, por ejemplo, multímetros, variarían entre fabricantes e incluso modelos. La Fuerza Aérea de los Estados Unidos, [7] y más tarde Hewlett-Packard, reconocieron este problema. En 1989, HP desarrolló su lenguaje TML [8], que fue el precursor de SCPI.
La IEC desarrolló sus propios estándares en paralelo con la IEEE, con IEC 60625-2-1993 (IEC 625). En 2004, IEEE e IEC combinaron sus respectivos estándares en un estándar IEEE / IEC de "logotipo dual" IEC 60488-2-2004 , Parte 2: Códigos, formatos, protocolos y comandos comunes , [9] reemplaza a IEEE 488.2-1992 e IEC 60625-2-1993. [10]
Sintaxis del comando
Los comandos SCPI a un instrumento pueden realizar una operación establecida (por ejemplo, encender una fuente de alimentación) o una operación de consulta (por ejemplo, leer un voltaje). Las consultas se envían a un instrumento añadiendo un signo de interrogación al final de un comando. Algunos comandos se pueden utilizar tanto para configurar como para consultar un instrumento. Por ejemplo, el modo de adquisición de datos de un instrumento podría establecerse usando el ACQuire:MODe
comando o podría consultarse usando el ACQuire:MODe?
comando. Algunos comandos pueden configurar y consultar un instrumento a la vez. Por ejemplo, el *CAL?
comando ejecuta una rutina de autocalibración en algunos equipos y luego devuelve los resultados de la calibración.
Los comandos similares se agrupan en una estructura jerárquica o de "árbol". [2] Por ejemplo, cualquier instrucción para leer una medida de un instrumento comenzará con " MEASure
". Los subcomandos específicos dentro de la jerarquía están anidados con dos puntos ( :
). Por ejemplo, el comando para "Medir un voltaje de CC" tomaría la forma MEASure:VOLTage:DC?
, y el comando para "Medir una corriente de CA" tomaría la forma MEASure:CURRent:AC?
.
:La medida :Voltaje :¿CORRIENTE CONTINUA? :¿C.A? :Actual :¿CORRIENTE CONTINUA? :¿C.A? ...
Comandos abreviados
La sintaxis del comando muestra algunos caracteres en una mezcla de mayúsculas y minúsculas. Abreviar el comando para enviar solo mayúsculas tiene el mismo significado que enviar el comando en mayúsculas y minúsculas. [2]
Por ejemplo, el comando “ SYSTem:COMMunicate:SERial:BAUD 2400
” establecería una interfaz de comunicaciones serie RS-232 en 2400 bit / s . Esto también podría abreviarse alternativamente como “ SYST:COMM:SER:BAUD 2400
”. El comando de consulta “ SYSTem:COMMunicate:SERial:BAUD?
” o “ SYST:COMM:SER:BAUD?
” indicaría al instrumento que informe su velocidad en baudios actual.
Concatenar comandos
Se pueden emitir varios comandos a un instrumento en una sola cadena. Están formados por comandos simples separados por un carácter de punto y coma ( ;
). Por ejemplo, el comando para "Medir un voltaje de CC y luego medir una corriente de CA" se emitirá como MEASure:VOLTage:DC?;:MEASure:CURRent:AC?
.
Los comandos simples que comienzan con dos puntos ( :
) se interpretan con respecto a la raíz del árbol de comandos. De lo contrario, se refieren implícitamente al último nodo del comando anterior (a menos que ya comiencen con un asterisco). Por ejemplo,
: FUENTE: FRECUENCIA: INICIO 100; PARADA 200
es una abreviatura del mensaje
: FUENTE: FRECUENCIA: INICIO 100;: FUENTE: FRECUENCIA: PARADA 200
Argumentos
Algunos comandos requieren un argumento adicional. Los argumentos se dan después del comando y están separados por un espacio. [2] Por ejemplo, el comando para establecer el modo de disparo de un instrumento en "normal" se puede dar como " TRIGger:MODe NORMal
". Aquí, la palabra " NORMal
" se utiliza como argumento para el TRIGger:MODe
comando " ".
Argumentos enteros
Para los comandos que aceptan argumentos enteros , los valores se pueden especificar en varios formatos de números de computadora : decimal, hexadecimal, octal, binario. Los últimos tres formatos están definidos por IEEE 488.2, [9] en el que se basa SCPI. [2] Los números decimales ( base 10) no tienen prefijo, los números hexadecimales (base 16) tienen el prefijo o , los números octales (base 8) con o y los números binarios (base 2) con o . Los dígitos hexadecimales pueden utilizar letras mayúsculas (ABCDEF) o minúsculas (abcdef) o letras mayúsculas mixtas (aBcDeF). Para octal, se eligió la letra " Q " en lugar de la letra " O " para minimizar la confusión visual con el número " 0 " (cero). [9]#H
#h
#Q
#q
#B
#b
Los siguientes ejemplos de argumentos son numéricamente equivalentes:
- Decimal:
26
- Hexadecimal:
#H1A
o#h1a
- Octal:
#Q32
o#q32
- Binario:
#B11010
o#b11010
Ver también
- IEEE-488 (GPIB)
- Arquitectura de software de instrumentos virtuales (VISA)
- Controlador de instrumentos
- Lista de números de puerto TCP y UDP : scpi-raw en el puerto TCP 5025 y el puerto UDP 5025
Referencias
- ^ Manual del programador del osciloscopio digital Tektronix TDS2010; Archivo PDF de 291 páginas.
- ^ a b c d e f g h Especificación de SCPI-1999; Consorcio SCPI.
- ^ ni.com - Historia de GPIB - Zona de desarrolladores
- ^ "Historia de GPIB" . Instrumentos Nacionales . Consultado el 6 de febrero de 2010 .
En 1990, la especificación IEEE 488.2 incluía el documento de Comandos estándar para instrumentación programable (SCPI).
- ^ a b "SCPI" . Fundación IVI . Consultado el 2 de junio de 2010 .
- ^ Códigos, formatos, protocolos y comandos comunes estándar IEEE para uso con IEEE Std 488.1-1987, Interfaz digital estándar IEEE para instrumentación programable , Instituto de ingenieros eléctricos y electrónicos , 1992, ISBN 1-55937-238-9, Norma IEEE 488.2-1992
- ^ Proyecto Mate en 1985
- ^ "GPIB 101, un tutorial del bus GPIB" . Electrónica ICS. pag. 5, párrafo = Comandos SCPI.
- ^ a b c Interfaz digital estándar para instrumentación programable - Parte 2: Códigos, formatos, protocolos y comandos comunes (adopción de (IEEE Std 488.2-1992) . IEEE. Doi : 10.1109 / IEEESTD.2004.95390 . ISBN 978-0-7381-4100-8.
- ^ "Publicaciones reemplazadas o retiradas" . IEC. Archivado desde el original el 17 de abril de 2012 . Consultado el 6 de febrero de 2010 .
enlaces externos
- Consorcio SCPI , sitio web oficial
- Especificaciones
- Especificación SCPI-1999, Volumen 1-4 , archivo PDF gratuito de 819 páginas.
- Especificación IEEE 488.2-1992 , costo de USD $ 44, disponible como archivo PDF.
- Especificación IEEE / IEC 60488-2-2004 , costo de USD $ 332, disponible como archivo PDF.
- Ejemplos de equipos de prueba SCPI
- Guía del programador de osciloscopios Keysight InfiniiVision 2000 serie X , archivo PDF de 938 páginas.