Está en la página 1de 64

OD-571/81/82

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

3 COMANDOS DE CONTROL REMOTO .................................................................. 9


3.1 SCPI .................................................................................................................. 9
3.2 Sintaxis de comandos ..................................................................................... 10
3.3 Cabecera de comando .................................................................................... 10
3.4 Parámetros ...................................................................................................... 11
3.5 Terminador de mensaje y separador de mensaje ........................................... 12
3.6 Introducción de comandos .............................................................................. 12
3.7 Caracteres de comando .................................................................................. 12
3.8 Comandos de abreviación............................................................................... 12
3.9 Combinación de comandos ............................................................................. 13

4 LISTADO DE COMANDOS ................................................................................... 15

5 INFORMES DE ESTADO ...................................................................................... 47


5.1 Estructura del sistema ..................................................................................... 47
5.2 Registros de Estado ........................................................................................ 47
5.3 Registros de Estado Consultable .................................................................... 49
5.4 Registros de Estado de Operación.................................................................. 49
5.5 Registros de Estado ........................................................................................ 50
5.6 Registros de Validación................................................................................... 51
5.7 Colas ............................................................................................................... 52

6 MENSAJES DE ERROR ....................................................................................... 53

7 PLANTILLA DE PROGRAMA PARA GPIB ........................................................... 55


Manual de programación OD-571/81/82

OSCILOSCOPIO DIGITAL
OD-571/81/82

NOTA: Debido al proceso de mejora del osciloscopio digital OD-571/81/82, la


información contenida en este manual está sujeta a cambios sin previo
aviso. Contacte con PROMAX, para obtener las actualizaciones.

1 INTRODUCCIÓN

El osciloscopio digital OD-571/81/82 se puede controlar mediante el bus GPIB


(General Purpose Interface Bus) y un ordenador, o mediante un ordenador a través de la
conexión serie RS-232. Los comandos enviados mediante ambos interfaces pueden leer
o establecer cualquiera de las instrucciones del OD-571/81/82. Este capítulo explica
cómo efectuar las tareas siguientes.

1.1 Notas para la instalación del GPIB

Al configurar el OD-571/81/82 con un sistema GPIB, compruebe las normas


siguientes:

• A un bus GPIB pueden conectarse un máximo de 15 dispositivos.


• No use cables de más de 20 m de longitud para conectar los dispositivos al bus.
• Conecte un dispositivo por cada 2 m de cable empleado.
• Cada dispositivo del bus requiere una única dirección de dispositivo. Dos
dispositivos no pueden compartir la misma dirección.
• Ponga en marcha al menos dos tercios de los dispositivos conectados al sistema
GPIB mientras esté usando el sistema.
• No use una estructura de bucle o paralela en la topología de un sistema GPIB.

1.2 Notas para la configuración del RS-232


Este osciloscopio incluye un conector RS-232 macho DB de 9 contactos para la
comunicación serie con un ordenador o terminal. El interfaz RS-232 de este
osciloscopio está configurado como un “Equipo terminal de datos RS-232”, por lo
que los datos se envían por el contacto 3 y se reciben en el contacto 2. Para el control
remoto, el interfaz RS-232 debe conectarse a un ordenador o terminal.

02/2004 Página 1
Manual de programación OD-571/81/82

1.3 Asignación de contactos

La asignación de contactos del interfaz RS-232 del OD-571/81/82 es la


siguiente.

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

Figura 1.- Asignación de contactos del conector RS232 del OD-571/81/82

1.4 Conexión DB9-DB9


La configuración de la conexión se usa con conectores DB9 para ordenadores
configurados como equipo terminal de datos.

Figura 2.- Conexión DB9-DB9

Cuando configure el osciloscopio con un interfaz RS-232, compruebe los


puntos siguientes:

• No conecte la línea de salida de un osciloscopio DTE a la línea de salida de otro.


• Muchos dispositivos requieren una señal alta constante en uno o más contactos de
entrada.
• Asegúrese de que la masa del equipo está conectada a la masa del dispositivo
externo.
• Asegúrese de que la masa del armazón del equipo está conectada a la masa del
armazón del dispositivo externo.
• No use cables de una longitud superior a 15m para conectar dispositivos a un PC.
• Asegúrese de que usa las mismas configuraciones en el dispositivo y en un
terminal PC.

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.5 Conexión a un ordenador mediante RS-232

Un ordenador personal con un puerto COM es el equipo esencial para operar el


osciloscopio digital a través del interfaz RS-232.

Las conexiones entre osciloscopio y ordenador son las siguientes:

I. Conecte un extremo de un cable RS-232 al ordenador.


II. Conecte el otro extremo del cable al puerto RS-232 del osciloscopio.
III. Ponga en marcha el osciloscopio.
IV. Apague el ordenador.

La figura 3 muestra la situación del puerto GPIB y del puerto RS-232 en el


panel posterior del osciloscopio digital OD-571/81/82.

Figura 3.- Panel posterior OD-571/81/82

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

Para operar el OD-571/81/82 a través del interfaz GPIB es esencial disponer


de un ordenador personal con una tarjeta GPIB.

Las conexiones entre el OD-571/81/82 y el ordenador son las siguientes:

I. Conecte un extremo de un cable GPIB al ordenador.


II. Conecte el otro extremo del cable GPIB al puerto GPIB del osciloscopio
digital OD-571/81/82.
III. Ponga en marcha el osciloscopio digital OD-571/81/82.
IV. Ponga en marcha el ordenador.

2.1 Características del interfaz GPIB

El interfaz GPIB del OD-571/81/82 corresponde a las normas IEEE488.1-1987,


IEEE488.2-1992 y SCPI-1994. Funciones del interfaz GPIB:

SH1 (Source Handshake): El OD-571/81/82 puede transmitir mensajes multilínea


(multilane) mediante GPIB.
AH1 (Acceptor Handshake): El OD-571/81/82 puede recibir mensajes multilínea
mediante GPIB.
T6 (Talker): La función de interfaz emisor incluye emisor básico
(basic talker), interrogación en serie (serial poll) y no
direccionado para MLA, sin la función sólo emisor.
L4 (Listener): El OD-571/81/82 se convierte en receptor a la escucha
(listener) cuando el controlador envía su dirección de
escucha con la inserción en línea ATN (attention). El
OD-571/81/82 no dispone de la función sólo escucha.
SR1 (Service Request): El OD-571/81/82 emite la línea SRQ (petición de
servicio) para notificar al controlador cuando requiere
servicio.
RL1 (Remote/Local): El OD-571/81/82 responde con los mensajes GTL (Go
to Local) y LLO (Local Lock Out).
PP0 (Parallel Poll): El OD-571/81/82 no dispone de la función de interfaz
interrogación en paralelo.
DC1 (Device Clear): La función de puesta cero para devolver el dispositivo
a la situación de la puesta en marcha.
DT0 (Device Trigger): El OD-571/81/82 no dispone de función de interfaz de
disparo del dispositivo.
C0 (Controller): El OD-571/81/82 no puede controlar otros dispositivos.

