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

Visión General

Este artículo proporciona soluciones para códigos de error GPIB.

Contenido

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

 

ELCK (21)

Condición de Error: la interfaz GPIB está bloqueada y no se puede acceder.

Causa Posible: este error generalmente ocurre cuando hay dos o más procesos que desean acceder a la misma interfaz y un proceso ya ha bloqueado la interfaz. Este error se devuelve cuando la operación no se puede realizar debido al bloqueo existente en la interfaz. También se devuelve cuando un proceso intenta desbloquear una interfaz cuando no existe dicho bloqueo.

Solución:

  • La forma de evitar el error ELCK es esperar un tiempo aleatorio antes de intentar bloquear la interfaz nuevamente. En caso de que esté utilizando el comando iblck para bloquear la interfaz, aumente LockWaitTime y espere a que el otro proceso renuncie al control de la interfaz. También asegúrese de que los procesos no bloqueen una interfaz durante todo el período de ejecución.

 

EARM (22)

Condición de Error: callback ibnotify no se ha podido reactivar.

Causa Posible: este error se produce cuando usamos notificaciones asincrónicas (ibnotify) en aplicaciones NI-488.2. Esta función es útil si desea que su aplicación sea notificada de forma asincrónica sobre la ocurrencia de uno o más eventos GPIB. Esta notificación de eventos se realiza mediante una función callback. La función callback se registra con el controlador NI-488.2 cuando se realiza la llamada a ibnotify. Este error indica que esta notificación de callback no pudo reactivarse al devolver un valor ilegal o cuando se produjo un error fatal del controlador (EDVR).

Soluciones:

  • Asegúrese de que el valor devuelto por su función callback sea un valor válido de la máscara de ibnotify.
  • Devuelva un valor cero desde su función callback para anular el registro del mecanismo de notificación de eventos asincrónicos. Luego llame a ibnotify para volver a habilitar la notificación.

 

EHDL(23)

Condición de Error: el Indicador de Entrada no es válido.

Causa Posible: varios comandos GPIB toman el indicador de entrada de la tarjeta o el dispositivo como un parámetro de entrada que puede ser la fuente de este error. Este error puede ocurrir en varias circunstancias. Algunos escenarios se enumeran a continuación:

  • Un identificador de tarjeta válido se pasa como un parámetro de identificador de dispositivo o viceversa.
  • Una tarjeta o un descriptor de dispositivo no válido se pasa como entrada a cualquier función NI-488.2.
  • Un número de tarjeta fuera del rango de 0-99 se pasa a una función tradicional de nivel de tarjeta NI-488.2 o se llama a la rutina
    ibconfig o ibmask NI-488.2 con un descriptor de unidad de dispositivo y una opción de configuración de solo tarjeta, o con un descriptor de unidad de tarjeta y una opción de configuración de solo dispositivos.

Soluciones:

  • Verifique si las funciones a nivel de dispositivo y nivel de tarjeta no se mezclan al llamar a las funciones respectivas.
  • También verifique si el índice de la tarjeta que pasó a la llamada NI 488,2 es un número de índice válido.

 

EWIP (26)

Condición de Error: Esperar En Porgeso en el Indicador de Entrada especificado.

Causa Posible: este error se produce en escenarios que tienen más de un sub-proceso en el mismo proceso y cuando dos o más sub-procesos acceden a la misma interfaz. EWIP indica que una llamada ibwait ya está en progreso en el descriptor de la unidad especificada y ocurre cuando un flujo ya está ejecutando un ibwait usando el mismo descriptor y otro sub-proceso intenta llamar a ibwait en el mismo descriptor.

Solución:

  • Asegúrese de que, en un momento dado, solo un flujo esté realizando una llamada ibwait en el descriptor de la unidad dada.

 

ERST (27)

Condición de Error: la notificación de evento se canceló debido a que la interfaz se restableció.

Causa Posible: ERST resulta cuando se cancela una notificación de evento debido a que la interfaz se restableció. Una llamada ibwait pendiente en el controlador devuelve ERST en las siguientes situaciones:

  • Otro flujo en el mismo proceso llama a ibonl utilizando el mismo descriptor de unidad que ibwait.
  • Otro flujo o proceso emite un ibonl 1 a nivel de tarjeta.

Se puede invocar un callback ibnotify con ERST en las siguientes situaciones:

  • Otro proceso emite un ibonl 1 a nivel de directorio.

Soluciones:

  • No llame a ibonl con las llamadas de ibwait todavía pendientes en el controlador.
  • Evite que otras aplicaciones llamen a ibonl bloqueando la interfaz con iblck.

 

EPWR (28)

Condición de Error: La interfaz perdió potencia.

Causa Posible: EPWR resulta cuando una interfaz pierde energía. Esto ocurre a menudo cuando el sistema va y regresa de un estado de espera.

Soluciones:

  • Desconecte todos los controladores y reinicie la aplicación.
  • Salga de la aplicación y reinicie el sistema.
  • Desactive los modos de espera e hibernación en la PC.

 

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