stringtranslate.com

Comandos estándar para instrumentos programables

Panel posterior del osciloscopio digital Tektronix TDS210 que muestra conectores RS-232 (DE9) e IEEE-488 que aceptan comandos SCPI remotos. [1]
Panel posterior del osciloscopio digital Rigol DS1074Z que muestra conectores USB -B y Ethernet ( RJ45 ) que aceptan comandos SCPI remotos. [2]

Los comandos estándar para instrumentos programables ( SCPI ; a menudo pronunciado "skippy") definen un estándar de sintaxis y 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 . [3]

Descripción general

SCPI se definió como una capa adicional además de la especificación IEEE 488.2-1987 "Códigos estándar, formatos, protocolos y comandos comunes". [4] El estándar especifica una sintaxis , una estructura de comandos y formatos de datos comunes que se utilizarán con todos los instrumentos. Introdujo comandos genéricos (como CONFigurey 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 DCPSUPPLYclase 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 utilizar con RS-232 , RS-422 , Ethernet , USB , VXIbus , HiSLIP , etc.

Los comandos SCPI son cadenas de texto 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 utilizar la palabra clave completa o se puede abreviar solo a la parte mayúscula. Las respuestas a los comandos de consulta suelen ser cadenas ASCII. Sin embargo, para datos masivos, se pueden utilizar formatos binarios. [3]

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". [3] La especificación se publicó originalmente como manuales impresos no gratuitos y luego como un archivo PDF gratuito .

Historia del SCPI

Lanzado por primera vez en 1990, [3] [5] SCPI se originó como una capa adicional para IEEE-488 . IEEE-488.1 especificó el bus físico y eléctrico, y 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 para todos los fabricantes y modelos. Requiere el uso de los formatos de datos IEEE-488.2, pero no exige el bus IEEE-488.1. [6]

En 2002-2003, el Consorcio SCPI votó a favor de formar parte de la Fundación IVI (Instrumentos Virtuales Intercambiables). [6]

Historia de IEEE 488.2

En 1987, IEEE introdujo la especificación IEEE 488.2-1987 " Códigos, formatos, protocolos y comandos comunes estándar ", que luego fue revisada en 1992 como IEEE 488.2-1992 . [7]

Si bien IEEE 488.2 proporcionaba 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 entre modelos. La Fuerza Aérea de los Estados Unidos, [8] y más tarde Hewlett-Packard, reconocieron este problema. En 1989, HP desarrolló su lenguaje TML [9] , que fue el precursor de SCPI.

La IEC desarrolló sus propios estándares en paralelo con la IEEE, con la 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 , [10] reemplaza a IEEE 488.2-1992 e IEC. 60625-2-1993. [11]

Sintaxis de comando

Los comandos SCPI a un instrumento pueden realizar una operación de configuración (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 configurarse mediante el ACQuire:MODecomando o podría consultarse mediante 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 jerarquía o estructura de "árbol". [3] Por ejemplo, cualquier instrucción para leer una medición de un instrumento comenzará con " MEASure". Los subcomandos específicos dentro de la jerarquía están anidados con un :carácter de 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?.

 :Medida :Voltaje :¿CORRIENTE CONTINUA? :¿C.A? :Actual :¿CORRIENTE CONTINUA? :¿C.A? ...

Comandos abreviados

La sintaxis del comando muestra algunos caracteres en una combinación 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. [3]

Por ejemplo, el comando " SYSTem:COMMunicate:SERial:BAUD 2400" configuraría una interfaz de comunicaciones serie RS-232 a 2400 bit/s . Alternativamente, esto también podría abreviarse “ 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.

Comandos concatenantes

Se pueden emitir varios comandos a un instrumento en una sola cuerda. Están formados por comandos simples separados por un carácter de punto y coma ( ;). Por ejemplo, el comando "Medir un voltaje de CC y luego medir una corriente de CA" se emitiría 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 aceptan o requieren uno o más argumentos adicionales. Los argumentos se dan después del comando y están separados del comando mediante un espacio. [3] Por ejemplo, el comando para configurar el modo de disparo de un instrumento en "normal" puede darse como " TRIGger:MODe NORMal". Aquí, la palabra " NORMal" se utiliza como argumento del TRIGger:MODecomando " ". Cuando se proporcionan varios argumentos, los argumentos se escriben como una lista separada por comas. Por ejemplo, un comando de consulta que realiza una medición de voltios de CA en un multímetro digital, utilizando el rango de medición de 10 VRMS del medidor y mostrando el valor de voltaje medido con 4-1/2 dígitos de resolución, se escribiría como " MEASure:VOLTage:AC? 10,4".

argumentos enteros

Para los comandos que aceptan argumentos enteros , los valores se pueden especificar en múltiples formatos numéricos de computadora : decimal, hexadecimal, octal, binario. Los últimos tres formatos están definidos por IEEE 488.2, [10] en el que se basa SCPI. [3] 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), minúsculas (abcdef) o letras 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 " " (cero). [10]#H#h#Q#q#B#b

Los siguientes ejemplos de argumentos son numéricamente equivalentes:

Ver también

Referencias

  1. ^ Manual del programador del osciloscopio digital Tektronix TDS2010; 2020; 291 páginas.
  2. ^ Manual del programador del osciloscopio Rigol DS1074Z; 2019; 264 páginas.
  3. ^ Especificación abcdefgh SCPI-1999; Consorcio SCPI.
  4. ^ ni.com - Historia de GPIB - Zona de desarrolladores
  5. ^ "Historia de GPIB". Instrumentos Nacionales . Consultado el 6 de febrero de 2010 . En 1990, la especificación IEEE 488.2 incluía el documento Comandos estándar para instrumentación programable (SCPI).
  6. ^ ab "SCPI". Fundación IVI . Consultado el 2 de junio de 2010 .
  7. ^ 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
  8. ^ Compañero de proyecto en 1985
  9. ^ "GPIB 101, tutorial del bus GPIB". Electrónica ICS. pag. 5, párrafo = Comandos SCPI.
  10. ^ Interfaz digital estándar abc 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. hdl :11059/14380. ISBN 978-0-7381-4100-8.
  11. ^ "Publicaciones reemplazadas o retiradas". CEI. Archivado desde el original el 17 de abril de 2012 . Consultado el 6 de febrero de 2010 .

enlaces externos

Especificaciones

Ejemplos de manuales de programación

Multímetros
Osciloscopios