02/2004 Página 5
Manual de programación OD-571/81/82

2.2 Configuración de direcciones GPIB

Para cambiar de dirección GPIB, siga los pasos siguientes:

• 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.

Para el submenú GPIB

• Type GPIB: Selecciona el puerto GPIB.


• Addr 1~30: Selecciona la dirección adecuada para GPIB.
• Previous Menu: Vuelve al menú anterior.

2.3 Comprobación de la conexión GPIB

Si desea comprobar si la conexión GPIB funciona o no, use , por ejemplo, la


“Interactive Control Utility” (utilidad de control interactivo) de National Instruments Co.
Con ella puede comunicar con dispositivos GPIB mediante comunicaciones que usted
puede teclear en el teclado.

El control interactivo puede ayudarle a aprender sobre el instrumento y a


localizar problemas mostrando la siguiente información en la pantalla tras introducir un
comando:

• Resultados de la palabra de estado (ibsta) en notación hexadecimal


• Constante mnemotécnica de cada bit establecido en ibsta
• Valor mnemotécnico de la variable error (iberr) si hay un error (el bit ERR
se establece en ibsta)
• Valor de contador para cada lectura, escritura o función de comando
• Datos recibidos desde su instrumento

Puede obtener ayuda en línea en Interactive Control (control interactivo)


introduciendo Help (ayuda) en el prompt, así como obtenerla en una función
específica introduciendo help <function> en el prompt, siendo <function> el nombre de
la función de la cual desea ayuda.

Para iniciar el control interactivo dentro de “Measurement & Automation


Explorer” (Explorador de medición y automatismo) de National Instruments Co.,
complete los pasos siguientes:

1. Seleccione Tools (herramientas) → I-488.2 Utilities (utilidades) →


Interactive Control (control interactivo).
2. Abra el driver para placa o el driver de dispositivo a utilizar en las
siguientes llamadas del NI-488.2. Utilice el ibdev para abrir el driver de
Página 6 02/2004
Manual de programación OD-571/81/82

dispositivo, el ibfind para abrir el driver de placa, o el comando 488.2


configurado para pasar a un prompt 488.2.

El siguiente ejemplo usa ibdev para abrir un dispositivo, lo asigna a la placa


de acceso gpib0, escoge una dirección primaria de 7 sin ninguna dirección secundaria,
establece un tiempo de espera (timeout) de 10 segundos, habilita el mensaje END
(fin), y desactiva el modo EOS.
:ibdev
entre índice placa: 0
entre dirección primaria: 7
entre dirección secundaria: 0
entre tiempo de espera: 13
entre ‘EOI en último byte’ flag: 1
entre modo/byte de fin de cadena: 0
ud0:

NOTA: Si teclea un comando y no indica parámetros, el control interactivo le solicitará


los argumentos necesarios. Si usted ya sabe los argumentos requeridos,
puede teclearlos en el prompt de comandos, de la forma siguiente:
:ibdev 0 7 0 13 1 0
ud0:

NOTA: Si no sabe la dirección primaria y secundaria de su instrumento GPIB, haga


clic con el botón derecho en su interfaz GPIB en Measurement & Automation
Explorer (explorador de medición y automatización) y seleccione Scan for
Instruments (escaneo de instrumentos). Una vez el explorador haya
escaneado su interfaz, indicará la dirección de su instrumento en el panel
ventana situado a la derecha.

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

6. Cuando termine la comunicación con el dispositivo, asegúrese de que la


deja fuera de línea usando el comando ibonl, de la forma siguiente:
ud0: ibonl 0
[0100] (cmpl)
:
El comando ibonl cierra adecuadamente el driver del dispositivo y el
prompt ud0 deja de estar disponible.

7. Para salir de control interactivo, teclee q.

Para más detalles, consulte el manual de National Instruments Co.

Si no recibe una respuesta adecuada del OD-571/81/82, compruebe que está


en marcha, que la dirección GPIB es correcta, y que todas las conexiones por cable se
encuentran activas.

2.4 Comprobación de la conexión RS232

Si desea comprobar si la conexión RS-232 está funcionando o no, puede enviar


un comando desde el ordenador. Por ejemplo, empleando un programa terminal que
envíe el comando de interrogación (Query Command).

*idn?

deberá responder fabricante, número de modelo, número de serie y versión de


firmware en el formato siguiente:

PROMAX,OD-571,P920130,V.1.09

Si no recibe una respuesta adecuada del osciloscopio, compruebe que el


instrumento se encuentra en marcha, que las configuraciones RS-232 son las mismas
en ambos lados, y que todas las conexiones por cable se encuentran activas.

Página 8 02/2004
Manual de programación OD-571/81/82

3 COMANDOS DE CONTROL REMOTO

El OD-571/81/82 puede gobernarse desde un ordenador a través del puerto


GPIB o del puerto RS-232. Los comandos remotos del OD-571/81/82 son compatibles
con los estándares IEEE-488.2 y SCPI parcialmente.

3.1 SCPI

SCPI (comandos estándar para instrumentos programables) es un estándar


creado por un consorcio internacional de los principales fabricantes de equipos de
medición y ensayo. La sintaxis IEEE-488.2 ha sido adoptada por la SCPI para obtener
unos comandos comunes para idénticas funciones de diferentes instrumentos
programables.

Figura 4.- La relación entre IEEE-488.1, IEEE-488.2, y SCPI.

Como se muestra en la figura 4, la norma IEEE-488.1 se localiza en la capa A.


La capa A pertenece el protocolo de la función de interfaz del bus GPIB. El mensaje
de establecimiento de enlace de fuente (source handshake) (SH), el mensaje de
aceptación (acceptor handshake) (AH) y emisor se incluyen en esta capa (10
funciones de interfaz en total).

En la capa B, la sintaxis y la estructura de datos puede ser la esencia de la


norma entera IEEE-488.2. La sintaxis define la función de la comunicación de
mensajes, que contiene <PROGRAM MESSAGE> (o simplemente “comandos”) y
<RESPONSE MESSAGE> (mensaje de respuesta). Los dos tipos de mensajes
representan la formación de sintaxis del comando de dispositivo y el valor de retorno.
La estructura de datos es la constitución de la información de estado, cuyo norma
IEEE-488.2 ha sido definida.

02/2004 Página 9
Manual de programación OD-571/81/82

