Lectura de una forma de onda de tensión analógica con un osciloscopio programable

Estoy tratando de automatizar el uso de un osciloscopio digital Tektronix TBS 1052B para obtener la forma de onda de una señal de voltaje analógico. O, en otras palabras, obtenga una cantidad de muestras de medición de voltaje a lo largo del tiempo.

Parece que hay al menos dos modos de medición para configurar el osciloscopio para realizar la medición, MEASurement y WAVFrm . Aquí es donde estoy teniendo algunos problemas. Según la forma en que funciona WAVFrm , parece que solo se usa para interpretar datos binarios (aquí es donde podría estar equivocado), por lo que parece ser la configuración que no debería usar . Por otro lado, la documentación de MEASurement no describe una forma de tomar una cantidad específica de muestras (que es lo que necesito hacer para obtener la forma de onda analógica), por lo que tampoco parece una configuración razonable.

Parece que no importa qué configuración elija, ¡no me dará el resultado que estoy buscando! Debo estar confundido por su documentación [aquí] .

¿Alguien puede ayudarme a aclarar qué configuración debo usar, MEASurement o WAVFrm ?

Por lo general, la forma de onda en los osciloscopios se refiere a muestras de tiempo/valor, mientras que la medición se refiere a información "postprocesada", como voltaje pico a pico, sobreimpulso, período, etc. No estoy familiarizado con la interfaz de programación para este osciloscopio. pero no me sorprendería si siguiera esta terminología.
Me parece que le gustaría usar los comandos de forma de onda (a partir de la página 2-37) para capturar la forma de onda. Los comandos de medición (2-23) parecen ser más para obtener números que se evalúan a partir de la forma de onda (como dice @helloworld922, información "postprocesada").
Realmente estoy tratando de hacer algo muy simple. La documentación sobre cómo funcionan las funcionalidades de forma de onda y medición deja mucho que desear. En lugar de describir el proceso general, la documentación es más como un diccionario para cada comando posible.
Entonces, ¿los comandos de medición me darán todos los puntos de datos? ¿Que he especificado con DATA:STAR a DATA:STOP? Porque todos los ejemplos muestran solo la devolución de un único punto de datos.
Al final del día, realmente me gustaría tener una matriz de valores de voltaje.

Respuestas (2)

Nunca he usado este osciloscopio en particular, pero lo intentaré. Tenga en cuenta que deberá averiguar cómo incorporar la secuencia de comandos que he recomendado a continuación en cualquier paquete de software de adquisición de datos que esté utilizando (LabVIEW, MATLAB, VEE, etc.).

Comience restableciendo los controles y la configuración del osciloscopio a sus "configuraciones predeterminadas de fábrica" ​​(consulte también el apéndice B "Configuración de fábrica" ​​en el manual del programador TBS1000 [sugerencia: busque "manual del programador tbs1000" en tek.com]). Esto se hace emitiendo el comando SCPI "*RST":

*RST

Mostrar el canal 1 Y apagar el canal 2:

SELECT:CH1 ON;CH2 OFF

Configure los controles de activación horizontal, vertical, etc. como desee, por ejemplo, tiempo horizontal/div = 1 ms/div; canal 1 voltios/div = 1V/div:

HORIZONTAL:MAIN:SCALE 1E-3
CH1:SCALE 1

Configure el osciloscopio para adquirir una sola forma de onda cuando el osciloscopio detecta que se cumplen las condiciones de disparo:

ACQUIRE:STATE STOP
ACQUIRE:STOPAFTER SEQUENCE

Adquirir una sola forma de onda ("ejecutar una vez"):

ACQUIRE:STATE RUN

Espere a que se complete la adquisición de datos. Esto se hace emitiendo la consulta SCPI "*OPC?" (operación completa?). Como se indica en el manual del programador del osciloscopio, "[l]a respuesta *OPC? no está disponible para leer hasta que finalicen todas las operaciones pendientes", lo que significa que la respuesta *OPC? bloques de invocación hasta que el osciloscopio termina la tarea de adquisición de datos.

*OPC?

En el grupo de comandos FORMA DE ONDA, utilice el botón CURVA? consulta para transferir los datos de forma de onda del Canal 1 desde el osciloscopio a su computadora:

DATA:SOURCE CH1
CURVE?

Tenga en cuenta que la "CURVA?" query devuelve un flujo de bytes que normalmente se almacenan en un búfer que su programa crea para este propósito (por ejemplo, una matriz de caracteres o una matriz de bytes). Luego, su programa analiza la información deseada de los datos almacenados en el búfer. Exactamente cómo se hace esto depende totalmente del lenguaje de programación y de las bibliotecas de E/S de instrumentos que esté utilizando, por ejemplo, LabVIEW, MATLAB, VEE, etc., y se deja como ejercicio para el lector.

PD: si necesita ayuda para escribir el código para un lenguaje de programación específico, le recomiendo que busque/utilice foros dedicados al lenguaje de programación particular con el que está trabajando, por ejemplo, foros de programación de E/S de instrumentos de LabVIEW; Foros de programación de E/S de instrumentos de MATLAB, etc. Esas personas serían mucho más adecuadas para responder preguntas específicas del lenguaje de programación que las personas en un foro de electrónica. (<- No me quejo/lloriqueo, solo digo...)

Hablé con un representante de Tek y obtuve una respuesta muy similar a esta. Lo intentaré y te responderé.

Solo pensé en agregar mi respuesta (que funcionó para mí) aquí en caso de que alguien necesite ayuda en el futuro.

Obtención de la forma de onda

Aunque no es obligatorio, lo primero que hago es borrar el registro de estado del evento de la siguiente manera:

*ESR?

A continuación, le digo al osciloscopio que comience a adquirir la forma de onda:

ACQUIRE:STATE ON

Luego espero a que se complete la adquisición, observando el estado de la operación.

*OPC?

Luego, para dar sentido a los datos que regresan de la forma de onda, cambio al formato ASCII de la siguiente manera:

DATA:ENC ASCI

Ahora, estoy listo para obtener la forma de onda:

CURVE?

Recopilación de muestras de voltaje

Ahora viene la parte complicada, que me tomó un tiempo. Se requiere la siguiente fórmula ( extraída del manual de referencia del programador ) para convertir los valores del digitalizador en valores de voltaje:

Conversión de digitalizador a valor

Entonces, en esta ecuación yn simboliza los valores de nuestro digitalizador (puntos en la forma de onda), y no entraré en demasiados detalles sobre cuáles son las otras variables porque están en el manual. Las variables se pueden obtener de la siguiente manera y tenga en cuenta que es más fácil mantener el osciloscopio en modo ASCII porque entonces podemos insertar los valores directamente en la fórmula.

Para YZEro:

WFMPre:YZEro?

Para YMUlty:

WFMPre:YMUlty?

Para YOFF:

WFMPre:YOFf?

Ahora, inserte todos estos valores en la fórmula y luego calcule el voltaje (Yn) para cada uno de los valores del digitalizador (yn).