Codes d'erreur GPIB et solutions courantes (2e partie)

Aperçu

Cet article donne des solutions pour répondre aux codes d'erreur GPIB.

Contenu

Une grande partie des informations suivantes proviennent du Manuel de l'utilisateur du NI-488.2 pour Windows (voir Ressources supplémentaires) :

 

EDMA  (8)

Condition d'erreur : Une erreur se produit lors de l'utilisation de DMA pour les transferts de données.

Description : EDMA se produit si une erreur DMA système est détectée lorsque le driver NI-488.2 tente de transférer des données sur le GPIB à l'aide du DMA.

Solutions :

  • Vous pouvez corriger le problème EDMA dans le matériel en utilisant l'utilitaire de configuration GPIB pour reconfigurer votre carte GPIB afin qu'elle n'utilise pas de ressource DMA.
  • Vous pouvez corriger le problème EDMA dans le logiciel en utilisant la fonction ibdma pour désactiver le DMA.

 

EOIP (10)

Condition d'erreur : Fonction non autorisée tant que des E/S asynchrones sont en cours.

Description : EOIP se produit lorsqu'une opération d'E/S asynchrone n'est pas terminée avant qu'un autre appel GPIB soit effectué. Vous ne pouvez utiliser que la fonction ibstop, ibnotify, ibwait ou ibonl lors d'opérations d'E/S asynchrones. Tout autre tentative d'appel GPIB renverra EOIP.

Cause possible : Appel de n'importe quelle fonction GPIB non supportée au cours d'une E/S asynchrone.

