Articulo de referencia

Comandos estándar para instrumentos programables

Panel posterior del osciloscopio digital Tektronix TDS210 que muestra los conectores RS-232 (DE9) e IEEE-488 que aceptan comandos SCPI remotos. [ 1 ] Panel posterior del oscilos...

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

El estándar de comandos para instrumentos programables ( SCPI ; a menudo pronunciado "skippy") define un estándar para la sintaxis y los comandos que se deben usar para controlar 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 sobre la especificación IEEE 488.2-1987 "Códigos, formatos, protocolos y comandos comunes estándar". [ 4 ] El estándar especifica una sintaxis común , una estructura de comandos y formatos de datos , que se utilizarán con todos los instrumentos. Introdujo comandos genéricos (como CONFigurey MEASure) que podrían utilizarse 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 base. 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 (capa física) no está definido por SCPI. [ 5 ] Si bien fue creado originalmente para el bus IEEE-488.1 (GPIB), [ 5 ] SCPI también puede usarse con RS-232 , RS-422 , RS-485 , USB , Ethernet , VXIbus , HiSLIP , etc. [ 5 ]

Los comandos SCPI son cadenas de texto ASCII , [ 5 ] que se envían al instrumento a través de la capa física. [ 5 ] Los comandos son una serie de una o más palabras clave, muchas de las cuales admiten parámetros. En la especificación, las palabras clave se escriben como CONFigure: Se puede usar la palabra clave completa o abreviarla a solo la parte en mayúsculas. Las respuestas a los comandos de consulta suelen ser cadenas ASCII. Sin embargo, para datos masivos, se pueden usar 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". La especificación se publicó originalmente como manuales impresos de pago, y posteriormente como un único archivo PDF gratuito que incluye los cuatro volúmenes. [ 3 ]

Historia de SCPI

Lanzado por primera vez en 1990, [ 3 ] [ 6 ] SCPI se originó como una capa adicional para IEEE-488 . IEEE-488.1 especificaba el bus físico y eléctrico, e IEEE-488.2 especificaba el protocolo y el formato de datos, pero ninguno especificaba comandos de instrumentos. Diferentes fabricantes, e incluso diferentes modelos, del mismo tipo de instrumento usarí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. [ 7 ]

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

Historia de IEEE 488.2

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

Si bien la norma IEEE  488.2 proporcionaba una sintaxis independiente del dispositivo, aún no existía un estándar para los comandos específicos de cada instrumento. Los comandos para controlar la misma clase de instrumento, por ejemplo, multímetros, variaban entre fabricantes e incluso entre modelos. La Fuerza Aérea de los Estados Unidos [ 9 ] y, posteriormente, Hewlett-Packard, reconocieron este problema. En 1989, HP desarrolló su lenguaje TML [ 10 ] , 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, la IEEE y la IEC combinaron sus respectivos estándares en un estándar IEEE/IEC de "doble logotipo", la IEC  60488-2-2004 , Parte 2: Códigos, formatos, protocolos y comandos comunes , [ 11 ] reemplaza a la IEEE  488.2-1992 y a la IEC  60625-2-1993. [ 12 ]

Sintaxis de comandos

Los comandos SCPI para 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 agregando un signo de interrogación al final del comando. Algunos comandos se pueden usar tanto para configurar como para consultar un instrumento. Por ejemplo, el modo de adquisición de datos de un instrumento se puede configurar con el ACQuire:MODecomando o se puede consultar con el ACQuire:MODe?comando. Algunos comandos pueden configurar y consultar un instrumento simultáneamente. Por ejemplo, el *CAL?comando ejecuta una rutina de autocalibración en un equipo 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 se anidan 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? ...

Caso

Aunque la sintaxis de comandos anterior muestra comandos con mayúsculas y minúsculas mezcladas, SCPI no distingue entre mayúsculas y minúsculas .

Por ejemplo, para VOLTage, todas las siguientes son representaciones válidas: VOLTAGE, voltage, Voltage, VoLtAgE.

Abreviar comandos

La sintaxis del comando muestra algunos caracteres en una mezcla de mayúsculas y minúsculas. Abreviar el comando para enviar solo las mayúsculas tiene el mismo significado que enviar el comando con mayúsculas y minúsculas. [ 3 ]

Por ejemplo, el comando “ SYSTem:COMMunicate:SERial:BAUD 2400” configuraría una interfaz de comunicaciones seriales RS-232 a 2400 bit/s . Esto también podría abreviarse como “ SYST:COMM:SER:BAUD 2400”. El comando de consulta “ SYSTem:COMMunicate:SERial:BAUD?” o “ SYST:COMM:SER:BAUD?” indicaría al instrumento que informara su velocidad de transmisión actual.

Los únicos comandos válidos son la forma corta y la forma larga de cada comando; todas las demás variaciones de subconjuntos no son válidas.

Por ejemplo, para COMMunicate, solo COMM(forma corta) y COMMUNICATE(forma larga) son válidas, pero COM, COMMUN, COMMUNIClos subconjuntos no son válidos, y las letras añadidas también son inválidas, como COMMUNICATED.

Comandos concatenados

Se pueden emitir múltiples comandos a un instrumento en una sola cuerda. Estos se componen de comandos simples separados por un punto y coma ( ;).

Por ejemplo, el comando para "Medir un voltaje CC y luego medir una corriente 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:FIN 200

