GPIB-Fehlercodes und gängige Lösungen (Teil 2)

Überblick

Nachfolgend finden Sie eine Liste von GPIB-Fehlern mit entsprechenden Lösungen.

Inhalt

Ein Großteil des folgenden Textes stammt aus dem "NI-488.2 User Manual for Windows", zu dem Sie unter Weitere Ressourcen weiter unten einen Link finden.

 

EDMA  (8)

Situation: Beim Übertragen von Daten mittels DMA tritt ein Fehler auf.

Beschreibung: EDMA zeigt an, dass beim Übertragen von Daten mittels DMA über den GPIB ein DMA-Fehler des Systems aufgetreten ist.

Lösungen:

  • Zum hardwareseitigen Beheben des EDMA-Fehlers müssen Sie Ihre GPIB-Karte lediglich im GPIB-Konfigurationsprogramm so konfigurieren, dass sie keine DMA-Ressource mehr verwendet.
  • Zum softwareseitigen Beheben des EDMA-Fehlers können Sie DMA mit Hilfe der Funktion ibdma deaktivieren.

 

EOIP (10)

Situation: Funktion kann nicht aufgerufen werden, solange ein asynchroner I/O-Vorgang läuft.

Beschreibung: EOIP tritt auf, wenn im Laufe eines asynchronen I/O-Vorgangs ein anderer GPIB-Aufruf getätigt wurde. Während eines asynchronen I/O-Vorgangs können nur die Funktionen ibstop, ibnotify, ibwait und ibonl aufgerufen werden. Bei einem anderen GPIB-Aufruf wird EOIP ausgegeben.

Mögliche Ursache: Während eines asynchronen I/O-Vorgangs wurde eine nicht unterstützte GPIB-Funktion aufgerufen.

Lösung: 

  • Führen Sie vor weiteren GPIB-Aufrufen eine erneute Synchronisierung des Treibers und der Anwendung durch. Die erneute Synchronisierung erfolgt mit Hilfe einer der folgenden Funktionen: ibnotify (wenn der an den ibnotify-Callback übergebene ibsta-Wert CMPL enthält, werden der Treiber und die Anwendung neu synchronisiert); ibwait (wenn der ausgegebene ibsta-Wert CMPL enthält, werden der Treiber und die Anwendung neu synchronisiert); ibstop (bricht den asynchronen I/O-Vorgang ab, so dass der Treiber und Ihre Anwendung sofort neu synchronisiert werden); ibonl (bricht den asynchronen I/O-Vorgang ab, und die Schnittstelle wird zurückgesetzt, so dass der Treiber und Ihre Anwendung sofort neu synchronisiert werden).

 

ECAP (11)

Situation: Operation ist nicht durchführbar.

Beschreibung: ECAP tritt auf, wenn Ihre GPIB-Karte nicht zum Ausführen eines Vorgangs in der Lage ist oder wenn die entsprechende Funktion in der Software deaktiviert wurde und ein Aufruf getätigt wird, für den diese Funktion benötigt wird.

Lösung: 

  • Vergewissern Sie sich, dass der Aufruf erwünscht ist und dass die GPIB-Schnittstellenkarte und der Treiber über den für den Aufruf erforderlichen Funktionsumfang verfügt.

 

EFSO (12)

Situation: Fehler bei Operation im Dateisystem.

Beschreibung: EFSO tritt auf, wenn ein Aufruf von ibrdf oder ibwrtf auf ein Problem beim Ausführen einer Dateioperation stößt. Dieser Fehler signalisiert, dass die Funktion die Datei, auf die zugegriffen wird, nicht öffnen, erstellen, suchen, beschreiben oder schließen kann. Der spezifische Betriebssystemfehlercode für diesen Fehler ist in ibcntl enthalten.

Lösungen: 

  • Stellen Sie sicher, dass der angegebene Dateiname sowie Pfad und Treiber korrekt sind.
  • Stellen Sie sicher, dass der Zugriffsmodus auf die Datei korrekt ist. Versuchen Sie beispielsweise nicht, in eine schreibgeschützte Datei zu schreiben.
  • Stellen Sie sicher, dass genügend Platz auf dem Laufwerk für die Datei vorhanden ist.

 

EBUS (14)

Situaton: Fehler beim Übertragen des Befehlsbytes.


Beschreibung: EBUS tritt auf, wenn bestimmte GPIB-Busfehler während der Ausführung von Gerätefunktionen auftreten. Alle Gerätefunktionen senden Befehlsbytes zur Adressierung und zur Durchführung anderer Busverwaltungsoperationen. Von Geräten wird erwartet, dass sie diese Befehlsbytes innerhalb der Zeitspanne akzeptieren, die durch die Standardkonfiguration oder die ibtmo-Funktion festgelegt ist. EBUS kommt zustande, wenn beim Senden dieser Befehlsbytes ein Timeout aufgetreten ist.