Los comandos e interrogaciones (queries) comunes se incluyen con la capa C.


Los comandos e interrogaciones (queries) pueden dividirse en dos partes: obligatoria y
opcional. Los comandos modifican los ajustes de control o le dicen al instrumento que
ejecute una acción específica. Las interrogaciones hacen que el instrumento envíe
datos o información de estado de vuelta al ordenador. El símbolo de interrogación al
final de un comando lo identifica como una interrogación.

La capa D está interrelacionada con la información del dispositivo. Diferentes


dispositivos tienen diferentes funciones. El conjunto de comandos SCPI pertenecen a
esta capa.

3.2 Sintaxis de comandos

Si desea transferir cualquiera de las instrucciones a un instrumento, y cumplir la


SCPI, hay tres elementos básicos que deben incluirse.

• Comando de encabezamiento
• Parámetro (en su caso)
• Terminación de mensaje o separador

3.3 Cabecera de comando

El comando de encabezamiento tiene una estructura jerárquica que puede


representarse mediante un árbol de comandos (Figura 5).

Figura 5.- Jerarquía árbol

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.

La cabecera de comando está configurada por camino de cabecera y nodo


hoja. La figura 6 muestra la cabecera de comando para el nodo hoja.

Página 10 02/2004
Manual de programación OD-571/81/82

Figura 6.- Cabecera de comando

3.4 Parámetros

Si el comando tiene parámetros, hay que incluir los parámetros. En este


manual, cuando expresamos la sintaxis del comando, los símbolos < > se usan para
indicar el tipo de parámetro. Por ejemplo, la sintaxis del comando de la figura 7 incluye
el parámetro de tipo booleano

NOTA: No incluya los símbolos <, >, o | cuando introduzca el valor real de un
parámetro.

Figura 7.- Cabecera de comando con parámetro

La tabla 1 define los parámetros Booleano y otros tipos de parámetros para el


OD-571/81/82.

Tipo parámetros Descripción Ejemplo


1
Boolean Números o valores booleanos
0
NR1 Números enteros 0, 1, 18
NR2 Números decimales 1.5, 3.141, 8.4
NR3 Números de coma flotante 4.5E-1, 8.25E+1
NRf NR1, NR2, o NR3 1, 1.5, 4.5E-1

Tabla 1.- Tipos de parámetros para las descripciones sintácticas

Para el valor real del parámetro tipo <Boolean>, tiene que introducir 0 en lugar
de “OFF” o introducir 1 en lugar de “ON”.

El ejemplo siguiente incluye tanto la cabecera como un valor para el tipo de


parámetro:

:TRIGger:NREJ 0

02/2004 Página 11
Manual de programación OD-571/81/82

Los valores de parámetro que aparecen en este manual a menudo separados


por una línea vertical. Esta línea vertical significa lo mismo que la palabra "or," (o). Por
ejemplo, los valores para los parámetros <booleanos> son

0|1

Esto es lo mismo que decir "0 (off) o 1 (on)" Cualquier valor individual es un
parámetro válido.

3.5 Terminador de mensaje y separador de mensaje

De acuerdo con la norma IEEE 488.2, el OD-571/81/82 acepta cualquiera de


los siguientes terminadores de mensajes:

• LF^END Código de salto de línea (hexadecimal 0A) con mensaje END


(final)
• LF Código de salto de línea
• <dab>^END Último byte de datos con mensaje END (final)

Estos terminadores son compatibles con la mayoría de programas de


aplicación.

Un punto y coma separa un comando de otro cuando los comandos aparecen


en la misma línea.

3.6 Introducción de comandos

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.

3.7 Caracteres de comando

El OD-571/81/82 admite la introducción de comandos en mayúsculas y en


minúsculas de forma indistinta.

Cualquier comando puede ir precedido de espacios en blanco. Sin embargo,


hay que usar un espacio en blanco entre el parámetro y la cabecera de comando.

3.8 Comandos de abreviación

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 ?

puede simplificarse como

:TIM:SCAL ?

3.9 Combinación de comandos

El usuario puede utilizar un punto y coma (;) para combinar comandos y


peticiones. El OD-571/81/82 ejecuta comandos coherentes en el orden que los recibe.
Cuando el usuario combina peticiones coherentes, el OD-571/81/82 combinará las
respuestas en un único mensaje de respuesta. Por ejemplo, si la frecuencia y la
amplitud de una señal es igual a 100 kHz y 1 V, el comando

: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.

• Comando: CLS (sin forma de petición)

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

*CLS repone a cero todos los registros de eventos.

• 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

<NR1> es un número 0 a 255. Los bits binarios de ESER se establecen de acuerdo


con este valor.

Devuelve

<NR1> es un número de 0 a 255 que indica el valor decimal de los bits binarios de
ESER.

Ejemplos

*ESE 65 establece que ESER sea binario 0100 0001.

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

• Comando: ESR? (petición sólo)


Devuelve y borra los contenidos del Registro de Estado de Eventos Estándar (SESR).

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.

• Comando: IDN? (petición sólo)

Devuelve el código de identificación único del OD-571/81/82.

Sintaxis

*IDN?

Ejemplos

*IDN?

Devuelve PROMAX,OD-571/81/82,0,<Versión de firmware>

• Comando: LRN? (petición sólo)


Devuelve la cadena de ajustes del OD-571/81/82.

Sintaxis

*LRN?

Devuelve

Página 16 02/2004
Manual de programación OD-571/81/82

• Comando: OPC?

La forma de comando (*OPC) establece el bit de operación completa (bit 0) en el


Registro de Estado de Eventos Estándar (SESR) cuando finalizan todas las
operaciones pendientes.

La forma de petición (*OPC?) le dice al osciloscopio que coloque un ASCII 1 a la cola


de salida cuando el osciloscopio acabe todas las operaciones pendientes.

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

*RCL 1 recupera los datos de ajustes situados en la primera memoria.

• Comando: RST (no en forma de petición)

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

Guarda los datos de ajuste en memoria.

Sintaxis

*SAV <NR1>

Argumentos

1~15

Ejemplos

*SAV 2 guarda los datos de ajuste en la segunda memoria.

• Comando: SRE

Establece los contenidos del Registro de Validación de Petición de Servicio (SRER).


La forma de petición devuelve los contenidos del SRER. El bit 6 del SRER siempre es
cero. Los bits en el SRER corresponden a los bits del SBR.

Sintaxis

*SRE <NR1>
*SRE?

Argumentos

<NR1> es un número entero de 0 a 255.

Devuelve

<NR1>

Ejemplos

*SRE 7 establece los bits del SRER en 0000 0111.

Si *SRE? devuelve 0000 0011, el ajuste de *SRE es 3.

