Nachfolgend finden Sie eine Liste von GPIB-Fehlern mit entsprechenden Lösungen.
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.
Fehlerbedingung: Treiberfehler.
Beschreibung: EDVR wird ausgegeben, wenn die GPIB-Hardware nicht richtig konfiguriert ist oder wenn der an die ibfind-Funktion übergebene Schnittstellen- oder Gerätename falsch ist.
Mögliche Ursache: EDVR-Fehler treten häufig auf, wenn der Schnittstellenname einer Karte oder der Gerätename falsch buchstabiert ist. Zum Beispiel tritt dieser Fehler auf, wenn der Standard-Schnittstellenname für NI-Karten ("GPIB0") mit dem Buchstaben "O" anstelle einer Null angegeben wird ("GPIBO"). Dieser Fehler kann auch auftreten, wenn der an die Funktion ibdev übergebene Kartenindex falsch ist. Die Kartennummer ist der Zahlenanteil des Namens der Schnittstelle für die GPIB-Karte, doch viele Benutzer gehen fälschlicherweise davon aus, dass die Nummer die Primäradresse der Karte ist. Beispiel: Sie installieren in Ihrem Computer eine PCI-GPIB-Karte und weisen dieser die Primäradresse 2 zu. Der Standard-Schnittstellenname für die Karte ist jedoch "GPIB0", das heißt, die Nummer der Karte lautet 0 und nicht 2.
Lösungen:
Fehlerbedingung: Für die Funktion muss die GPIB-Karte der verantwortliche Controller (CIC) sein.
Beschreibung: Für bestimmte Funktionen muss die GPIB-Karte der verantwortliche Controller sein. Die betreffenden Funktionen sind im "NI-488.2 Function Reference Manual" aufgeführt, zu dem Sie weiter unten einen Link finden. Ihre GPIB-Karte ist per Standardeinstellung der System-Controller. Dies ist jedoch nicht das Gleiche wie der verantwortliche Controller. Der System-Controller kann jederzeit zum verantwortlichen Controller werden (auf jedem GPIB kann es immer nur einen System-Controller geben).
Mögliche Ursache: Mögliche Ursache: ECIC-Fehler kommen häufig zustande, wenn zum Beginn des Programms der Befehl "Interface Clear" nicht gesendet wird.
Lösungen:
Fehlerbedingung: Funktion hat keine Listener gefunden.
Beschreibung: Die GPIB-Kommunikation erfordert ein einzelnes Sendegerät (Talker) zum Schreiben von Datennachrichten und ein oder mehrere Empfangsgeräte (Listener) zum Lesen von Datennachrichten. ENOL tritt in der Regel auf, wenn ein Schreibvorgang unternommen wurde, jedoch keine Empfangsgeräte adressiert werden oder unter den angegebenen Adressen keine Empfangsgeräte vorhanden sind. Bei einem Sendegerät zeigt ENOL an, dass die GPIB-Adresse, mit der kommuniziert werden soll, nicht die GPIB-Adresse des an den Bus angeschlossenen Geräts ist.
Mögliche Ursache: Das Messgerät, mit dem kommuniziert werden soll, befindet sich nicht an der erwarteten Primäradresse, das Messgerät ist nicht eingeschaltet oder das Kabel zum Messgerät ist entweder nicht eingesteckt oder defekt.
Lösungen:
Fehlerbedingung: Die GPIB-Karte (GPIB0 oder GPIB1) wurde falsch adressiert.
Beschreibung: EADR tritt auf, wenn die GPIB-Karte der verantwortliche Controller ist und sich vor Beginn der Lese- und Schreibfunktionen nicht richtig adressiert. Die Fehlermeldung EADR wird auch von der Funktion ibgts ausgegeben, wenn ein Shadow-Handshake angefordert wird und die GPIB-ATN-Leitung deaktiviert ist. In diesem Fall kann der Shadow-Handshake nicht ausgeführt werden, und der Fehler dient als entsprechender Hinweis.
Mögliche Ursache: Ihre GPIB-Karte ist auf die gleiche Primäradresse wie das Messgerät konfiguriert, mit dem kommuniziert werden soll.
Lösungen:
Fehlerbedingung: Ungültiges Argument für einen Funktionsaufruf.
Beschreibung: EARG tritt auf, wenn an einen Funktionsaufruf ein ungültiges Argument übergeben wird.
Mögliche Ursache: Nachfolgend einige Beispiele: Die Funktion ibtmo wird mit einem Wert aufgerufen, der nicht im Bereich von 0 bis 17 liegt (die zulässigen Timeout-Werte entsprechen einer Wertetabelle von 0 bis 17, wobei die Standardeinstellung 13 einem Timeout von 10 Sekunden entspricht). Die Funktion ibeos wird mit wertlosen Bits im höchstwertigen Byte des zweiten Parameters aufgerufen, oder ibpad (oder ibsad) wird mit ungültigen Adressen aufgerufen.
Lösungen:
Fehlerbedingung: Situation: Die GPIB-Karte ist nicht der System-Controller.
Beschreibung: ESAC tritt auf, wenn ibsic, ibsre, SendIFC oder EnableRemote aufgerufen wird und die GPIB-Karte nicht als System-Controller fungieren kann.
Mögliche Ursache: Die GPIB-Karte ist nicht als System-Controller konfiguriert.
Lösungen:
Fehlerbedingung: I/O-Operation wurde abgebrochen.
Beschreibung: EABO weist darauf hin, dass ein I/O-Vorgang abgebrochen wurde.
Mögliche Ursache: Mögliche Ursache: EABO tritt normalerweise bei einem Timeout während eines Lese- oder Schreibvorgangs auf. Der Fehler kann jedoch auch daher rühren, dass während eines I/O-Vorgangs ibstop, ibclr oder eine ähnliche Funktion aufgerufen wurde. Beim Schreiben von Daten an eine PCI-GPIB-Karte kann es zu einem Timeout kommen, wenn das PCI-Bus-Mastering (eine Option im BIOS Ihres Computers) nicht aktiviert ist. Beim Lesen von Daten kann ein Timeout auftreten, wenn das Sendegerät den letzten Befehl nicht verstanden hat und daher nicht reagiert. Wenn ein Gerät nichts sendet, kommen folgende Ursachen dafür in Frage:
Lösungen:
Fehlerbedingung: GPIB-Karte nicht vorhanden.
Beschreibung: ENEB tritt auf, wenn unter der im GPIB-Konfigurationsprogramm angegebenen I/O-Adresse keine GPIB-Karte vorhanden ist. Das Problem kann folgende Ursachen haben: Die Karte ist nicht physisch an das System angeschlossen; die während der Konfiguration angegebene I/O-Adresse weicht von der Einstellung der Karte ab; es besteht ein Systemkonflikt mit der Basis-I/O-Adresse; der Schnittstellenname der Karte unterscheidet sich vom Schnittstellennamen der Ihrem Gerät zugeordneten Karte.
Lösungen:
Fehlerbedingung: 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:
Fehlerbedingung: 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 asynchroner I/O-Operationen können nur die Funktionen ibstop, ibnotify, ibwait, oder ibonl verwendet 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:
Fehlerbedingung: 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:
Fehlerbedingung: Dateisystemfehler.
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 diese Bedingung ist in ibcntl enthalten.
Lösungen:
Fehlerbedingung: Befehlsbyte-Übertragungsfehler.
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:
Fehlerbedingung: Statusbyte für den seriellen Poll gingen verloren.
Beschreibung: ESTB wird nur von der ibrsp-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:
Fehlerbedingung: SRQ hängt in ON-Position fest.
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 nicht möglich ist, weil die SRQ-Leitung des GPIB im aktivierten Zustand feststeckt.
Mögliche Ursache: 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:
Fehlerbedingung: 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:
Fehlerbedingung: Die GPIB-Schnittstelle ist für den Zugriff gesperrt.
Mögliche Ursache: Dieser Fehler tritt üblicherweise auf, wenn zwei oder mehr Prozesse auf dieselbe Schnittstelle zugreifen und die Schnittstelle bereits von einem Prozess belegt wurde. Wenn ein Vorgang aufgrund der vorhandenen Sperre an der Schnittstelle nicht ausgeführt werden kann, wird dieser Fehler gemeldet. Er wird auch ausgegeben, wenn ein Prozess versucht, die Sperre einer Schnittstelle aufzuheben und keine solche Sperre vorhanden ist.
Lösung:
Fehlerbedingung: ibnotify-Callback konnte nicht wieder aktiviert werden.
Mögliche Ursache: Dieser Fehler tritt auf, wenn NI-488.2-Anwendungen mit asynchroner Benachrichtigung (ibnotify) arbeiten. Diese Funktion ist nützlich, wenn Ihre Anwendung über das Auftreten von einem oder mehreren GPIB-Ereignissen asynchron benachrichtigt werden soll. Die Ereignisbenachrichtigung erfolgt über eine Callback-Funktion. Die Callback-Funktion wird beim Aufruf von ibnotify im NI-488.2-Treiber registriert. Der Fehler gibt an, dass diese Callback-Benachrichtigung sich nicht wieder aktivieren konnte, weil sie einen unzulässigen Wert ausgegeben hat oder ein schwerer Treiberfehler (EDVR) aufgetreten ist.
Lösungen:
Fehlerbedingung: Eingangs-Handle ist ungültig.
Mögliche Ursache: Mehrere GPIB-Befehle nehmen das Eingangs-Handle der Karte oder des Geräts als Eingangsparameter an, wodurch dieser Fehler verursacht werden kann. Dieser Fehler kann jedoch unter diversen Umständen auftreten. Einige Situationen sind nachfolgend aufgeführt:
Lösungen:
Fehlerbedingung: Warten auf ein angegebenes Handle.
Mögliche Ursache: Mögliche Ursache: Ein Prozess wird in mehreren Threads ausgeführt, von denen zwei oder mehr auf ein und dieselbe Schnittstelle zugreifen. EWIP zeigt an, dass bereits ein ibwait-Aufruf am angegebenen Einheitsdeskriptor ausgeführt wird. Dieser tritt auf, wenn ein Thread bereits einen ibwait-Aufruf mit demselben Deskriptor durchführt und ein anderer Thread versucht, ibwait am selben Deskriptor aufzurufen.
Lösung:
Fehlerbedingung: Die Ereignisbenachrichtigung wurde abgebrochen, da die Schnittstelle zurückgesetzt wurde.
Mögliche Ursache: ERST tritt auf, wenn die Ereignisbenachrichtigung aufgrund eines Rücksetzvorgangs an der Schnittstelle abgebrochen wurde. Ein im Treiber ausstehender ibwait-Aufruf gibt in folgenden Fällen ERST aus:
Ein ibnotify-Callback kann im folgenden Fall mit ERST aufgerufen werden:
Lösungen:
Fehlerbedingung: Die Schnittstelle hat Strom verloren.
Mögliche Ursache: EPWR tritt auf, wenn die Stromzufuhr einer Schnittstelle unterbrochen wird. Das passiert häufig, wenn das System in den Standby-Modus schaltet oder aus dem Standby-Modus zurückkehrt.
Lösungen: