Códigos de Error GPIB y Soluciones Comunes (Parte 1)

Visión General

Este documento ofrece soluciones para códigos de error GPIB.

Contenido

Gran parte del siguiente texto se deriva del Manual de Usuario NI-488.2 para Windows (ver los siguientes Recursos Adicionales).

 

EDVR (0)

Condición del Error: Error del controlador.

Descripción: EDVR se reenvía cuando el hardware GPIB no está configurado correctamente, o el nombre de la interfaz o el nombre del dispositivo que pasó por la función ibfind es incorrecto.

Posible Causa: Por lo general, los errores EDVR se producen cuando se escribe incorrectamente el nombre de la interfaz de su tarjeta o el nombre del dispositivo de su instrumento. Por ejemplo, el nombre predeterminado de la interfaz para tarjetas de NI es GPIB0, pero puede escribirse mal como GPIBO (con letra "O" en lugar de cero). Este error también puede ocurrir, si el índice de la tarjeta que pasó por la función ibdev es incorrecto. El índice de la tarjeta es la parte numérica del nombre de la interfaz de la tarjeta GPIB, pero muchas personas suponen incorrectamente que es la dirección principal de la tarjeta. Por ejemplo, puedo instalar una tarjeta PCI-GPIB en mi PC y dar una dirección principal de 2. El nombre de interfaz predeterminado para la tarjeta es GPIB0, por lo que tiene un índice de tarjeta de 0, no del número 2.

Soluciones:

  • Utilice la configuración predeterminada para su hardware GPIB en la Utilidad de Configuración GPIB (es decir, GPIB0 para el nombre de la interfaz y cero para la dirección principal).
  • Use la función ibdev en lugar de la función ibfind para abrir comunicación con su instrumento (para evitar usar su nombre de dispositivo).
  • Si debe usar nombres de dispositivos para sus instrumentos, entonces asegúrese de que estén configurados correctamente en las Plantillas de Dispositivos de la Utilidad de Configuración GPIB (vea su Manual de Usuario NI-488.2 para más detalles).
  • Utilice el descriptor de unidad enviado por ibdev o ibfind como primer parámetro en las siguientes funciones de NI-488. Examine la variable antes de la función de falla para asegurarse de que su valor no haya sido dañado.

 

ECIC (1)

Condición del Error: La función requiere que la tarjeta GPIB sea el Controlador CIC (Controller-In-Charge).

Descripción: Ciertas funciones requieren que su tarjeta GPIB sea el Controlador CIC - estas funciones se indican en el Manual de Referencia de Funciones NI-488.2 (Vea abajo el enlace relacionado). De manera predeterminada, su tarjeta GPIB sera el Controlador del Sistema, pero esto no es lo mismo que ser el Controlador CIC (Controller-In-Charge). El Controlador del Sistema tiene la habilidad de convertirse en el CIC en cualquier momento (puede haber un Controlador del Sistema en un GPIB (General Purpose Interface Bus) determinado).

Posible Causa: A menudo los errores ECIC se producen cuando usted no envía una interfaz clara al inicio de su programa para asegurarse de que su tarjeta GPIB es el CIC.

Soluciones:

  • Si su tarjeta GPIB es el Controlador del Sistema, entonces use ibrsc 1 para asegurarse de que su tarjeta GPIB está configurada como el Controlador del Sistema.
  • Si su tarjeta GPIB es el Controlador del Sistema, entonces use la función ibsic (o función SendIFC) para enviar una interfaz clara. Esto hará que su tarjeta GPIB sea el CIC (también restablece las comunicaciones GPIB en el bus).
  • Si su tarjeta GPIB es uno de los varios controladores en el bus, entonces, compruebe siempre el bit del CIC de la palabra de estado, ibsta, antes de intentar cualquier llamada de función que requiera que su tarjeta GPIB tenga estado de CIC. Si no aparece, entonces, usted puede llamar la función ibwait (establezca la máscara de espera para el bit del CIC) para retrasar el procesamiento hasta que el control pase a su tarjeta GPIB.

 

ENOL (2)

Condición del Error: La función no detectó Oyente(s).

Descripción: Las comunicaciones GPIB requieren un solo "Hablador" (para escribir mensajes de datos) y uno o más "Oyentes" (para leer mensajes de datos). ENOL usualmente ocurre cuando se intenta una operación de escritura, pero no se consideran Oyentes o no hay Oyentes en las direcciones especificadas. Para una escritura de dispositivo, ENOL indica que la dirección GPIB con la que está intentando comunicarse no coincide con la dirección GPIB del dispositivo conectado al bus.