• Comando: STB? (petición sólo)

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

*STB? devuelve 51 si SBR contiene el valor binario 0101 0001.

• Comando: WAI (sin forma de petición)

WAI impide que el instrumento programado ejecute más comandos o peticiones hasta
que finalice las operaciones pendientes.

Sintaxis

*WAI

• Comando: :ACQuire:AVERage

Selecciona el número promedio de la adquisición de forma de onda. El margen de


promedio es de 2 a 256 en potencias de 2.

NOTA: Antes de implementar este instrumento, aplique “:ACQuire:MODe 2” con


anticipación

Sintaxis

:ACQuire:AVERage {1|2|3|4|5|6|7|8}
:ACQuire:AVERage?

Argumentos

1 → El número promedio es 2 2 → El número promedio es 4


3 → El número promedio es 8 4 → El número promedio es 16
5 → El número promedio es 32 6 → El número promedio es 64
7 → El número promedio es 128 8 → El número promedio es 256

Devuelve

<NR1>

• Comando: :ACQuire:LENGth

Seleccione el número de longitud de registro. El OD-571/81/82 proporciona longitudes


de registro de 500, 1250, 2500, 5000, 12500, 25000, 50000, y 125000.

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

0→ La longitud de registro es 500 1→ La longitud de registro es 1250


2→ La longitud de registro es 2500 3→ La longitud de registro es 5000
4→ La longitud de registro es 12500 5→ La longitud de registro es 25000
6→ La longitud de registro es 50000 7→ La longitud de registro es 125000

Devuelve

<NR1>

• Comando: :ACQuire:MODe

Selecciona el modo de adquisición de forma de onda. Hay cuatro modos diferentes de


adquisición: muestreo, detección de pico, promedio y acumulado.

Sintaxis

:ACQuire:MODe {0|1|2}
:ACQuire:MODe?

Argumentos

0→ Selecciona el modo muestreo 1→ Selecciona el modo detección de pico


2→ Selecciona el modo promedio

Devuelve

<NR1>

NOTA: Seleccione un modo específico de adquisición antes de efectuar una


adquisición.

• 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

<X> → Especifica el número de canal (1|2)

Página 20 02/2004
Manual de programación OD-571/81/82

Devuelve

La cadena de datos es la siguiente.

Dígito tamaño Tamaño Frecuencia Tamaño datos forma Datos forma de


# datos datos de muestreo
Indicador de canal
de onda onda

#: Inicio de una transmisión de cadena de datos.


Dígito tamaño de datos: Indica la cantidad de dígitos de la cadena de datos
siguiente (1 dígito).
Tamaño datos: La cantidad de datos de la cadena de datos actuales (4
dígitos).
Frecuencia de muestreo: La frecuencia de muestreo correspondiente de los datos
de forma de onda recibidos (4 bytes). La frecuencia de
muestreo se indica en formato de punto flotante que es
compatible con las normas IEEE 754.
Indicador de canal: Muestra de canal que envía los datos de forma de onda.
Tamaño de datos forma
de onda: Indicador de cantidades totales de datos de forma de
onda (4 bytes).
Datos de forma de onda: Los datos de forma de onda efectivos que cubren 500
puntos (1000 bytes) en total

Ejemplo

Transferir los datos de forma de onda del canal 1 a 200 µs per división:

:ACQuire1:POINt

El OD-571/81/82 deberá devolver los mensajes siguientes:

• 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

<X> → Especifica el número de canal (1|2)

0→ Desactiva el límite de ancho de banda 1→ Activa el límite de ancho de banda

Devuelve

<NR1>

• Comando: :CHANnel<X>:COUPling

Selecciona los diferentes estados de acoplamiento del OD-571/81/82.

Sintaxis

:CHANnel<X>:COUPling {0|1|2}
:CHANnel<X>:COUPling?

Argumentos

<X> → Especifica el número de canal (1|2)

0→ Coloca el osciloscopio en acoplamiento AC 1→ Coloca el osciloscopio en acoplamiento DC

2→ Coloca el osciloscopio a tierra

Devuelve

<NR1>

• Comando: :CHANnel<X>:DISPlay

Activa o desactiva la visualización de canales.

Sintaxis

:CHANnel<X>:DISPlay {0|1}
:CHANnel<X>:DISPlay?

Argumentos

<X> → Especifica el número de canal (1|2)

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

Activa o desactiva la función inversión de forma de onda.

Sintaxis

:CHANnel<X>:INVert {0|1}
:CHANnel<X>:INVert?

Argumentos

<X> → Especifica el número de canal (1|2)

0→ Desactiva la función de inversión 1→ Activa la función de inversión

Devuelve

<NR1>

• Comando: :CHANnel<X>:MATH

Establece la expresión matemática.

Sintaxis

:CHANnel<X>:MATH {0|1|2|3}

Argumentos

<X>→ Especifica el número de canal (1|2)

0→ Desactiva la función matemática 1→ Selecciona el operador suma


2→ Selecciona el operador resta 3→ Selecciona la operación FFT

Devuelve

<NR1>

• Comando: :CHANnel<X>:OFFSet

Establece o pide la tensión de offset.

Sintaxis

:CHANnel<X>:OFFSet <NR3>
:CHANnel<X>:OFFSet?

Argumentos
02/2004 Página 23
Manual de programación OD-571/81/82

<X>→ Especifica el número de canal (1|2)

<NR3> es el valor de offset deseado en voltios. El margen depende de la escala y el


factor de atenuación de la sonda. Los márgenes de offset son los siguientes:

Margen de offset:
2mV/div ~ 50mV/div ±0.5V
100mV/div ~ 500mV/div ±5V
1V/div ~ 5V/div ±50V

La siguiente tabla muestra la relación entre el valor <NR3> y la tensión de offset


correspondiente.

0.002Æ2mV 0.01Æ10mV 0.1Æ100mV 1Æ1V


0.005Æ2mV 0.02Æ20mV 0.2Æ200mV 2Æ2V
0.05Æ50mV 0.5Æ500mV 5Æ5V

Devuelve

<NR3>

• Comando: :CHANnel<X>:PROBe

Selecciona los diferentes factores de atenuación de sonda.

Sintaxis

:CHANnel<X>:PROBe {0|1|2}
:CHANnel<X>:PROBe?

Argumentos

<X>→Especifica el número de canal (1|2)

0→1X 1→10X 2→100X

Devuelve

<NR1>

Página 24 02/2004
Manual de programación OD-571/81/82

• Comando: :CHANnel<X>:SCALe

Establece o pide la escala vertical del canal especificado.

Sintaxis

:CHANnel<X>:SCALe <NR3>
:CHANnel<X>:SCALe?

Argumentos

<X>→Especifica el número de canal (1|2)