Mögliche Ursache: An Ihren GPIB-Controller sind keine GPIB-Geräte angeschlossen. Das kann daran liegen, dass alle Messgeräte ausgeschaltet sind; dass eines der Messgeräte einen Fehlerzustand angenommen und eine Handshake-Leitung aktiviert hat; dass das GPIB-Kabel nicht mit der Karte verbunden ist oder dass das GPIB-Kabel defekt ist.

Lösungen:

  • Vergewissern Sie sich, dass alle Geräte ordnungsgemäß funktionieren, und dass die Geräte, mit denen Daten ausgetauscht werden sollen, tatsächlich eingeschaltet sind.
  • Trennen Sie alle Messgeräte und schließen Sie sie erneut an, um festzustellen, ob eines der Messgeräte das Problem verursacht.
  • Prüfen Sie nach, ob lose oder fehlerhafte Kabel vorhanden sind, und stellen Sie sicher, dass mindestens 2/3 der Geräte eingeschaltet sind (eine Anforderung der Spezifikation IEEE-488).
  • Wenn die Timeout-Zeitspanne für den Treiber zu kurz ist, um Befehlsbytes zu senden, erhöhen Sie die Timeout-Zeitspanne.

 

ESTB (15)

Situation: Mindestens ein Statusbyte für serielles Pollen ist verloren gegangen.

Beschreibung: ESTB wird nur von der iprsp-Funktion gemeldet. ESTB zeigt an, dass mindestens ein Statusbyte, das von automatischen seriellen Polls empfangen wurde, aufgrund fehlenden Speicherplatzes verworfen wurde. Zwar sind mehrere ältere Statusbytes verfügbar, jedoch wird vom ibrsp-Aufruf das älteste ausgegeben.

Mögliche Ursache: Das Gerät aktiviert wiederholt die SRQ-Leitung.

Lösungen:

  • Sorgen Sie dafür, dass ibrsp häufiger aufgerufen wird, so dass die Queue geleert wird.
  • Deaktivieren Sie das automatische Polling mit der ibconfig-Funktion (Option IbcAUTOPOLL) oder im GPIB-Konfigurationsprogramm.

 

ESRQ (16)

Situation: SRQ bleibt dauerhaft aktiviert.

Beschreibung: ESRQ kann nur von einem ibwait-Aufruf auf Geräteebene herrühren. Die Funktion ibwait ist in diesem Fall so konfiguriert, dass der restliche Programmcode nach Aufruf der Funktion erst nach dem Aktivieren des RSQ-Bits des Statusworts (ibsta) seine Ausführung fortsetzen kann. ESRQ zeigt an, dass das Warten auf RQS erfolglos ist, weil die SRQ-Leitung des GPIB im aktivierten Zustand feststeckt.

Mögliche Gründe: Ein Kabelfehler kann dazu führen, dass die SRQ-Leitung aktiviert bleibt; ein der Software unbekanntes Gerät kann die SRQ-Leitung aktiviert halten – weil die Software dieses Gerät nicht kennt, kann es das Gerät nicht seriell pollen, um die Aktivierung der SRQ-Leitung aufzuheben; ein GPIB-Bustester (oder ein ähnliches Gerät) kann das Aktivieren der SRQ-Leitung erzwingen.

Lösungen:

  • Prüfen Sie, ob eines der Geräte am Bus (auch solche, die nicht Teil Ihrer Anwendung sind) die SRQ-Leitung aktiviert hat. Trennen Sie ggf. das Gerät vom Bus.
  • Untersuchen Sie die GPIB-Kabel und stellen Sie sicher, dass die Anschlüsse ordnungsgemäß sitzen.

 

ETAB (20)

Situation: Tabellenproblem.

Beschreibung: ETAB tritt nur während der Ausführung der Funktionen FindLstn und FindRQS auf. ETAB gibt an, dass ein Problem mit einer von diesen Funktionen verwendeten Tabelle aufgetreten ist.

Mögliche Ursache: Bei FindLstn bedeutet ETAB, dass die betreffende Tabelle nicht genügend Platz zum Speichern aller gefundenen Empfangsgeräte-Adressen hat. Bei FindRQS bedeutet ETAB, dass keines der Geräte in der gegebenen Tabelle einen Dienst angefordert hat.

Lösungen:

  • Erhöhen Sie im Fall von FindLstn die Größe der Ergebnis-Arrays.
  • Prüfen Sie im Fall von FindRQS, ob Geräte außerhalb Ihrer Anwendung die SRQ-Leitung aktivieren. Trennen Sie ggf. das Gerät vom Bus.

 

Der vorliegende Artikel gehört zu einer Artikelreihe. Die dazugehörigen anderen Teile finden Sie unter GPIB-Fehlercodes und gängige Lösungen (Teil 1) und GPIB-Fehlercodes und gängige Lösungen (Teil 3).