Solution : 

  • Resynchronisez le driver et votre application avant d'effectuer d'autres appels GPIB. La resynchronisation est accomplie en utilisant l'une des fonctions suivantes: ibnotify (si la valeur ibsta transmise au callback ibnotify contient CMPL, le driver et l'application sont resynchronisés), ibwait (si l'ibsta renvoyé contient CMPL, alors le driver et l'application sont resynchronisés), ibstop (ceci annule l'opération d'E/S asynchrone, de sorte que le driver et votre application sont resynchronisés immédiatement) ou ibonl (ceci annule l'opération d'E/S asynchrone et l'interface est réinitialisée, de sorte que le driver et votre application sont resynchronisés immédiatement).

 

ECAP (11)

Condition d'erreur : Aucune capacité d'opération.

Description : ECAP se produit lorsque votre carte GPIB n'a pas la possibilité d'effectuer une opération ou lorsqu'une capacité particulière a été désactivée dans le logiciel et qu'un appel qui nécessite cette capacité est effectué.

Solution : 

  • Vérifiez la validité de l'appel ou assurez-vous que le driver et la carte d'interface GPIB ont les capacités requises.

 

EFSO (12)

Condition d'erreur : Erreur système de fichiers.

Description : EFSO se produit lorsqu'un appel ibrdf ou ibwrtf rencontre un problème lors d'une opération sur un fichier. Plus précisément, cette erreur indique que la fonction n'est pas capable d'ouvrir, de créer, de rechercher, d'écrire ou de fermer le fichier en cours d'accès. Le code d'erreur spécifique du système d'exploitation pour cette condition est contenu dans ibcntl.

Solutions : 

  • Assurez-vous que le nom de fichier, le chemin d'accès et le driver que vous avez spécifiés sont corrects.
  • Assurez-vous que le mode d'accès du fichier est correct. Par exemple, n'essayez pas d'écrire dans un fichier en lecture seule.
  • Assurez-vous qu'il y a assez de place sur le disque pour contenir le fichier.

 

EBUS (14)

Condition d'erreur : Erreur de transfert d'octet de commande.


Description : EBUS se produit lorsque certaines erreurs de bus GPIB surviennent avec des fonctions de périphérique. Toutes les fonctions de périphérique envoient des octets de commande pour effectuer l'adressage et d'autres opérations de gestion de bus. Les périphériques sont censés accepter ces octets de commande dans le délai spécifié par la configuration par défaut ou la fonction ibtmo. EBUS se produit si un timeout a lieu lors de l'envoi de ces octets de commande.

Cause possible : Aucun périphérique GPIB n'est connecté à votre contrôleur GPIB. Cela peut être dû au fait que tous vos instruments sont éteints, qu'un de vos instruments est en erreur et active une ligne de handshake, que votre câble GPIB est déconnecté de votre carte, ou que votre câble GPIB est cassé.

Solutions :

  • Vérifiez que tous les instruments fonctionnent correctement et que ceux avec lesquels vous souhaitez communiquer sont bien allumés.
  • Débranchez tous les instruments et connectez-les un à un pour déterminer si l'un d'eux est à l'origine du problème.
  • Vérifiez si un câble est desserré ou défectueux et assurez-vous qu'au moins les 2/3 de vos instruments sont sous tension (ceci est une exigence de la spécification IEEE 488).
  • Si le timeout est trop court pour que le driver envoie des octets de commande, augmentez-le.

 

ESTB (15)

Condition d'erreur : Octets d'état d'interrogation en série perdus.

Description : ESTB est renvoyé uniquement par la fonction ibrsp. ESTB indique qu'un ou plusieurs octets d'état d'interrogation en série reçus d'interrogations en série automatiques ont été ignorés en raison du manque d'espace de stockage. Plusieurs octets d'état plus anciens sont disponibles ; cependant, le plus ancien est renvoyé par l'appel ibrsp.

Cause possible : L'instrument active de façon répétée la ligne SRQ.

Solutions :

  • Appelez ibrsp plus souvent pour vider la file d'attente.
  • Désactivez l'interrogation automatique avec la fonction ibconfig (option IbcAUTOPOLL) ou dans l'utilitaire de configuration GPIB.

 

ESRQ (16)

Condition d'erreur : SRQ bloquée en position ON.

Description : ESRQ ne peut être renvoyé que par un appel ibwait au niveau du périphérique, dans lequel vous avez configuré la fonction ibwait pour revenir une fois que le bit RSQ du mot d'état (ibsta) est activé. ESRQ indique qu'il n'est pas possible d'attendre RQS, car la ligne SRQ GPIB est bloquée sur la position ON.

Cause possible : Cette situation peut être provoquée par les événements suivants : un problème de câblage peut maintenir activée la ligne SRQ ; un périphérique inconnu du logiciel active la ligne SRQ - parce que le logiciel ne connaît pas ce périphérique, il ne peut jamais l'interroger en série pour désactiver la ligne SRQ ; ou un testeur de bus GPIB (ou un équipement similaire) peut forcer l'activation de la ligne SRQ.

Solutions :

  • Vérifiez si l'un des périphériques sur le bus (même ceux qui ne sont pas utilisés par votre application) active la ligne SRQ. Déconnectez-les du GPIB, si nécessaire.
  • Inspectez les câbles GPIB et assurez-vous que les connecteurs sont correctement installés.

 

ETAB (20)

Condition d'erreur : Problème de table.

Description : ETAB se produit uniquement avec les fonctions FindLstn et FindRQS. ETAB indique qu'il y a eu un problème avec une table utilisée par ces fonctions.

Cause possible : Dans le cas de FindLstn, ETAB signifie que la table donnée n'a pas assez de place pour contenir toutes les adresses des récepteurs trouvés. Dans le cas de FindRQS, ETAB signifie qu'aucun des périphériques dans la table donnée ne demandait de service.

Solutions :

  • Dans le cas de FindLstn, augmentez la taille des tableaux de résultats.
  • Dans le cas de FindRQS, vérifiez si d'autres périphériques non utilisés par votre application activent la SRQ. Déconnectez-les du GPIB, si nécessaire.

 

Vous trouverez d'autres informations de dépannage dans Codes d'erreur GPIB et solutions courantes (1ère partie) et Codes d'erreur GPIB et solutions courantes (3e partie).