<NR3> es el valor de ganancia deseada en voltios por división. El margen es de


2mV/div a 5V/div (con una sonda 1X).

La tabla siguiente muestra la relación entre el valor <NR3> y la escala


correspondiente.

0.002Æ2mV 0.01Æ10mV 0.1Æ100mV 1Æ1V


0.005Æ2mV 0.02Æ20mV 0.2Æ200mV 2Æ2V
0.05Æ50mV 0.5Æ500mV 5Æ5V

Devuelve

<NR3>

Ejemplos

:CHANnel1:SCALe 1, configura el canal 1 a 1V por división.

• Comando: :CURSor:X<X>Position

Selecciona la posición de cursores del eje X.

Sintaxis

:CURSor:X<X>Position <NR1>
:CURSor:X<X>Position?

Argumentos

<X>→Especifica el cursor (1|2)

<NR1> es la posición deseada. Para la operación del eje X, el margen es de 0 a 250;


para la operación del eje Y, el margen es de 0 a 200.

Devuelve

<NR1>
02/2004 Página 25
Manual de programación OD-571/81/82

• Comando: :CURSor:Y<X>Position

Selecciona la posición de cursores del eje Y.

Sintaxis

:CURSor:Y<X>Position <NR1>
:CURSor:Y<X>Position?

Argumentos

<X>→Especificar el cursor (1|2)

<NR1> es la posición deseada. Para la operación del eje X, el margen es de 0 a 250;


para la operación del eje Y, el margen es de 0 a 200.

Devuelve

<NR1>

• Comando: :CURSor:<X>DELta? (petición sólo)

Devuelve la diferencia en tiempo o tensión entre los dos cursores vertical o


horizontales.

Sintaxis

:CURSor:XDELta?
:CURSor:YDELta?

Argumentos

<X>→Especifica la diferencia en tiempo o tensión (X|Y)

Devuelve

<NR3>

• Comando: :XDISplay

Activa o desactiva la visualización de los cursores del eje X.

Sintaxis

:CURSor:XDISplay {0|1}

Argumentos

0→Desactiva la visualización de cursores 1→Activa la visualización de cursores

Página 26 02/2004
Manual de programación OD-571/81/82

Devuelve

<NR1>

• Comando: :YDISplay

Activa o desactiva la visualización de cursores del eje Y.

Sintaxis

:CURSor:YDISplay {0|1}

Argumentos

0→Desactiva la visualización de cursores 1→Activa la visualización de cursores

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

1→Selecciona el canal 1 para la medición por cursores


2→Selecciona el canal 2 para la medición por cursores
3→Selecciona la función matemática para la medición por cursores

Devuelve

<NR1>

• Comando: :DISPlay:ACCumulate

Selecciona el modo de visualización acumulado.

Sintaxis

:DISPlay:ACCumulate {0|1}
:DISPlay:ACCumulate?

Argumentos

0→Desactiva el modo de visualización acumulado 1→ Activa el modo de visualización acumulado

02/2004 Página 27
Manual de programación OD-571/81/82

Devuelve

<NR1>

• Comando: :DISPlay:CONTrast:DATa

Selecciona el nivel de contraste de la pantalla LCD para la lectura de datos y la


visualización de formas de onda.

Sintaxis

:DISPlay:CONTrast:DATa <NR1>
:DISPlay:CONTrast:DATa?

Argumentos

<NR1> es el nivel de brillo deseado. El margen es de 0 a 20 (0% a 100%).

Devuelve

<NR1>

• Comando: :DISPlay:GRATicule

Selecciona el tipo de visualización de retícula de la pantalla LCD.

Sintaxis

:DISPlay:GRATicule {0|1|2}
:DISPlay:GRATicule?

Argumentos

0→Selecciona retícula completa


1→Selecciona el tipo cruz
2→Sólo se muestra el marco

Devuelve

<NR1>

• Comando: :DISPlay:WAVeform

Selecciona la visualización de puntos (o vectores) de los datos.

Sintaxis

:DISPlay:WAVeform <0|1>
:DISPlay:WAVeform?

Página 28 02/2004
Manual de programación OD-571/81/82

Argumentos

0→Activa la visualización de vectores 1→Activa la visualización de puntos

Devuelve

<NR1>

• Comando: :MEASure:FALL? (petición sólo)

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>

NOTA: Seleccione un canal específico antes de efectuar cualquier medición. Véase


explicación de “:MEASure:SOURce”

• Comando: :MEASure:FREQuency? (petición sólo)

Devuelve el valor de medición de frecuencia.

Sintaxis

:MEASure:FREQuency?

Devuelve

<NR3>

NOTA: Seleccione un canal específico antes de efectuar cualquier medición. Véase


explicación de “:MEASure:SOURce”

• Comando: :MEASure:NWIDth? (petición sólo)

Devuelve el valor de la medición temporal del primer impulso negativo de la forma de


onda.

Sintaxis

:MEASure:NWIDth?

Devuelve

<NR3>
02/2004 Página 29
Manual de programación OD-571/81/82

NOTA: Seleccione un canal específico antes de efectuar cualquier medición. Véase


explicación de “:MEASure:SOURce”

• Comando: :MEASure:PDUTy? (petición sólo)

Devuelve la relación de amplitud del impulso positivo con el período de señal.

Sintaxis

:MEASure:PDUTy?

Devuelve

<NR2> es la relación de porcentaje. El margen es de 1 a 99.

NOTA: Seleccione un canal específico antes de efectuar cualquier medición. Véase


explicación de “:MEASure:SOURce”

• Comando: :MEASure:PERiod? (petición sólo)

Devuelve el valor temporal de la medición de período.

Sintaxis

:MEASure:PERiod?

Devuelve

<NR3>

NOTA: Seleccione un canal específico antes de efectuar cualquier medición. Véase


explicación de “:MEASure:SOURce”

• Comando: :MEASure:PWIDth? (petición sólo)

Devuelve el valor de medición temporal del primer impulso positivo de la forma de


onda.

Sintaxis

:MEASure:PWIDth?

Devuelve

<NR3>

NOTA: Seleccione un canal específico antes de efectuar cualquier medición. Véase


explicación de “:MEASure:SOURce”

Página 30 02/2004
Manual de programación OD-571/81/82

• Comando: :MEASure:RISe? (petición sólo)

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>

NOTA: Seleccione un canal específico antes de efectuar cualquier medición. Véase


explicación de “:MEASure:SOURce”

• Comando: :MEASure:SOURce

Selecciona el canal medido (canal 1 o 2). El valor de ajuste por defecto es el canal 1.

NOTA: Seleccione un canal específico antes de efectuar cualquier medición.

Sintaxis

