Comandos estándar para instrumentos programables

Protocolo de comunicaciones para equipos de prueba
Panel trasero del osciloscopio digital Tektronix TDS210 que muestra conectores RS-232 (DE9) e IEEE-488 que aceptan comandos SCPI remotos. [1]
Panel trasero 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 sobre la especificación IEEE 488.2-1987 "Códigos estándar, formatos, protocolos y comandos comunes". [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 se podrían utilizar 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 se creó originalmente para el bus IEEE-488.1 (GPIB), [5] SCPI también se puede utilizar 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 toman parámetros. En la especificación, las palabras clave se escriben de la siguiente manera CONFigure: Se puede utilizar la palabra clave completa o se puede abreviar 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 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". La especificación se publicó originalmente como manuales impresos no libres, y luego como un archivo PDF libre que incluye los cuatro volúmenes. [3]

Historia de SCPI

SCPI , que se lanzó por primera vez en 1990, [3] [6] se originó como una capa adicional para IEEE-488 . IEEE-488.1 especificaba el bus físico y eléctrico, y IEEE-488.2 especificaba el protocolo y el formato de datos, pero ninguno especificaba 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 obliga al bus IEEE-488.1. [7]

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

Historia de IEEE 488.2

En 1987, el 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 . [8]

Aunque el IEEE 488.2 proporcionaba una sintaxis independiente del dispositivo, todavía 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 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], que fue el precursor de SCPI.

La IEC desarrolló sus propios estándares en paralelo con el 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 "doble logotipo" IEC 60488-2-2004 , Parte 2: Códigos, formatos, protocolos y comandos comunes , [11] que reemplaza a IEEE 488.2-1992 e IEC 60625-2-1993. [12]

Sintaxis de comandos

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 emiten 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 realizar consultas a un instrumento. Por ejemplo, el modo de adquisición de datos de un instrumento se puede configurar mediante el ACQuire:MODecomando o se puede realizar una consulta mediante el ACQuire:MODe?comando. Algunos comandos pueden configurar y realizar consultas a un instrumento a la vez. Por ejemplo, el *CAL?comando ejecuta una rutina de autocalibración en algún 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 comando anterior muestra comandos en mayúsculas y minúsculas, SCPI no distingue entre mayúsculas y minúsculas .

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

Abreviando comandos

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” establecería una interfaz de comunicaciones serial 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 informe su velocidad en baudios actual.

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

Por ejemplo, COMM(forma corta) y COMMUNICATE(forma larga) son válidos, pero los subconjuntos COM, COMMUN, COMMUNICno son válidos, y las letras adjuntas tampoco son válidas, como COMMUNICATED.

Concatenación de 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 "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, hacen referencia implícita 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 se separan del comando mediante un espacio. [11] 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 del TRIGger:MODecomando " ". Cuando se proporcionan múltiples 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 pueden especificarse en múltiples formatos de números de computadora : decimal, hexadecimal, octal, binario. Los últimos tres formatos están definidos por IEEE 488.2, [11] en el que se basa SCPI. [3] Los números decimales ( raíz 10) no tienen prefijo, los números hexadecimales (raíz 16) tienen prefijo o , los números octales (raíz 8) tienen o , y los números binarios (raíz 2) tienen o . Los dígitos hexadecimales pueden usar letras mayúsculas (ABCDEF), letras minúsculas (abcdef), o letras mayúsculas y minúsculas (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). [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

Comandos 488.2

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 pueden conocerse extraoficialmente como comandos de asterisco (o comandos de estrella), porque todos 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 el mundo real, algunos dispositivos de gama baja pueden solo admitir un subconjunto de estos comandos 488.2, o incluso pueden aceptar los comandos pero no realizar ninguna operación. Un usuario debe consultar el manual oficial del programador de cada dispositivo antes de asumir que todos estos comandos 488.2 son compatibles.

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

De acuerdo con 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 de programación del osciloscopio digital Tektronix TDS2010; 2020; 291 páginas.
  2. ^ Manual de programador de osciloscopio Rigol DS1074Z; 2019; 264 páginas.
  3. ^ Especificación abcdefghij SCPI-1999; Consorcio SCPI.
  4. ^ ni.com - Historia de GPIB - Zona de desarrolladores
  5. ^ abcde «El estándar SCPI (descripción general)». Fundación IVI . Archivado desde el 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 Comandos estándar para instrumentación programable (SCPI).
  7. ^ ab "SCPI". Fundación IVI . Consultado el 2 de junio de 2010 .
  8. ^ 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
  9. ^ Proyecto Mate en 1985
  10. ^ "GPIB 101, un tutorial sobre el bus GPIB". ICS Electronics, pág. 5, párrafo = Comandos SCPI.
  11. ^ abcd 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 sustituidas o retiradas". IEC. Archivado desde el original el 17 de abril de 2012. Consultado el 6 de febrero de 2010 .
  • Sitio web oficial de la organización SCPI
Presupuesto
  • SCPI-1999, Volumen 1-4, archivo PDF de 819 páginas, descarga gratuita (no incluye comandos de asterisco (*), porque están especificados en IEEE 488.2 e IEC 60488-2)
  • IEEE 488.2-1992, archivo PDF de 254 páginas, costo USD$52 en 2024 (reemplazado por IEEE/IEC 60488-2-2004)
  • IEEE/IEC 60488-2-2004, archivo PDF de 264 páginas, costo USD$373 en 2024

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.
  • Serie Rohde-Schwarz MXO 4, archivo PDF de 848 páginas.
  • Familias Tektronix MSO 4/5/6, archivo PDF de 2050 páginas.
Obtenido de "https://es.wikipedia.org/w/index.php?title=Comandos_estándar_para_instrumentos_programables&oldid=1258872309"