Leyendo una forma de onda de voltaje analógico con un alcance programable

3

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

Parece que hay al menos dos modos de medición para configurar el alcance 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), así que parece que la configuración que debería no estar utilizando. Por otro lado, la documentación de MEASurement no describe una forma de tomar número específico de muestras (que es lo que debo hacer para obtener la forma de onda analógica). ), por lo que este también no parece una configuración razonable.

Parece que no importa la configuración que elija, ¡no me dará el resultado que estoy buscando! Debo confundirme con su documentación [aquí] .

¿Puede alguien ayudarme a aclarar qué configuración debería usar, MEASurement o WAVFrm ?

    
pregunta Snoop

2 respuestas

1

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 el paquete de software de adquisición de datos que esté utilizando (LabVIEW, MATLAB, VEE, etc.).

Comience por restablecer los controles y la configuración del osciloscopio a sus "valores predeterminados de configuración de fábrica" (vea también el apéndice B "Configuración de fábrica" en el manual de TBS1000 Programador [consejo: busque "tbs1000 programmer manual" en tek.com]). Esto se hace emitiendo el comando SCPI "* RST":

*RST

Mostrar el canal 1, Y desactivar el canal 2:

SELECT:CH1 ON;CH2 OFF

Configure los controles horizontales, verticales, de activación, etc. según lo desee, por ejemplo, horizontal time / div = 1ms / div; canal 1 voltios / div = 1V / div:

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

Configure el osciloscopio para adquirir una forma de onda única cuando el osciloscopio detecta que se cumplen las condiciones de activación:

ACQUIRE:STATE STOP
ACQUIRE:STOPAFTER SEQUENCE

Adquiera una forma de onda única ("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, "[t] he * La respuesta de OPC? No está disponible para leer hasta que todas las operaciones pendientes terminen", es decir, ¿* OPC? la invocación se bloquea hasta que el osciloscopio finaliza la tarea de adquisición de datos.

*OPC?

En el grupo de comandos WAVEFORM, use la CURVA? consulte para transferir los datos de la forma de onda del canal 1 desde el osciloscopio a su computadora:

DATA:SOURCE CH1
CURVE?

Tenga en cuenta que la "CURVA?" La consulta devuelve una secuencia 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). Su programa luego analiza la información deseada de los datos almacenados en el búfer. Exactamente cómo se hace esto depende completamente del lenguaje de programación y las bibliotecas de E / S del instrumento que está utilizando, por ejemplo, LabVIEW, MATLAB, VEE, etc., y se deja como un ejercicio para el lector.

P.S. Si necesita ayuda para escribir el código para un lenguaje de programación específico, le recomiendo que busque / utilice foros que estén dedicados al lenguaje de programación en particular con el que está trabajando, por ejemplo, los foros de programación de E / S de instrumentos de LabVIEW; Los 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 / gimo, solo digo ...)

    
respondido por el Jim Fischer
1

Pensé que añadiría mi respuesta (que me funcionó) aquí en caso de que alguien necesite ayuda en el camino.

Obtención de la forma de onda

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

*ESR?

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

ACQUIRE:STATE ON

Luego espero 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 difícil, eso me tomó un tiempo. Se requiere la siguiente fórmula ( extraída del manual de referencia del programador ) para convertir el digitalizador valores en valores de voltaje:

Entonces, en esta ecuación yn simboliza nuestros valores de 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 alcance en modo ASCII, ya que entonces podemos insertar los valores directamente en la fórmula.

Para YZEro:

WFMPre:YZEro?

Para YMUlty:

WFMPre:YMUlty?

Para YOff:

WFMPre:YOFf?

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

    
respondido por el Snoop

Lea otras preguntas en las etiquetas