:MEASure:SOURce {1|2}

Argumentos

1→Activa las funciones de medición del canal 1


2→Activa las funciones de medición del canal 2

Devuelve

<NR1>

• Comando: :MEASure:VAMPlitude? (petición sólo)

Devuelve las tensiones de valor alto menos las de valor bajo.

Sintaxis

:MEASure:VAMPlitude?

Devuelve

<NR3>

NOTA: Seleccione un canal específico antes de efectuar cualquier medición. Véase


explicación de “:MEASure:SOURce”

02/2004 Página 31
Manual de programación OD-571/81/82

• Comando: :MEASure:VAVerage? (petición sólo)

Devuelve las tensiones promedio.

Sintaxis

:MEASure:VAVerage?

Devuelve

<NR3>

NOTA: Seleccione un canal específico antes de efectuar cualquier medición. Véase


explicación de “:MEASure:SOURce”

• Comando: :MEASure:VHI? (petición sólo)

Devuelve el valor global de alta tensión.

Sintaxis

:MEASure:VHI?

Devuelve

<NR3>

NOTA: Seleccione un canal específico antes de efectuar cualquier medición. Véase


explicación de “:MEASure:SOURce”

• Comando: :MEASure:VLO? (petición sólo)

Devuelve el valor global de baja tensión.

Sintaxis

:MEASure:VLO?

Devuelve

<NR3>

NOTA: Seleccione un canal específico antes de efectuar cualquier medición. Véase


explicación de “:MEASure:SOURce”

Página 32 02/2004
Manual de programación OD-571/81/82

• Comando: :MEASure:VMAX? (petición sólo)

Devuelve el valor de amplitud máxima.

Sintaxis

:MEASure:VMAX?

Devuelve

<NR3>

NOTA: Seleccione un canal específico antes de efectuar cualquier medición. Véase


explicación de “:MEASure:SOURce”

• Comando: :MEASure:VMIN? (petición sólo)

Devuelve el valor de amplitud mínima.

Sintaxis

:MEASure:VMIN?

Devuelve

<NR3>

NOTA: Seleccione un canal específico antes de efectuar cualquier medición. Véase


explicación de “:MEASure:SOURce”

• Comando: :MEASure:VPP? (petición sólo)

Devuelve el valor Vmax menos Vmin.

Sintaxis

:MEASure:VPP?

Devuelve

<NR3>

NOTA: Seleccione un canal específico antes de efectuar cualquier medición. Véase


explicación de “:MEASure:SOURce”

02/2004 Página 33
Manual de programación OD-571/81/82

• Comando: :MEASure:VRMS? (petición sólo)

Devuelve el valor medio cuadrático de tensión.

Sintaxis

:MEASure:VRMS?

Devuelve

<NR3>

NOTA: Seleccione un canal específico antes de efectuar cualquier medición. Véase


explicación de “:MEASure:SOURce”

• Comando: :PRINt

Inicia una impresión en una impresora específica.

Sintaxis

:PRINt

• 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

<NR3> es el tiempo de retardo deseado.

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

Sec/div NR3 Sec/div NR3 Sec/div NR3


-9 -6
1ns 1e 5µs 5e 25ms 25e-3
2.5ns 2.5e-9 10µs 10e-6 50ms 50e-3
5ns 5e-9 25µs 25e-6 100ms 100e-3
10ns 10e-9 50µs 50e-6 250ms 250e-3
25ns 25e-9 100µs 100e-6 500ms 500e-3
50ns 50e-9 250µs 250e-6 1s 1
-9 -6
100ns 100e 500µs 500e 2.5s 2.5
-9 -3
250ns 250e 1ms 1e 5s 5
-9 -3
500ns 500e 2.5ms 2.5e 10s 10
-6 -3
1µs 1e 5ms 5e
-6
2.5µs 2.5e 10ms 10e-3
02/2004 Página 35
Manual de programación OD-571/81/82

<NR3> es la escala de la base de tiempo por división.

Devuelve

<NR3>

Ejemplos

:TIMebase:SCALe 5e-3 establece la escala de base de tiempos en 5ms por


división.

• Comando: :TIMebase:SWEep

Selecciona el modo de barrido de la base de tiempos horizontal. Este comando es


equivalente a ajustar el menú horizontal.

Sintaxis

:TIMebase:SWEep <0|1|2|3|4>
:TIMebase:SWEep?

Argumentos

0→Base de tiempos horizontal


1→Ventana
2→Zoom ventana
3→Modo roll
4→Modo XY

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

<NR3> es la posición deseada (tiempo de retardo).

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

<NR3> es la escala deseada (longitud) de la ventana de la base de tiempos ampliada.

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

<NR3> es el tiempo de retardo definido por el usuario. El margen es de 100ns a 1.3ms.

Devuelve

<NR3>

NOTA: Seleccione un canal específico antes de efectuar cualquier medición. Véase


explicación de “:TRIGger:DELay:TYPe”

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>

NOTA: Seleccione un canal específico antes de efectuar cualquier medición. Véase


explicación de “:TRIGger:DELay:TYPe”

• 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

Selecciona y solicita los diferentes ajustes de retardo de disparo.

Sintaxis

:TRIGger:ADVance:TYPe <0|1>
:TRIGger:ADVance:TYPe?

Argumentos

0→Ajuste de tiempo
1→Ajuste de eventos

Devuelve

<NR1>

• Comando: :TRIGger:FREQuency? (petición sólo)

Devuelve el valor de lectura de la frecuencia de disparo.

Sintaxis

:TRIGger:FREQuency?

Devuelve

<NR3>

• Comando: :TRIGger:LEVel

Selecciona y consulta el nivel de disparo.

Sintaxis

:TRIGger:LEVel <NR3>
:TRIGger:LEVel?

Argumentos

<NR3> es el nivel de tensión de disparo deseado.

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

Selecciona el valor temporal de amplitud de impulso.

Sintaxis

:TRIGger:PULSe:TIMe <NR3>
:TRIGger:PULSe:TIMe?

Argumentos

<NR3> es el valor temporal de amplitud de impulso, la unidad es en segundos.

Devuelve

<NR3>

• Comando: :TRIGger:REJect

Selecciona y consulta el modo de rechazo de frecuencia.

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

Conmuta y consulta el flanco de subida o de descenso de disparo.

Sintaxis
:TRIGger:SLOP <0|1>
:TRIGger:SLOP?

Argumentos

0→Flanco de subida 1→Flanco de descenso

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

0→Línea 1→Cuadro impar (cuadro 1)


2→Cuadro par (cuadro 2)
Devuelve

<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

<NR1> es la línea deseada.

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

0→Impulsos de sincronismo en sentido positivo