Posible Causa: El instrumento con el que usted está tratando comunicarse no se encuentra en la dirección principal, el instrumento no está encendido o el cable al instrumento está desconectado o roto.

Soluciones:

  • Asegúrese que la dirección GPIB de su dispositivo coincide con la dirección GPIB del dispositivo al que desea escribir datos.
  • Verifique que el cable está conectado correctamente al instrumento. Intente cambiar los cables para verificar que el cable no está roto.
  • Asegúrese que por lo menos dos tercios de sus dispositivos están encendidos.
  • Para comunicaciones a nivel de tarjeta, use el código hex adecuado en la función ibcmd para para establecer su dispositivo como un Oyente.
  • Llame la función ibpad (e ibsad, si es necesario) para establecer la dirección principal de su dispositivo. La función ibpad reenviará la configuración anterior para el dispositivo, y usted puede verificar si la dirección configurada coincide con la dirección actual del dispositivo.

 

EADR (3)

Condición del Error: La tarjeta GPIB (GPIB0 o GPIB1) es el Controlador CIC (Controller-In-Charge) y no está establecido correctamente.

Descripción: EADR se produce cuando la tarjeta GPIB es el Controlador CIC (Controller-In-Charge) y no está establecido correctamente antes de las funciones de lectura y escritura. EADR también se reenvía por la función ibgts cuando se solicita la característica del protocolo de sombra y la línea GPIB ATN ya está sin validar. En este caso, el protocolo sombra no es posible y se reenvía el error para notificarle de ese hecho.

Posible Causa: Su tarjeta GPIB está configurada para la misma dirección principal que el instrumento con el cual está intentando comunicarse.

Soluciones:

  • Nunca configure su tarjeta GPIB con la misma dirección que su dispositivo. Usted debe (casi) siempre dejar su tarjeta GPIB configurada para la dirección principal 0 y no para la dirección secundaria. Llame a ibpad 0 e ibsad 0 al comienzo de su programa para configurar correctamente la dirección de su tarjeta.
  • Asegúrese de que la tarjeta GPIB esté correctamente establecida antes de llamar a ibrd, ibwrt, RcvRespMsg o SendDataBytes.
  • Evite llamar a ibgts, excepto inmediatamente después de una llamada a ibcmd. La función ibcmd hace que se valide la línea ATN, que le dice a los instrumentos que esperen mensajes de comando, en lugar de mensajes de datos.

 

EARG (4)

Condición del Error: Argumento inválido para una llamada de función.

Descripción: EARG se produce cuando se pasa un argumento no válido a una llamada de función

Posible Causa: Los siguientes son algunos ejemplos: usted llama a ibtmo con un valor que no está en el rango de 0 a 17 (los valores de tiempo de interrupción posibles corresponden a una tabla de valores que van de 0 a 17, donde el valor predeterminado es 13, que representa un tiempo de interrupción de 10 segundos); usted llama a ibeos con bits establecidos en el byte alto del segundo parámetro; o usted llama a ibpad (o ibsad) con direcciones inválidas.

Soluciones:

  • Consulte el Manual de Referencia de Funciones NI-488.2 (vea abajo el enlace relacionado) para asegurarse que sus parámetros son válidos.
  • No utilice un descriptor de dispositivos en una función a nivel de tarjeta o un descriptor de tarjetas en una función a nivel de dispositivo.

 

ESAC (5)

Condición del Error: La tarjeta GPIB no es un Controlador del Sistema como se requiere.

Descripción: ESAC se produce cuando se llama a ibsic, ibsre, SendIFC o EnableRemote cuando la tarjeta GPIB no tiene la capacidad del Controlador del Sistema.

Posible Causa: La tarjeta GPIB no está configurada para ser Controlador del Sistema.

Soluciones:

  • Otorgue la capacidad del Controlador del Sistema a la tarjeta GPIB, llamando a ibrsc 1 o utilizando la Utilidad de Configuración GPIB.

 

EABO (6)

Condición del Error: Operación de E/S abortada.

Descripción: EABO indica que por alguna razón una operación de E/S ha sido cancelada.