La ruta actual se restablece a la raíz mediante: el carácter de salto de línea, el comando *RST y cuando el dispositivo se enciende por primera vez.

Argumentos

Algunos comandos aceptan o requieren uno o más argumentos adicionales. Los argumentos se proporcionan después del comando y se separan de este mediante un espacio. [ 11 ] Por ejemplo, el comando para establecer 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, estos 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 pueden especificarse en múltiples formatos numéricos informáticos : decimal, hexadecimal, octal y binario. Los últimos tres formatos están definidos por IEEE 488.2, [ 11 ] en el que se basa SCPI. [ 3 ] Los números decimales ( base 10) no llevan prefijo, los números hexadecimales (base 16) llevan el prefijo o , los números octales (base 8) llevan o , y los números binarios (base 2) llevan o . Los dígitos hexadecimales pueden usar letras mayúsculas (ABCDEF), minúsculas (abcdef) o una combinación de mayúsculas y minúsculas (aBcDeF). Para el octal, se eligió la letra " Q " en lugar de la letra " O " para minimizar la confusión visual con el número " 0 " (cero). [ 11 ]#H#h#Q#q#B#b

Los siguientes ejemplos de argumentos son numéricamente equivalentes:

  • Decimal:26
  • Hexadecimal: #H1Ao#h1a
  • Octal: #Q32o#q32
  • Binario: #B11010o#b11010

488.2 comandos

Dado que SCPI se definió como una capa adicional sobre la especificación IEEE 488.2, un dispositivo compatible con SCPI también debería reconocer varios comandos 488.2. [ 3 ] Estos comandos también podrían conocerse extraoficialmente como comandos de asterisco (o comandos estrella), porque comienzan con el carácter de asterisco* .

Según la sección 4.1.1 del Volumen 1 de SCPI, todos los dispositivos SCPI deben implementar los siguientes comandos 488.2. [ 3 ] En la práctica, algunos equipos de prueba de gama baja pueden admitir solo un subconjunto de estos comandos 488.2, o incluso aceptarlos pero no realizar ninguna operación. Se recomienda al usuario consultar el manual del programador de cada dispositivo antes de asumir que todos los comandos 488.2 son compatibles.

  • *CLS
  • *ESE
  • *ESE?
  • *ESR?
  • *IDN?
  • *OPC
  • *OPC?
  • *RST
  • *SRE
  • *SRE?
  • *STB?
  • *TST?
  • *WAI

Según la sección 4.1.2 del Volumen 1 de SCPI, todos los demás comandos 488.2 no enumerados anteriormente se consideran opcionales y no son requeridos por SCPI. [ 3 ]

  • *AAD
  • *CAL?
  • *DDT
  • *DDT?
  • *DLF
  • *DMC
  • *EMC
  • *EMC?
  • *GMC?
  • *IST?
  • *LMC?
  • *LRN?
  • *OPT?
  • *PCB
  • *PMC
  • *PRE
  • *PRE?
  • *PSC
  • *PSC?
  • *PUD
  • *PUD?
  • *RCL
  • *RDT
  • *RDT?
  • *SAV
  • *TRG
  • *RMC
  • *SDS

Véase 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. ^ 1 2 3 4 5 6 7 8 9 10 Especificación SCPI-1999; Consorcio SCPI.
  4. "Historia de GPIB – Zona de desarrolladores" . National Instruments . Archivado del original el 25 de marzo de 2012. Consultado el 2 de diciembre de 2025 .
  5. 1 2 3 4 5 "El estándar SCPI (descripción general)" . Fundación IVI . Archivado del original el 21 de septiembre de 2024.
  6. "Historia de GPIB" . National Instruments . Consultado el 6 de febrero de 2010. En 1990, la especificación IEEE 488.2 incluyó el documento de Comandos Estándar para Instrumentación Programable (SCPI).
  7. 1 2 "SCPI" . Fundación IVI . Consultado el 2 de junio de 2010 .
  8. Códigos, formatos, protocolos y comandos comunes estándar IEEE para su 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
  9. Proyecto Mate en 1985
  10. "GPIB 101, Un tutorial del bus GPIB" . ICS Electronics. pág. 5, párrafo=Comandos SCPI. 
  11. 1 2 3 4 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 . hdl : 11059/14380 . ISBN 978-0-7381-4100-8.
  12. "Publicaciones reemplazadas o retiradas" . IEC . Consultado el 6 de febrero de 2010 .{{cite web}}: CS1 maint: servicio de archivado obsoleto ( enlace )
  • Organización SCPI , sitio web oficial
Presupuesto
  • SCPI-1999, Volumen 1-4 , archivo PDF de 819 páginas, descarga gratuita (no incluye comandos con asterisco (*), ya que están especificados en IEEE 488.2 e IEC 60488-2).
  • IEEE 488.2-1992 , archivo PDF de 254 páginas, cuesta 56 USD en 2026 (sustituido por IEEE/IEC 60488-2-2004).
  • IEEE/IEC 60488-2-2004 , archivo PDF de 264 páginas, cuesta 404 USD en 2026.

Ejemplos del manual de programación

Multímetros
  • Tektronix DMM6500 , archivo PDF de 1202 páginas.
Osciloscopios
  • Familias Keysight InfiniiVision , archivo PDF de 1896 páginas.
  • Rohde-Schwarz MXO 4 Series , archivo PDF de 848 páginas.
  • Familias Tektronix MSO 4/5/6 , archivo PDF de 2050 páginas.