1→ Impulsos de sincronismo en sentido negativo

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

<X>→Especifica la posición de memoria de RefA o RefB (1|2)


0→OFF
1→ON

Devuelve

<NR1>

• Comando: :WMEMory<X>:ERASe

Selecciona que se borre la forma de onda una vez guardada.

Sintaxis

:WMEMory<X>:ERASe

Argumentos

<X>→Especifica la posición de memoria de RefA o RefB (1|2)

• Comando: :WMEMory<X>:LOCate

Establece la posición de la forma de onda guardada.

Sintaxis

:WMEMory<X>:LOCate <NR1>

Argumentos

<X>→ Especifica la posición de memoria de RefA o RefB (1|2)


<NR1> es la posición deseada. Margen de —200 a +200.

Página 44 02/2004
Manual de programación OD-571/81/82

• Comando: :WMEMory<X>:OFFSet

Una vez especificado el comando “:WMEMory<X>:LOCate”, el usuario puede ajustar


la posición arriba o abajo mediante este comando.

Sintaxis

:WMEMory<X>:OFFSet <NR1>

Argumentos

<X>→Especifica la posición de memoria de RefA o RefB (1|2)


<NR1> es la posición offset deseada. Margen de —100 a +100.

• Comando: :WMEMory<X>:SAVe

Selecciona que se guarde la memoria.

Sintaxis

:WMEMory<X>:SAVe <1|2|3>

Argumentos

<X>→Especifica la posición de memoria de RefA o RefB (1|2)


1→Canal 1
2→Canal 2
3→Función matemática

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

Un conjunto de registros de estado permiten que el usuario determine


rápidamente el estado de proceso interno del osciloscopio digital. El registro de
estado, así como el sistema de información de estados y eventos, se adhiere a las
recomendaciones SCPI.

5.1 Estructura del sistema

El esquema del sistema de información de estado y eventos aparece en la


figura 8. Cada componente del esquema representa un conjunto de registros y colas
que pueden leerse, emitir informes, o permitir que se produzcan determinados eventos
dentro del sistema.

Si un evento específico en el osciloscopio digital determina un bit en un registro


de estado, la lectura de los registros de estado puede decirnos qué tipos de eventos
se han producido.

Cada bit del registro de estado corresponde a un bit en un registro de


validación (enable); el bit de validación debe ser alto para que se informe del evento
en el Registro de byte de Estado (Status Byte Register).

Una solicitud de servicio es el último evento en ocurrir (SRQ). Las solicitudes


SRQ provocan una interrupción en el GPIB para informar de los eventos en el sistema
central?.

5.2 Registros de Estado

Hay dos tipos de registros de estado incluidos en el osciloscopio digital OD-


571/81/82.

• Registros de estado de operación ( CONDition, EVENt, and ENABle)


• Registros de estado consultables (CONDition, EVENt, and ENABle)

El subsistema de estado es el juego de comandos jerárquico (figura 9) que lee


los registros de estado definidos SCPI.

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

Registros de estados Byte de estado


Operación completa 0 No se usa 0
Solicitud de control 1 No se usa 1
Error de consulta 2 No se usa 2
Error dispositivo dependiente 3 3
Error de ejecución 4 MA 4
Error de comando 5 V 5
Solicitud de usuario 6 Registros de estados RQ 6
Activación ON 7 S 7

Resumen de los registros de estructura de estado IEEE 488.2

Figura 8.- Un gráfico representa los registros de estado y sus conexiones.

Figura 9.- Jerarquía de estado de un registro definido SCPI.

Página 48 02/2004
Manual de programación OD-571/81/82

Figura 10.- Registros de estado y comandos relacionados

El registro CONDition es un registro sólo de lectura que monitoriza el estado


actual del instrumento. El registro CONDition se actualiza en tiempo real y las entradas
no experimentan bloqueo o zonas tampón. Cuando se verifica una condición
monitorizada por el registro CONDition, el bit para tal condición también se convierte
en verdadero (1). Cuando no se verifica la condición, el bit es 0.

El registro de sólo lectura EVENt bloquea cualquier cambio de condición


falso-a-verdadero. Una vez se establece el bit en el registro EVENt, deja de verse
afectado por cambios en el correspondiente bit del registro CONDition. El bit
permanece establecido hasta que el controlador lo lee. El comando *CLS (Clear
Status) elimina los registros EVENt.

5.3 Registros de Estado Consultable


La tabla 2 muestra las designaciones de bit de los 16 bits de Registro de
Estado Consultable.

Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8



NU NU NU NU NU NU NU NU
32768 16384 8192 4096 2048 1024 512 256
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
NU NU NU NU NU NU NU NU
128 64 32 16 8 4 2 1
Tabla 2.- Registros de Estado Consultable

5.4 Registros de Estado de Operación


La tabla 3 muestra las designaciones de bit de los 16 bits de Registro de
Estado de Operación.

Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8


NU NU NU NU NU NU NU NU
32768 16384 8192 4096 2048 1024 512 256
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
NU NU NU NU NU NU NU NU
128 64 32 16 8 4 2 1
Tabla 3.- Registro de Estado de Operación


NU: no se usa
02/2004 Página 49
Manual de programación OD-571/81/82

5.5 Registros de Estado

Con el osciloscopio digital OD-571/81/82 se incluyen dos registros de estado,


definidos por las normas IEEE-488.1 y IEEE-488.2.

• Registro de Byte de Estado (SBR)


• Registro de Estado de Eventos Estándar (SESR)

Registro de byte de estado (SBR): El SBR (tabla 4) resume el estado de todos


los demás registros y colas.

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0


OPER RQS ESB MAV QUES NU NU NU
128 64 32 16 8 4 2 1
Tabla 4.- Registro de Byte de Estado (SBR)

No se usan del bit 0 al bit 2, estos bits son siempre cero.

El bit 3 (QUES, QUEStionable) es el bit resumen del QESR (Registro de


Estado de Eventos Consultable). Cuando este bit está alto, indica que este estado está
validado y presente en el QESR.

El bit 4 (MAV, Mensaje disponible) indica que está disponible en la cola de


salida.

El bit 5 (ESB, Bit de Estado de Evento) es el bit de resumen del Registro de


Estado de Eventos Estándar (SESR). Cuando este bit está alto indica que este estado
está validado y presente en el SESR.

El bit 6 (RQS, Request Service) se obtiene de una interrogación en serie. Este


bit muestra que el OD-571/81/82 solicita servicio desde el controlador GPIB.

El bit 7 (OPER, OPERation) es el bit resumen de OESR (Registro de Estado de


Eventos de Operación).

Use interrogación en serie o la petición *STB? Para leer los contenidos de


