Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Manua Osciloscopio Digital Promax 571
Manua Osciloscopio Digital Promax 571
OSCILOSCOPIO DIGITAL
MANUAL DE PROGRAMACIÓN
- 0 MI1193 -
Manual de programación OD-571/81/82
ÍNDICE
1 INTRODUCCIÓN..................................................................................................... 1
1.1 Notas para la instalación del GPIB.................................................................... 1
1.2 Notas para la configuración del RS-232............................................................ 1
1.3 Asignación de contactos.................................................................................... 2
1.4 Conexión DB9-DB9 ........................................................................................... 2
1.5 Conexión a un ordenador mediante RS-232 ..................................................... 3
2 CONEXIÓN A UN ORDENADOR............................................................................ 5
2.1 Características del interfaz GPIB ...................................................................... 5
2.2 Configuración de direcciones GPIB................................................................... 6
2.3 Comprobación de la conexión GPIB ................................................................. 6
2.4 Comprobación de la conexión RS232 ............................................................... 8
OSCILOSCOPIO DIGITAL
OD-571/81/82
1 INTRODUCCIÓN
02/2004 Página 1
Manual de programación OD-571/81/82
1. Sin conexión
2. Recepción de datos (RxD) (entrada)
3. Transmisión de datos (TxD) (salida)
4. Sin conexión
5. Masa (GND)
6. Sin conexión
7. Sin conexión
8. Sin conexión
9. Sin conexión
Página 2 02/2004
Manual de programación OD-571/81/82
• Asegúrese de que los conectores en ambos extremos del cable y que la línea
conectada interna coinciden con los requisitos del instrumento.
1. Interruptor general
2. Base de conexión a la red
3. Puerto GPIB (opción)
4. Soporte fusible
5. Salida BNC “SELF CAL” (autocalibración)
6. Salida BNC “GO/NO GO” (pasa-no pasa)
02/2004 Página 3
Manual de programación OD-571/81/82
7. Conector USB
8. Puerto de impresora
9. Puerto RS-232
Página 4 02/2004
Manual de programación OD-571/81/82
2 CONEXIÓN A UN ORDENADOR
02/2004 Página 5
Manual de programación OD-571/81/82
• Pulse el botón UTILITY del panel frontal. El menú utility (utilidades) proporciona el
submenú Interface Menu pulsando la tecla programable F2, en el cual se incluye
el submenú GPIB. Pulse la tecla programable F1 para seleccionar el menú de
ajuste GPIB.
3. Una vez complete con éxito ibdev, usted tendrá un prompt ud. El nuevo
prompt, ud0, representa un driver de dispositivo-nivel que puede usar para
posteriores identificaciones NI-488.2. Para borrar el dispositivo, use ibclr
de la forma siguiente:
ud0: ibclr
[0100] (cmpl)
4. Para escribir datos sobre el dispositivo, use ibwrt.
ud0: ibwrt "*IDN?"
[0100] (cmpl)
count: 5
5. Para leer datos desde su dispositivo use ibrd. Se indicarán los datos que
se leen desde el instrumento. Por ejemplo, para leer 28 bytes, entre lo
siguiente:
ud0: ibrd 28
[0100] (cmpl)
count: 28
50 57 2C 20 47 44 53 2D PX, OD-
38 32 30 2C 20 50 39 32 571, P92
30 31 33 30 2C 20 56 2E 0130, V.
31 2E 30 39 1.09
02/2004 Página 7
Manual de programación OD-571/81/82
*idn?
PROMAX,OD-571,P920130,V.1.09
Página 8 02/2004
Manual de programación OD-571/81/82
3.1 SCPI
02/2004 Página 9
Manual de programación OD-571/81/82
• Comando de encabezamiento
• Parámetro (en su caso)
• Terminación de mensaje o separador
El nivel máximo del árbol es el nivel raíz. Un nodo raíz está situado en el nivel
raíz. Un nodo raíz y uno o más nodos de nivel bajo forman un camino de cabecera al
último nodo, denominado nodo hoja.
Página 10 02/2004
Manual de programación OD-571/81/82
3.4 Parámetros
NOTA: No incluya los símbolos <, >, o | cuando introduzca el valor real de un
parámetro.
Para el valor real del parámetro tipo <Boolean>, tiene que introducir 0 en lugar
de “OFF” o introducir 1 en lugar de “ON”.
:TRIGger:NREJ 0
02/2004 Página 11
Manual de programación OD-571/81/82
0|1
Esto es lo mismo que decir "0 (off) o 1 (on)" Cualquier valor individual es un
parámetro válido.
Las normas que rigen los comandos del OD-571/81/82 permiten una cierta
flexibilidad al introducir comandos. Por ejemplo, pueden abreviarse muchos comandos
o combinar comandos en un solo mensaje que se envía al OD-571/81/82. Esta
flexibilidad, denominada escucha amigable (friendly listening), ahorra tiempo de
programación y hace que el comando (Command set) más sencillo y fácil de recordar
y usar.
La mayoría de los comandos tienen una forma extensa y una forma abreviada.
La relación de cada comando de este aparato muestra las abreviaturas en
mayúsculas. Por ejemplo, la petición
Página 12 02/2004
Manual de programación OD-571/81/82
:TIMebase:SCALe ?
:TIM:SCAL ?
:MEASure:FREQuency?;:MEASure:VAMPlitude?
devuelve el mensaje
100kHz 1v
02/2004 Página 13
Manual de programación OD-571/81/82
Página 14 02/2004
Manual de programación OD-571/81/82
4 LISTADO DE COMANDOS
En este capítulo se ofrece una breve descripción de cada comando, así como
ejemplos de las respuestas.
Repone a cero todo el Registro de estado de eventos (event status data register). Ello
incluye la cola de salida (Output Queue), el registro de estado de eventos de operación
(Operation Event Status Register), el registro de estado de eventos consultables
(Questionable Event Status Register), y el registro de estado de eventos estándar
(Standard Event Status Register).
Sintaxis
*CLS
Ejemplos
• Comando: ESE
Establece o devuelve los bits del registro de Event Status Enable Register (ESER)
(Registro de Validación de Estado de Eventos). El ESER permite que el Registro de
Eventos Estándar (SESR) se resuma en el bit 5 (ESB) del Registro de Byte de Estado
(SBR).
Sintaxis
*ESE<NR1>
*ESE?
Argumentos
Devuelve
<NR1> es un número de 0 a 255 que indica el valor decimal de los bits binarios de
ESER.
Ejemplos
Si ESER contiene el valor binario 1000 0010, *ESE? devolverá el valor de 130.
02/2004 Página 15
Manual de programación OD-571/81/82
Sintaxis
*ESR?
Devuelve
<NR1> es un número de 0 a 255 que indica el valor decimal de los bits binarios de
ESER.
Ejemplos
Si ESER contiene el valor binario 1100 0110, *ESR? devolvería el valor de 198.
Sintaxis
*IDN?
Ejemplos
*IDN?
Sintaxis
*LRN?
Devuelve
Página 16 02/2004
Manual de programación OD-571/81/82
• Comando: OPC?
Sintaxis
*OPC
*OPC?
Devuelve
• Comando: RCL
Recupera los datos de ajuste de la memoria previamente guardados. Los ajustes RS-
232 (o GPIB) pueden guardarse en las memorias M1 a M15. Sin embargo, si el
usuario recupera una memoria guardada cuyos ajustes RS-232 o GPIB son diferentes
de los ajustes actuales, los ajustes RS-232 (o GPIB) mantendrán la situación actual.
Los ajustes RS-232 (o GPIB) no se verán influenciados por los ajustes RS-232 (o
GPIB) actuales.
Sintaxis
*RCL <NR1>
Argumentos
1~15
Ejemplos
Establece todos los ajustes de control el osciloscopio a sus valores por defecto pero
no elimina los datos guardados.
Sintaxis
*RST
02/2004 Página 17
Manual de programación OD-571/81/82
• Comando: SAV
Sintaxis
*SAV <NR1>
Argumentos
1~15
Ejemplos
• Comando: SRE
Sintaxis
*SRE <NR1>
*SRE?
Argumentos
Devuelve
<NR1>
Ejemplos
Petición de registro de byte de estado (SBR) con *STB? Devolverá un número decimal
que representa los bits establecidos (verdad) en el registro de estado.
Sintaxis
*STB?
Página 18 02/2004
Manual de programación OD-571/81/82
Devuelve
<NR1>
Ejemplos
WAI impide que el instrumento programado ejecute más comandos o peticiones hasta
que finalice las operaciones pendientes.
Sintaxis
*WAI
• Comando: :ACQuire:AVERage
Sintaxis
:ACQuire:AVERage {1|2|3|4|5|6|7|8}
:ACQuire:AVERage?
Argumentos
Devuelve
<NR1>
• Comando: :ACQuire:LENGth
Sintaxis
:ACQuire:LENGth {0|1|2|3|4|5|6|7}
:ACQuire:LENGth?
02/2004 Página 19
Manual de programación OD-571/81/82
Argumentos
Devuelve
<NR1>
• Comando: :ACQuire:MODe
Sintaxis
:ACQuire:MODe {0|1|2}
:ACQuire:MODe?
Argumentos
Devuelve
<NR1>
• Comando: :ACQuire<X>:POINt
Transfiere datos de forma de onda (siempre datos de 500 puntos en total) desde el
OD-571/81/82. Cada punto se compone de dos bytes (el valor entero de 16 bits). El
byte alto (MSD) se transferirá con prioridad.
Sintaxis
:ACQuire<X>:POINt
Argumentos
Página 20 02/2004
Manual de programación OD-571/81/82
Devuelve
Ejemplo
Transferir los datos de forma de onda del canal 1 a 200 µs per división:
:ACQuire1:POINt
• Comando: :AUToset
Ejecuta una configuración automática a fin de optimizar los parámetros de adquisición.
Sintaxis
:AUToset
• Comando: :CHANnel<X>:BWLimit
Activa/desactiva la función límite de ancho de banda.
02/2004 Página 21
Manual de programación OD-571/81/82
Sintaxis
:CHANnel<X>:BWLimit {0|1}
:CHANnel<X>:BWLimit?
Argumentos
Devuelve
<NR1>
• Comando: :CHANnel<X>:COUPling
Sintaxis
:CHANnel<X>:COUPling {0|1|2}
:CHANnel<X>:COUPling?
Argumentos
Devuelve
<NR1>
• Comando: :CHANnel<X>:DISPlay
Sintaxis
:CHANnel<X>:DISPlay {0|1}
:CHANnel<X>:DISPlay?
Argumentos
0→ Desactiva la visualización del canal <X> 1→ Activa la visualización del canal <X>
Devuelve
Página 22 02/2004
Manual de programación OD-571/81/82
<NR1>
• Comando: :CHANnel<X>:INVert
Sintaxis
:CHANnel<X>:INVert {0|1}
:CHANnel<X>:INVert?
Argumentos
Devuelve
<NR1>
• Comando: :CHANnel<X>:MATH
Sintaxis
:CHANnel<X>:MATH {0|1|2|3}
Argumentos
Devuelve
<NR1>
• Comando: :CHANnel<X>:OFFSet
Sintaxis
:CHANnel<X>:OFFSet <NR3>
:CHANnel<X>:OFFSet?
Argumentos
02/2004 Página 23
Manual de programación OD-571/81/82
Margen de offset:
2mV/div ~ 50mV/div ±0.5V
100mV/div ~ 500mV/div ±5V
1V/div ~ 5V/div ±50V
Devuelve
<NR3>
• Comando: :CHANnel<X>:PROBe
Sintaxis
:CHANnel<X>:PROBe {0|1|2}
:CHANnel<X>:PROBe?
Argumentos
Devuelve
<NR1>
Página 24 02/2004
Manual de programación OD-571/81/82
• Comando: :CHANnel<X>:SCALe
Sintaxis
:CHANnel<X>:SCALe <NR3>
:CHANnel<X>:SCALe?
Argumentos
Devuelve
<NR3>
Ejemplos
• Comando: :CURSor:X<X>Position
Sintaxis
:CURSor:X<X>Position <NR1>
:CURSor:X<X>Position?
Argumentos
Devuelve
<NR1>
02/2004 Página 25
Manual de programación OD-571/81/82
• Comando: :CURSor:Y<X>Position
Sintaxis
:CURSor:Y<X>Position <NR1>
:CURSor:Y<X>Position?
Argumentos
Devuelve
<NR1>
Sintaxis
:CURSor:XDELta?
:CURSor:YDELta?
Argumentos
Devuelve
<NR3>
• Comando: :XDISplay
Sintaxis
:CURSor:XDISplay {0|1}
Argumentos
Página 26 02/2004
Manual de programación OD-571/81/82
Devuelve
<NR1>
• Comando: :YDISplay
Sintaxis
:CURSor:YDISplay {0|1}
Argumentos
Devuelve
<NR1>
• Comando: :CURSor:SOURce
Selecciona qué cursores de canal están activados para el control del panel frontal.
Sintaxis
:CURSor:SOURce {1|2|3}
:CURSor:SOURce?
Argumentos
Devuelve
<NR1>
• Comando: :DISPlay:ACCumulate
Sintaxis
:DISPlay:ACCumulate {0|1}
:DISPlay:ACCumulate?
Argumentos
02/2004 Página 27
Manual de programación OD-571/81/82
Devuelve
<NR1>
• Comando: :DISPlay:CONTrast:DATa
Sintaxis
:DISPlay:CONTrast:DATa <NR1>
:DISPlay:CONTrast:DATa?
Argumentos
Devuelve
<NR1>
• Comando: :DISPlay:GRATicule
Sintaxis
:DISPlay:GRATicule {0|1|2}
:DISPlay:GRATicule?
Argumentos
Devuelve
<NR1>
• Comando: :DISPlay:WAVeform
Sintaxis
:DISPlay:WAVeform <0|1>
:DISPlay:WAVeform?
Página 28 02/2004
Manual de programación OD-571/81/82
Argumentos
Devuelve
<NR1>
Devuelve el valor de medición del tiempo que toma el flanco de descenso del primer
impulso de la forma de onda.
Sintaxis
:MEASure:FALL?
Devuelve
<NR3>
Sintaxis
:MEASure:FREQuency?
Devuelve
<NR3>
Sintaxis
:MEASure:NWIDth?
Devuelve
<NR3>
02/2004 Página 29
Manual de programación OD-571/81/82
Sintaxis
:MEASure:PDUTy?
Devuelve
Sintaxis
:MEASure:PERiod?
Devuelve
<NR3>
Sintaxis
:MEASure:PWIDth?
Devuelve
<NR3>
Página 30 02/2004
Manual de programación OD-571/81/82
Devuelve el valor de medición temporal tomado desde el flanco de subida del primer
impulso de la forma de onda.
Sintaxis
:MEASure:RISe?
Devuelve
<NR3>
• Comando: :MEASure:SOURce
Selecciona el canal medido (canal 1 o 2). El valor de ajuste por defecto es el canal 1.
Sintaxis
:MEASure:SOURce {1|2}
Argumentos
Devuelve
<NR1>
Sintaxis
:MEASure:VAMPlitude?
Devuelve
<NR3>
02/2004 Página 31
Manual de programación OD-571/81/82
Sintaxis
:MEASure:VAVerage?
Devuelve
<NR3>
Sintaxis
:MEASure:VHI?
Devuelve
<NR3>
Sintaxis
:MEASure:VLO?
Devuelve
<NR3>
Página 32 02/2004
Manual de programación OD-571/81/82
Sintaxis
:MEASure:VMAX?
Devuelve
<NR3>
Sintaxis
:MEASure:VMIN?
Devuelve
<NR3>
Sintaxis
:MEASure:VPP?
Devuelve
<NR3>
02/2004 Página 33
Manual de programación OD-571/81/82
Sintaxis
:MEASure:VRMS?
Devuelve
<NR3>
• Comando: :PRINt
Sintaxis
• Comando: :REFResh
Refresca los datos de forma de onda en la pantalla LCD y vuelve a representar los
datos de forma de onda.
Sintaxis
:REFResh
• Comando: :RUN
Controla el estado de marcha (RUN) del sistema de disparo. En estado RUN el ciclo
de adquisición seguirá cada disparo cualificado.
Sintaxis
:RUN
• Comando: :STOP
Controla el estado de paro (STOP) del sistema de disparo. El ciclo de adquisición sólo
se dispara cuando se recibe: RUN.
Sintaxis
:STOP
Página 34 02/2004
Manual de programación OD-571/81/82
• Comando: :SYSTem:UNLock
Las teclas y mandos del panel frontal del OD-571/81/82 se desactivan tras recibir
algún comando del control remoto. Use este comando para reactivar las teclas y
mandos del panel frontal.
Sintaxis
:SYSTem:UNLock
• Comando: TIMebase:DELay
Establece la posición horizontal (tiempo de retardo) del parámetro.
Sintaxis
:TIMebase:DELay <NR3>
:TIMebase:DELay?
Argumentos
Devuelve
<NR3>
• Comando: :TIMebase:SCALe
Establece la escala de la base de tiempos horizontal por división (SEC/DIV).
Sintaxis
:TIMebase:SCALe <NR3>
:TIMebase:SCALe?
Argumentos
Devuelve
<NR3>
Ejemplos
• Comando: :TIMebase:SWEep
Sintaxis
:TIMebase:SWEep <0|1|2|3|4>
:TIMebase:SWEep?
Argumentos
Devuelve
<NR1>
• Comando: :TIMebase:WINDow:DELay
Establece y solicita área ampliada (área de color gris) para la visualización de ventana
ampliada.
Sintaxis
:TIMebase:WINDow:DELay <NR3>
:TIMebase:WINDow:DELay?
Argumentos
Devuelve
<NR3>
Página 36 02/2004
Manual de programación OD-571/81/82
• Comando: :TIMebase:WINDow:SCALe
Establece y solicita la escala (longitud) de la ventana de la base de tiempos ampliada.
Sintaxis
:TIMebase:WINDow:SCALe <NR3>
:TIMebase:WINDow:SCALe?
Argumentos
Devuelve
<NR3>
• Comando: :TRIGger:COUPle
Selecciona y solicita el tipo de acoplamiento de disparo.
Sintaxis
:TRIGger:COUPle <0|1>
:TRIGger:COUPle?
Argumentos
0→AC 1→DC
Devuelve
<NR1>
• Comando: :TRIGger:DELay:TIMe
Establece y solicita el tiempo de retardo de disparo definido por el usuario.
Sintaxis
:TRIGger:DELay:TIMe <NR3>
:TRIGger:DELay:TIMe?
Argumentos
Devuelve
<NR3>
02/2004 Página 37
Manual de programación OD-571/81/82
• Comando: :TRIGger:DELay:EVENt
Establece y solicita los eventos de disparo retardado definidos por el usuario.
Sintaxis
:TRIGger:DELay:EVENt <NR1>
:TRIGger:DELay:EVENt?
Argumentos
<NR1> son los eventos de disparo retardado definidos por el usuario. Margen de 2 a
65000.
Devuelve
<NR1>
• Comando: :TRIGger:DELay:LEVel
Establece y define el nivel de la señal de disparo inicial definido por el usuario.
Sintaxis
:TRIGger:DELay:LEVel <NR3>
:TRIGger:DELay:LEVel?
Argumentos
<NR3> es el nivel de la señal de disparo inicial definido por el usuario. El margen es ±12.
Devuelve
<NR3>
• Comando: :TRIGger:DELay:MODe
Selecciona y solicita el nivel de la señal de disparo diferente (por ej. disparo externo).
Sintaxis
:TRIGger:DELay:MODe <0|1|2>
:TRIGger:DELay:MODe?
Argumentos
0→TTL
1→ECL
2→USR
Devuelve
<NR1>
Página 38 02/2004
Manual de programación OD-571/81/82
• Comando: :TRIGger:DELay:TYPe
Sintaxis
:TRIGger:ADVance:TYPe <0|1>
:TRIGger:ADVance:TYPe?
Argumentos
0→Ajuste de tiempo
1→Ajuste de eventos
Devuelve
<NR1>
Sintaxis
:TRIGger:FREQuency?
Devuelve
<NR3>
• Comando: :TRIGger:LEVel
Sintaxis
:TRIGger:LEVel <NR3>
:TRIGger:LEVel?
Argumentos
Devuelve
<NR3>
02/2004 Página 39
Manual de programación OD-571/81/82
• Comando: :TRIGger:MODe
Selecciona y consulta el modo de disparo.
Sintaxis
:TRIGger:MODe <0|1|2|3>
:TRIGger:MODe?
Argumentos
0→Auto Level
1→Auto
2→Normal
3→Single
Devuelve
<NR1>
• Comando: :TRIGger:NREJ
Conmuta y consulta el modo de rechazo de ruido.
Sintaxis
:TRIGger:NREJ <0|1>
:TRIGger:NREJ?
Argumentos
0→OFF 1→ON
Devuelve
<NR1>
• Comando: :TRIGger:PULSe:MODe
Conmuta y consulta diferentes tipos de impulso de disparo.
Sintaxis
:TRIGger:PULSe:MODe <0|1|2|3>
:TRIGger:PULSe:MODe?
Argumentos
0→<
1→>
2→=
3→≠
Devuelve
<NR1>
Página 40 02/2004
Manual de programación OD-571/81/82
• Comando: :TRIGger:PULSe:TIMe
Sintaxis
:TRIGger:PULSe:TIMe <NR3>
:TRIGger:PULSe:TIMe?
Argumentos
Devuelve
<NR3>
• Comando: :TRIGger:REJect
Sintaxis
:TRIGger:REJect <0|1|2>
:TRIGger:REJect?
Argumentos
0→OFF
1→Modo de rechazo de alta frecuencia
2→Modo de rechazo de baja frecuencia
Devuelve
<NR1>
• Comando: :TRIGger:SLOP
Sintaxis
:TRIGger:SLOP <0|1>
:TRIGger:SLOP?
Argumentos
Devuelve
<NR1>
02/2004 Página 41
Manual de programación OD-571/81/82
• Comando: :TRIGger:SOURce
Selecciona y consulta la fuente de disparo.
Sintaxis
:TRIGger:SOURce <0|1|2|3>
:TRIGger:SOURce?
Argumentos
0→Canal 1
1→Canal 2
2→Disparo externo
3→Tensión de red AC
Devuelve
<NR1>
• Comando: :TRIGger:TYPe
Selecciona y consulta el tipo de disparo.
Sintaxis
:TRIGger:TYPe <0|1|2|3>
:TRIGger:TYPe?
Argumentos
0→Flanco
1→Vídeo
2→Impulso
3→Disparo
Devuelve
<NR1>
• Comando: :TRIGger:VIDeo:FIELd
Selecciona y consulta el cuadro en el cual se disparará el modo de disparo vídeo.
Sintaxis
:TRIGger:VIDeo:FIELd <0|1|2>
:TRIGger:VIDeo:FIELd?
Argumentos
<NR1>
Página 42 02/2004
Manual de programación OD-571/81/82
• Comando: :TRIGger:VIDeo:LINe
Selecciona y consulta la línea especificada para la señal de vídeo.
Sintaxis
:TRIGger:VIDeo:LINe <NR1>
:TRIGger:VIDeo:LINe?
Argumentos
Para el sistema NTSC, el margen de línea es de 1 a 263 para cuadro impar, 1 a 262
para cuadro par.
Para el sistema PAL, el margen de línea es de 1~313 para cuadro impar, 1 a 312 para
cuadro par.
Devuelve
<NR1>
• Comando: :TRIGger:VIDeo:POLarity
Selecciona y consulta la polaridad de entrada de vídeo.
Sintaxis
:TRIGger:VIDeo:POLarity <0|1>
:TRIGger:VIDeo:POLarity?
Argumentos
Devuelve
<NR1>
• Comando: :TRIGger:VIDeo:TYPe
Selecciona y consulta el sistema de TV.
Sintaxis
:TRIGger:VIDeo:TYPe <0|1|2>
:TRIGger:VIDeo:TYPe?
Argumentos
0→PAL
1→NTSC
2→SECAM
02/2004 Página 43
Manual de programación OD-571/81/82
Devuelve
<NR1>
• Comando: :WMEMory<X>:DISPlay
Selecciona que se visualice la forma de onda que guarda tras haber sido guardada.
Sintaxis
:WMEMory<X>:DISPlay <NR1>
:WMEMory<X>:DISPlay?
Argumentos
Devuelve
<NR1>
• Comando: :WMEMory<X>:ERASe
Sintaxis
:WMEMory<X>:ERASe
Argumentos
• Comando: :WMEMory<X>:LOCate
Sintaxis
:WMEMory<X>:LOCate <NR1>
Argumentos
Página 44 02/2004
Manual de programación OD-571/81/82
• Comando: :WMEMory<X>:OFFSet
Sintaxis
:WMEMory<X>:OFFSet <NR1>
Argumentos
• Comando: :WMEMory<X>:SAVe
Sintaxis
:WMEMory<X>:SAVe <1|2|3>
Argumentos
02/2004 Página 45
Manual de programación OD-571/81/82
Página 46 02/2004
Manual de programación OD-571/81/82
5 INFORMES DE ESTADO
Los nodos de nivel bajo: QUEStionable y OPERation tiene cada uno tres
registros de 16 bits: CONDition, EVENt, y ENABle. La figura 10 muestra la relación
secuencial entre estos tres tipos de registros y los comandos relativos a cada registro.
02/2004 Página 47
Manual de programación OD-571/81/82
Estado consultable
No se usa 0
No se usa 1
2
No se usa
3
No se usa
4
No se usa
5 Registros de estados
No se usa 6
No se usa 7
No se usa 8
No se usa 9
No se usa 10
No se usa 11
No se usa 12
No se usa 13
No se usa 14
No se usa 15
Estado operación
No se usa 0
No se usa 1
No se usa 2
No se usa 3
4
No se usa
5
No se usa Registros de estados
6
No se usa
7
No se usa 8
No se usa 9
No se usa 10
No se usa 11
No se usa 12
No se usa 13
No se usa 14
No se usa 15
Página 48 02/2004
Manual de programación OD-571/81/82
∗
NU: no se usa
02/2004 Página 49
Manual de programación OD-571/81/82
Página 50 02/2004
Manual de programación OD-571/81/82
Use la petición *ESR? para leer el SESR. La lectura de SESR elimina los bits
de los registros para que el registro pueda acumular información sobre nuevos
eventos.
Use el comando *ESE para determinar los bits en ESER. Use el comando *ESE? para
leerlo.
Use el comando *SRE para establecer el SRER. Use el comando *SRE? para leerlo.
5.7 Colas
Página 52 02/2004
Manual de programación OD-571/81/82
6 MENSAJES DE ERROR
02/2004 Página 53
Manual de programación OD-571/81/82
Página 54 02/2004
Manual de programación OD-571/81/82
/* Filename – px571ex1.c
*
* This is an example program written in C. We use a NI's GPIB interface
* card and one X86 PC to control OD-571/81/82. This program could
* get the waveform data from OD-571/81/82, and save them to a file.
* You can use Microsoft Visual C++ or Borland C++ Builder to compile this
* file. And you must link this file with an object file
* (BORLANDC_GPIB-32.OBJ) for Borland C++ or GPIB-32.OBJ for Visual C++
* that provided by National Instruments Corporation. DECL-32.H is a
* Win32 C/C++ include file, that contains NI-488.2 function prototypes
* and various pre-defined constants. It's also provided by NI.
*
* Copyright PROMAX
* All Rights Reserved.
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/*
* Include the WINDOWS.H and DECL-32.H files. The standard Windows
* header file, WINDOWS.H, contains definitions used by DECL-32.H and
* DECL-32.H contains prototypes for the GPIB routines and constants.
*/
#include <windows.h>
#include "decl-32.h"
#define ARRAYSIZE 1100 /* Size of read buffer */
#define BDINDEX 0 /* Board Index */
#define PRIMARY_ADDR_OF_DMM 7 /* Default primary address of OD-571/81/82*/
#define NO_SECONDARY_ADDR 0 /* Secondary address of device */
#define TIMEOUT T3s /* Timeout value = 5 seconds */
#define EOTMODE 1 /* Enable the END message */
#define EOSMODE 0 /* Disable the EOS mode */
void Acquire(void);
void Delay(int);
void ShowIbsta(char);
Delay(1000);
ibwrt (Dev, "*IDN?\n", 6L); /*Get the unique identification */
printf("*IDN?\n\r"); /*code of the OD-571/81/82. */
if((ibsta&ERR)||(ibsta&TIMO)){
ShowIbsta(1);
return 0;
}
while(1){
ibrd (Dev, ReadBuffer, 100); /*Read data from input bufer.
*/
if((ibsta&ERR)||(ibsta&TIMO)){
ShowIbsta(0);
return 0;
}
for(i=0;i<ibcntl;i++){
ch=ReadBuffer[i];
WaveBuf[count++]=ch;
}
if(ch=='\n'){
WaveBuf[count]=0x00;
printf("%s\n\r",WaveBuf);
break;
}
}
Delay(1000);
ibwrt (Dev, ":RUN\n", 5L); /*Let the OD-571/81/82 run. */
printf(":RUN\n\r");
if((ibsta&ERR)||(ibsta&TIMO)){
ShowIbsta(1);
return 0;
}
Delay(1000);
ibwrt (Dev, ":CHANnel1:DISPlay 1\n", 20L);/*Set channel 1 display on
*/
printf(":CHANnel1:DISPlay 1\n\r");
if((ibsta&ERR)||(ibsta&TIMO)){
ShowIbsta(1);
return 0;
}
Delay(1000);
ibwrt (Dev, ":TIMebase:SCALe 2.0e-4\n", 23L);/*Set timebase:
200us/div */
printf(":TIMebase:SCALe 1.0e-4\n\r");
if((ibsta&ERR)||(ibsta&TIMO)){
ShowIbsta(1);
return 0;
}
Página 56 02/2004
Manual de programación OD-571/81/82
Delay(1000);
ibwrt (Dev, ":CHANnel1:OFFSet 0\n", 19L); /*Set offset voltage: 0V
*/
printf(":CHANnel1:OFFSet 0\n\r");
if((ibsta&ERR)||(ibsta&TIMO)){
ShowIbsta(1);
return 0;
}
Delay(1000);
ibwrt (Dev, ":CHANnel1:SCALe 0.5\n", 20L); /*Set vertical scale:
500mV/div */
printf(":CHANnel1:SCALe 0.5\n\r");
if((ibsta&ERR)||(ibsta&TIMO)){
ShowIbsta(1);
return 0;
}
Delay(1000);
ibwrt (Dev, ":ACQuire:MODe 0\n", 16L); /*Set acquire mode:
sample mode */
printf(":ACQuire:MODe 0\n\r");
if((ibsta&ERR)||(ibsta&TIMO)){
ShowIbsta(1);
return 0;
}
Delay(1000);
ibwrt (Dev, ":TRIGger:LEVel 0.3\n", 19L); /*Set trigger level: 0.3V*/
printf(":TRIGger:LEVel 0.3\n\r");
if((ibsta&ERR)||(ibsta&TIMO)){
ShowIbsta(1);
return 0;
}
Delay(1000);
ibwrt (Dev, ":TRIGger:MODe 1\n", 16L); /*Set trigger mode: AUTO
*/
printf(":TRIGger:MODe 1\n\r");
if((ibsta&ERR)||(ibsta&TIMO)){
ShowIbsta(1);
return 0;
}
void Acquire(void)
{
short i, j;
FILE *writeP;
char writeFilename[15] = "wavedata.txt";
short wave;
int tmp, count=0;
ibwrt (Dev, ":ACQUIRE1:POINT\n", 16L);
printf(":ACQUIRE1:POINT\n\r");
Delay(1000);
if((ibsta&ERR)||(ibsta&TIMO)){
ibclr (Dev);
ibwrt (Dev, "*CLS\n", 5L);
ShowIbsta(1);
Delay(100000);
ibwrt (Dev, ":ACQUIRE1:POINT\n", 16L); /*Try again! */
printf(":ACQUIRE1:POINT\n\r");
if((ibsta&ERR)||(ibsta&TIMO)){
ShowIbsta(1);
Delay(100000);
exit (1);
}
}
while(1){
ibrd(Dev, ReadBuffer, 100);
if((ibsta&ERR)||(ibsta&TIMO)){
ShowIbsta(0);
Delay(100000);
exit (1);
}
for(i=0;i<ibcntl;i++)
WaveBuf[count++]=ReadBuffer[i];
printf("\rReceived: %7d ", count);
if(count>=1014){
printf("\rReceived: %7d bytes.\n\r", count);
break;
}
}
/*Open file "wavedata.txt" and write waveform data to it.*/
writeP=fopen(writeFilename, "w");
if(writeP == NULL){
printf("error: cannot write '%s'\n", writeFilename);
exit(1);
}
j=14;
for(i=0;i<500;i++){
wave=WaveBuf[j++]<<8;
wave+=WaveBuf[j++];
fprintf(writeP, "%d\n", wave);
}
tmp = fclose(writeP);
if(tmp == EOF){
printf("error: cannot write '%s'\n\r", writeFilename);
exit(1);
Página 58 02/2004
Manual de programación OD-571/81/82
}
}
void Delay(int i)
{
int j,k;
for(j=0;j<i;j++){
for(k=0;k<30000;k++)
;
}
}
void ShowIbsta(char c)
{
if(ibsta & ERR){
if(c)
printf("\n\rUnable write to device(ibsta= %x),
(iberr=%x)\n\r",ibsta,iberr);
else
printf("\n\rUnable read from device(ibsta= %x),
(iberr=%x)\n\r",ibsta,iberr);
}
else{
if(c)
printf("\n\rWrite, ibsta= %x",ibsta);
else
printf("\n\rRead, ibsta= %x",ibsta);
}
}
02/2004 Página 59
PROMAX ELECTRONICA, S.A.
C/Francesc Moragas, 71-75
08907 L'HOSPITALET DE LLOBREGAT
SPAIN
Tel.: 93 260 20 00; Tel. Intl.: (+34) 93 260 20 00
Fax: 93 338 11 26; Fax. Intl: (+34) 93 338 11 26
http://www.promax.es