Posible Causa: El error EABO normalmente es el resultado de un tiempo de interrupción durante una operación de lectura o escritura, pero también puede deberse a una llamada a la función ibstop, a la función ibclr o a funciones similares mientras una operación de E/S está en curso. Puede recibir un tiempo de interrupción durante las operaciones de escritura con una tarjeta PCI-GPIB, si el bus PCI mastering (una opción en el BIOS de su PC) no está habilitado. Es posible que reciba un tiempo de interrupción durante las operaciones de lectura, si el instrumento desde el que está leyendo no entendió el comando anterior, por lo que no tiene nada que escribirle. Existen algunas razones por las que el instrumento no tiene nada que decir:

  • El mensaje del instrumento puede haber sido mal escrito. Por ejemplo, "*IDN?" es una consulta común de identificación para instrumentos compatibles con IEEE 488,2. Es fácil escribir incorrectamente este mensaje como "*IND?", el cual el instrumento no entenderá, por lo que no generará una cadena de mensajes desde el instrumento.
  • El mensaje para el instrumento puede contener un comando que el instrumento no comprende. Por ejemplo, el mensaje "*IDN?"del ejemplo anterior solamente lo comprenden instrumentos compatibles con IEEE 488,2. Si su instrumento es un dispositivo anterior que no cumple con IEEE 488,2, no entenderá el mensaje "*IDN?", por lo que no generará una cadena de mensajes para leer desde el instrumento.
  • El instrumento puede utilizar un carácter EOS determinado (final de la cadena) como su método de terminación, pero usted pudo olvidarse de agregar este carácter de terminación a su mensaje. Por ejemplo, si su instrumento espera una nueva línea como el carácter EOS, entonces, "ID?" no va a funcionar, pero "ID?\n" (donde \n representa una nueva línea en IBIC) si lo hará.
  • Usted puede esperar ver EOI (finalizar o identificar, una de las cinco líneas de administración de bus) como el método de terminación, pero si el instrumento no configura la línea EOI cuando termina de enviar su mensaje, se interrumpirá cualquier operación de lectura que usted realice.

Soluciones:

  • Asegúrese de que sus mensajes consisten en comandos que el instrumento comprende. Consulte el manual de usuario de su dispositivo para una lista de posibles comandos.
  • Consulte el manual de usuario para ver si su instrumento necesita estar en un modo 488,2 o GPIB para ser un Oyente de GPIB. Con frecuencia los instrumentos solamente responderán a los comandos estándares después de que se hayan colocado en este modo, y de lo contrario, darán un error a pesar de que se les haya enviado un comando válido.
  • Verifique que está utilizando el método correcto de terminación para su instrumento. Siempre se usa la cantidad de bytes (donde usted espera recibir cierto número de bytes en un mensaje), pero algunos instrumentos usan cantidad de bytes o EOS, algunos usan cantidad de bytes o EOI y algunos usan solamente cantidad de bytes. Consulte el manual de usuario de su dispositivo para los posibles métodos de terminación para usar con su instrumento.
  • Si EOS es el método de terminación, entonces asegúrese de añadir el carácter de terminación al final de su mensaje. Usted puede especificar el carácter de terminación en la Utilidad de Configuración GPIB, pero el controlador NI-488.2 no lo añadirá automáticamente por usted.
  • Alargue el período de tiempo de interrupción para las operaciones de E/S utilizando el comando ibtmo.
  • Si usted recibe todos los datos y recibe un error EABO, busque un final de la cadena en particular (ej. nueva línea o retorno) y configure la tarjeta GPIB para terminar la lectura en ese carácter y usando la función ibeos.

 

ENEB (7)

Condición del Error: Tarjeta GPIB no existente.

Descripción: ENEB se produce cuando no existe tarjeta GPIB en la dirección de E/S especificada en la Utilidad de Configuración GPIB. Este problema sucede cuando la tarjeta no está físicamente conectada en el sistema, la dirección de E/S especificada durante la configuración no coincide con la configuración actual de la tarjeta, existe un conflicto del sistema con la dirección de E/S base o el nombre de la interfaz para la tarjeta es diferente del nombre de la interfaz de la tarjeta asociada con su dispositivo.

Soluciones:

  • Determine la dirección de E/S base para su tarjeta, buscando en la Utilidad de Configuración GPIB. Verifique el administrador de recursos de su sistema para ver si otra tarjeta está intentando usar parte o todo este rango de dirección. Asegúrese de que el nombre de la interfaz de su tarjeta es el mismo que el nombre de la interfaz de la tarjeta con la que está configurado su dispositivo para comunicarse (vea el documento de soporte 2368N85R).
  • Para tarjetas legado, asegúrese de que los jumpers e interruptores Dip en la tarjeta están bajo la misma configuración de recursos que la Utilidad de Configuración GPIB cree que está utilizando.
  • Apague su PC y asegúrese de que la tarjeta esté firmemente asentada en su ranura.

 

Esta información para solución de problemas continúa en Códigos de Error GPIB y Soluciones Comunes (Parte 2) y Códigos de Error GPIB y Soluciones Comunes (Parte 3).