SBR. Los bits en el SBR se establecen y eliminan dependiendo de los contenidos del
Registro de Eventos Estándar (SESR), y la cola de salida.

Registro de Estado de Evento Estándar (SESR): La tabla 5 muestra el SESR

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0


PON USR CME EXE DDE QYE NU OPC
128 64 32 16 8 4 2 1
Tabla 5.- Registro de Estado de Eventos Estándar (SESR)

Página 50 02/2004
Manual de programación OD-571/81/82

El bit 0 (OPC, Operation Complete) (Operación Completa) indica que se ha


completado la operación. Este bit está activo cuando se han completado todas las
operaciones pendientes siguiendo un comando *OPC.

El bit 1 siempre es cero.

El bit 2 (QYE, Query Error) (Error de petición) indica un error de comando o


petición.

El bit 3 (DDE, Device Error) (Error de dispositivo) indica que se ha producido un


error de dispositivo.

EL bit 4 (EXE, Execution Error) (Error de ejecución) indica que se ha producida


un error mientras el osciloscopio digital OD-571/81/82 estaba ejecutando un comando
o una petición.

El bit 5 (CME, Command Error) (Error de comando) indica que se ha producido


un error mientras el osciloscopio digital OD-571/81/82 estaba atendiendo un comando
o una petición.

El bit 6 (USR, User Request) (Solicitud de usuario) se ignora en el OD-


571/81/82.

El bit 7 (PON, Power On) indica que el OD-571/81/82 ha sido puesto en


marcha.

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.

5.6 Registros de Validación

La validación de registros determina que se informe de ciertos eventos al


Status Byte Register (Registro de Bytes de Estado) y SRQ. El OD-571/81/82 tiene los
siguientes registros activados.

• Registro de Validación de Estados de Eventos (ESER)


• Registro de Validación de Operación
• Registro de Validación Cuestionable
• Registro de Validación de Solicitud de Servicio (SRER)

Cuando uno de los bits de los registros de validación es alto y el bit


correspondiente en el registro de estado es alto, los registros de validación ejecutarán
una función lógica OR, la salida que controla el bit establecido del Registro de Bytes
de Estado es alta.

Varios comandos determinan los bits de los registros de validación. Los


siguientes apartados describen los registros de validación y los comandos que los
establecen.
02/2004 Página 51
Manual de programación OD-571/81/82

Registro de Validación de Estado de Eventos (ESER): El ESER controla que


tipo de eventos se reúnen por el Bit de Estado
de Eventos (ESB) en el SBR. Los bits del
ESER corresponden a los bits del SESR.

Use el comando *ESE para determinar los bits en ESER. Use el comando *ESE? para
leerlo.

Registro de Validación de Operación: Aunque el Registro de Validación de


OPERación está presente en este osciloscopio
digital, los registros de OPERación no informan
de ninguna condición.

Registro de Validación Cuestionable: El Registro de Validación Cuestionable


controla qué tipos de eventos se resumen
mediante el bit de estado QUES en el SBR.

Registro de Validación de Solicitud de Registro (SRER): El SRER controla


qué bits del SBR generan una solicitud de
registro.

Use el comando *SRE para establecer el SRER. Use el comando *SRE? para leerlo.

5.7 Colas

La cola de salida está incluida en este osciloscopio digital.

Cola de salida: Este osciloscopio digital guarda las respuesta a consultas en la


cola de salida que siguen el protocolo IEEE 488.2. Si el
osciloscopio digital recibe una gran cantidad de datos de consulta
no leídos simultáneamente, el búfer de salida del osciloscopio
digital quedará cubierto repetidamente; en este momento, el búfer
de salida probablemente generará errores. El ordenador debe leer
una respuesta a una consulta antes de que envíe el siguiente
comando (o consulta) o deja de dar respuesta a consultas
anteriores.

Cuando ocurre un error o evento, la cola de salida guarda el mensaje. La cola


de salida guarda e informa de los mensajes en un estado FIFO (primero en entrar,
primero en salir).

Página 52 02/2004
Manual de programación OD-571/81/82

6 MENSAJES DE ERROR

La tabla 6 relaciona los mensajes de error SCPI de este osciloscopio digital.

Código Error Explicación de código de error SCPI


-100 Error de comando
-102 Error de sintaxis
/*Error de ejecución*/
-220 Error de parámetro
-221 Conflicto de ajustes
-222 Datos fuera de margen
-223 Demasiados datos
-224 Valor de parámetro ilegal
-232 Formato no válido

Tabla 6.- Explicación de código de error SCPI

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

7 PLANTILLA DE PROGRAMA PARA GPIB

/* 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);

int Dev; /* Device handle */


unsigned char ReadBuffer[201]; /* Read data buffer */
char ErrorMnemonic[21][5] = {"EDVR", "ECIC", "ENOL", "EADR",
"EARG","ESAC", "EABO", "ENEB", "EDMA", "",
"EOIP", "ECAP", "EFSO", "", "EBUS",
"ESTB", "ESRQ", "", "", "", "ETAB"};
unsigned char WaveBuf[ARRAYSIZE];

int _cdecl main(void)


{
int i, count=0;
unsigned char ch;
Dev = ibdev (BDINDEX, PRIMARY_ADDR_OF_DMM, NO_SECONDARY_ADDR,
TIMEOUT, EOTMODE, EOSMODE);
if(ibsta & ERR)
printf("\n\rUnable to open device");
ibclr (Dev);
02/2004 Página 55
Manual de programación OD-571/81/82

if(ibsta & ERR)


printf("\n\rUnable to clear device(ibsta= %x),
(iberr=%x)",ibsta,iberr);

ibwrt (Dev, "*CLS\n", 5L); /*Clear the status registers and*/


printf("\n\r*CLS\n\r"); /*Output buffer of OD-571/81/82. */
if((ibsta&ERR)||(ibsta&TIMO)){
ShowIbsta(1);
return 0;
}

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;
}

Delay(10000); /*Waiting for acquisition process and OD-571/81/82


internal*/
/*process. The delay time depend on the timebase that*/
/*you selected. Low speed division require much more */
/*time for acquisition. It's recommended a minimum */
/*200ms delay time after the last Comando, before */
/*getting the waveform data from OD-571/OD-582. */
Acquire(); /*Get waveform data.
*/

ibwrt (Dev, ":SYSTEM:UNLOCK\n",15L); /*Unlock OD-571/81/82 from


remote control.*/
printf(":SYSTEM:UNLOCK\n\r");
if((ibsta&ERR)||(ibsta&TIMO)){
ShowIbsta(1);
return 0;
}
02/2004 Página 57
Manual de programación OD-571/81/82

ibonl(Dev,0); /*Take the device offline.


*/
return 1;
}

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

También podría gustarte