Este documento proporciona soluciones a los códigos de error GPIB.
Gran parte del texto siguiente se deriva del Manual de usuario NI-488.2 para Windows (consulte los Recursos adicionales, a continuación).
Condición de error: Error del conductor.
Descripción: EDVR se devuelve cuando el hardware GPIB no está configurado correctamente, o el nombre de la interfaz o el nombre del dispositivo pasado a la función ibfind es incorrecto.
Posible causa: A menudo, los errores de EDVR se producen cuando escribe mal el nombre de la interfaz de su placa o el nombre del dispositivo de su instrumento. Por ejemplo, el nombre de interfaz predeterminado para las placas NI es GPIB0, pero puede escribirlo mal como GPIBO (con un "oh" en lugar de un cero). Este error también puede ocurrir si el índice de placa pasado a la función ibdev es incorrecto. El índice de la placa es la porción numérica del nombre de la interfaz de la placa GPIB, pero muchas personas asumen incorrectamente que es la dirección principal de la placa. Por ejemplo, puedo instalar una placa PCI-GPIB en mi computadora y dar una dirección principal de 2. El nombre de interfaz predeterminado para la placa es GPIB0, por lo que tiene un índice de placa de 0, no 2.
Soluciones:
Condición de error: La función requiere que la placa GPIB sea el controlador encargado (CIC).
Descripción: Ciertas funciones requieren que su placa GPIB sea el CIC - estas funciones se indican en el Manual de referencia de funciones NI-488.2 (consulte el enlace relacionado, a continuación). De forma predeterminada, su placa GPIB será el controlador del sistema, pero esto no es lo mismo que ser el controlador encargado. El controlador del sistema tiene la capacidad de convertirse en el CIC en cualquier momento (puede haber un controlador del sistema en un bus de interfaz de propósito general dado).
Posible causa: A menudo, los errores ECIC se producen cuando no envía una interfaz clara al inicio de su programa para asegurarse de que su placa GPIB es el CIC.
Soluciones:
Condición de error: Función no detectó oyente(s).
Descripción: Las comunicaciones GPIB requieren un solo Talker (para escribir mensajes de datos) y uno o más Listeners (para leer mensajes de datos). ENOL suele ocurrir cuando se intenta una operación de escritura, pero no se direccionan Listeners o no hay Listeners en la(s) dirección(es) especificada(s). Para una escritura de dispositivo, ENOL indica que la dirección GPIB con la que intenta comunicarse no coincide con la dirección GPIB del dispositivo conectado al bus.
Posible causa: El instrumento con el que intenta comunicarse no se encuentra en la dirección primaria esperada, el instrumento no está encendido o el cable al instrumento está desconectado o roto.
Soluciones:
Condición de error: La placa GPIB (GPIB0 o GPIB1) no se aborda correctamente.
Descripción: EADR ocurre cuando la placa GPIB es el controlador encargado (CIC) y no se dirige correctamente a sí misma antes de las funciones de lectura y escritura. EADR también es devuelto por la función ibgts cuando se solicita la función de reconocimiento de sombras y la línea ATN GPIB ya no se ha activado. En este caso, el apretón de manos sombra no es posible y el error se devuelve para notificarle ese hecho.
Posible causa: La placa GPIB está configurada para la misma dirección principal que el instrumento con el que intenta comunicarse.
Soluciones:
Condición de error: Argumento no válido para una llamada a una función.
Descripción: EARG resulta cuando un argumento no válido se pasa a una llamada de función.
Posible causa: Los siguientes son algunos ejemplos: llama a ibtmo con un valor que no está en el rango de 0 a 17 (los posibles valores de tiempo de espera corresponden a una tabla de valores que van de 0 a 17, donde el valor predeterminado es 13, lo que representa un tiempo de espera de 10 segundos); llama a ibeos con bits sin sentido establecidos en el byte alto del segundo parámetro; o llama a ibpad (o ibsad) con direcciones no válidas.
Soluciones:
Condición de error: Placa GPIB no controlador del sistema como se requiere.
Descripción: Resultado ESAC cuando se llama a ibsic, ibsre, SendIFC o EnableRemote cuando la placa GPIB no tiene capacidad de controlador del sistema.
Posible causa: La placa GPIB no está configurada para ser el controlador del sistema.
Soluciones:
Condición de error: Operación de E/S abortada.
Descripción: EABO indica que una operación de E/S ha sido cancelada por alguna razón.
Posible causa: El error EABO es generalmente el resultado de un tiempo de espera durante una operación de lectura o escritura, pero también puede ser causado llamando a la función ibstop, la función ibclr o funciones similares mientras una operación de E/S está en progreso. Es posible que reciba un tiempo de espera durante las operaciones de escritura con una placa PCI-GPIB, si la masterización del bus PCI (una opción en la BIOS de su computadora) no está habilitada. Es posible que reciba un tiempo de espera durante las operaciones de lectura, si el instrumento del que está leyendo no entendió el comando anterior, por lo que no tiene nada que escribirle. Hay algunas razones por las que el instrumento puede no tener nada que decir:
Soluciones:
Condición de error: Tablero GPIB inexistente.
Descripción: ENEB se produce cuando no existe placa GPIB en la dirección de E/S especificada en la Utilidad de configuración de GPIB. Este problema ocurre cuando la placa no está conectada físicamente al sistema, la dirección de E/S especificada durante la configuración no coincide con la configuración real de la placa, hay un conflicto del sistema con la dirección de E/S base o el nombre de interfaz de la placa es diferente del nombre de interfaz de la placa asociada con el dispositivo.
Soluciones:
Condición de error: Se produce un error al usar DMA para transferencias de datos.
Descripción: EDMA ocurre si se encuentra un error de DMA del sistema cuando el controlador NI-488.2 intenta transferir datos a través del GPIB mediante DMA.
Soluciones:
Condición de error: Función no permitida mientras la E/S asíncrona está en progreso.
Descripción: EOIP ocurre cuando una operación de E/S asíncrona no ha terminado antes de que se realice alguna otra llamada GPIB. Solo puede usar la función ibstop, ibnotify, ibwait o ibonl durante operaciones de E/S asíncronas. Si se intenta cualquier otra llamada GPIB, se devuelve EOIP.
Posible causa: Llamada a cualquier llamada de función GPIB no compatible durante la E/S asíncrona.
Solución:
Condición de error: No hay capacidad de operación.
Descripción: ECAP resulta cuando su placa GPIB carece de la capacidad de llevar a cabo una operación, o cuando una capacidad particular se ha deshabilitado en el software y se realiza una llamada que requiere esa capacidad.
Solución:
Condición de error: Error del sistema de archivos.
Descripción: EFSO resulta cuando una llamada ibrdf o ibwrtf encuentra un problema al realizar una operación de archivo. Específicamente, este error indica que la función no puede abrir, crear, buscar, escribir o cerrar el archivo al que se accede. El código de error específico del sistema operativo para esta condición se encuentra en ibcntl.
Soluciones:
Condición de error: Error de transferencia de bytes de comando.
Descripción: EBUS resulta cuando se producen ciertos errores de bus GPIB durante las funciones del dispositivo. Todas las funciones del dispositivo envían bytes de comando para realizar operaciones de direccionamiento y otras operaciones de administración de bus. Se espera que los dispositivos acepten estos bytes de comando dentro del límite de tiempo especificado por la configuración predeterminada o la función ibtmo. EBUS resulta si se produjo un tiempo de espera durante el envío de estos bytes de comando.
Posible causa: No hay dispositivos GPIB conectados a su controlador GPIB. Esto puede deberse a que todos sus instrumentos están apagados, uno de sus instrumentos está en error y afirma una línea de apretón de manos, su cable GPIB está desconectado de su placa o su cable GPIB está roto.
Soluciones:
Condición de error: Byte(s) de estado de la encuesta en serie perdido.
Descripción: ESTB se informa solo por la función ibrsp. ESTB indica que uno o más bytes de estado de sondeo serie recibidos de sondeos serie automáticos se han descartado debido a la falta de espacio de almacenamiento. Varios bytes de estado más antiguos están disponibles; sin embargo, el más antiguo está siendo devuelto por la llamada ibrsp.
Posible causa: Instrumento reiteradamente afirma la línea SRQ.
Soluciones:
Condición de error: SRQ atascado en la posición ON.
Descripción: ESRQ solo se puede devolver mediante una llamada ibwait a nivel de dispositivo, en la que ha configurado la función ibwait para que regrese una vez que se confirme el bit RSQ de la palabra de estado (ibsta). ESRQ indica que una espera para RQS no es posible, porque la línea GPIB SRQ está atascada ON.
Posible causa: Esta situación puede ser causada por los siguientes eventos: un problema de cableado puede estar haciendo que la línea SRQ se mantenga activada; un dispositivo desconocido para el software está activando la línea SRQ - debido a que el software no conoce de este dispositivo, nunca puede sondear en serie el dispositivo para anular la activación de la línea SRQ; o un probador de bus GPIB (o equipo similar) puede estar forzando a la línea SRQ a ser activada.
Soluciones:
Condición de error: Problema de mesa.
Descripción: ETAB ocurre solo durante las funciones FindLstn y FindRQS. ETAB indica que había algún problema con una tabla utilizada por estas funciones.
Posible causa: En el caso de FindLstn, ETAB significa que la tabla dada no tenía suficiente espacio para contener todas las direcciones de los Oyentes encontrados. En el caso de FindRQS, ETAB significa que ninguno de los dispositivos de la tabla dada estaba solicitando servicio.
Soluciones:
Condición de error: La interfaz GPIB está bloqueada y no se puede acceder a ella.
Posible causa: Este error suele ocurrir cuando hay dos o más procesos que quieren 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 tal bloqueo.
Solución:
Condición de error: ibnotify callback no pudo rearmarse.
Posible causa: Este error ocurre cuando usamos notificación asíncrona (ibnotify) en aplicaciones NI-488.2. Esta función es útil si desea que su aplicación sea notificada asíncronamente sobre la ocurrencia de uno o más eventos GPIB. Esta notificación de evento se lleva a cabo mediante una función de devolución de llamada. La función de devolución de llamada se registra con el controlador NI-488.2 cuando se realiza la llamada de notificación. Este error indica que esta notificación de devolución de llamada no se rearmó al devolver un valor ilegal o cuando se produjo un error fatal del conductor (EDVR).
Soluciones:
Condición de error: El Input Handle no es válido.
Posible causa: Varios comandos GPIB toman el mango de entrada de la placa o el dispositivo como parámetro de entrada que puede ser la fuente de este error. Este error puede ocurrir en varias circunstancias. A continuación se enumeran algunos escenarios:
Soluciones:
Condición de error: Wait In progress en el controlador de entrada especificado.
Posible causa: Este error se produce en escenarios que tienen más de un hilo en el mismo proceso y cuando dos o más hilos están accediendo a la misma interfaz. EWIP indica que una llamada ibwait ya está en progreso en el descriptor de unidad especificado y se produce cuando un hilo ya está realizando una ibwait usando el mismo descriptor y otro hilo intenta llamar a ibwait en el mismo descriptor.
Solución:
Condición de error: La notificación de eventos se canceló debido a un reinicio de la interfaz.
Posible causa: ERST resulta cuando se cancela una notificación de evento debido a un reinicio de la interfaz. Una llamada ibwait pendiente en el conductor devuelve ERST en las siguientes situaciones:
Podrá invocarse una devolución de llamada de notificación con ERST en las siguientes situaciones:
Soluciones:
Condición de error: La interfaz perdió energía.
Posible causa: EPWR resulta cuando una interfaz pierde energía. Esto a menudo resulta cuando el sistema pasa y regresa de un estado de espera.
Soluciones: