Forum: Mikrocontroller und Digitale Elektronik GPIB keine Antwort auf *IDN?


von Alex (Gast)


Lesenswert?

Hallo, weiß nicht ob es hier rein gehört, aber ich bin so langsam am 
verzweifeln. Versuche ein HP8153A (Leistungsmessgerät) über einen ADLINK 
GPIB-USB Adapter über Labview anzusprechen, leider ohne Erfolg. Sowohl 
der Adapter als auch das Gerät werden erkannt und ich kriege eine VISA 
Adresse zugewiesen. Auch wenn ich am Gerät die Adresse ändere, wird 
diese auf dem Rechner aktuallisiert. Die Verbindung besteht also. Nur 
sobald ich versuche Befehle zu schicken, kommt ein Fehler wegen 
Zeitüberschreitung ( sprich keine Antwort vom Gerät). Der HP steht auf 
Listen und Talk, müsst also antworten können. Auch schaltet er in den 
Remote Modus sobald eine Anfrage kommt, nur schickt er nichts zurück. 
Hab zuvor leider noch nicht mit GPIB gearbeitet. Was muss ich beim 
übermitteln von Kommandos beachten ? Habe auch schon alle möglichen 
Abschlußzeichen drangehängt ( \n, CR usw. ) alles ncihts gebracht. Habe 
auch die Labview treiber für das Gerät von der NI Seite runtergeladen, 
die funktionieren auch nicht. Wäre für jegliche Hilfe Dankbar.

von Hegy (Gast)


Lesenswert?

Nur zum Beantworten der Frage, falls jemand per Suche auf diesen Artikel 
stößt, ist ja schon fast fünf Monate alt....

Nicht jedes Gerät gibt auf den "*IDN?" Befehl eine Rückmeldung. Ich 
meine es waren auch Toellner Netzteile der 1200 Watt Klasse, die darauf 
nicht reagieren. Grund ist, sofern ich es noch richtig im Kopp habe, daß 
diese Geräte nach der IEEE-488 Norm arbeiten und da gibt es lt. 
Spezifikation diesen Befehl nicht. Erst als viel später GPIB rauskam mit 
einer Erweiterung des Befehlssatzes, war das möglich.

Zwar steht in deinem Frage-Artikel nicht der Befehl, aber in dem 
Thread-Titel. Daher gehe ich mal davon aus, daß du es nur mit dem Befehl 
versucht hast.

von Carsten S. (dg3ycs)


Lesenswert?

Hi,

um mal die Richtigstellung richtig zu stellen:
GPIB und IEEE488 ist eigendlich alles dassselbe.

Den IDN? Befehl gibt es aber tatsächlich nicht bei allen Geräten.
IDN? ist erst ab IEEE488.2 spezifiziert. Ältere Geräte, aber auch einige 
neuere arbeiten aber nur nach IEEE488.1. Wobei gerade die neueren Geräte 
nach 488.1 Standart oft auch IDN? und einige andere Befehle des .2 Modes 
unterstützen. Der Grund warum die nur als .1 Verkauft werden liegt in 
anderen Unterschieden.

Wenn es Probleme mit der Kommunikation gibt, dann kann es auch am 
eingestellten Verfahren der 
Befehlsübermittlungsabschlussidentifikation oder kürzer "String 
Termination" liegen.
Es gibt einmal eine sogennate EOI Leitung. EOI steht für "End or 
Identify", diese Leitung wird gesetzt wenn das letzte Byte einer 
Übertragung erreicht ist und somit die Übertragung beendet ist.

Neben der ENDE Erkennung übder die EOI Leitung gibt es noch die 
Möglichkeit eines Termination Bytes, also ein Bestimmtes Byte das als 
letztes übertragen wird und das Ende der Übertragung anzeigt.

Jetzt kann man bei vielen Geräte einstellen ob man die Erkennung über 
EOI, über das Terminierungsbyte oder aber gar beides Zusammen nutzen 
will. Passen die Einstellungen von Sender und Empfänger nicht zusammen, 
funktioniert es einfach nicht.

Zu den Bezeichnugnswirrwar:
Der IEEE488 Bus wurde ursprünglich von der Firma HP entwickelt und dort 
bei MEssgeräten eingesetzt. Er nannte sich da HP-IB. (=HP Instrumennten 
BUS) Dann begannen aber auch andere diesen Bus zu verwenden, ausserdem 
wurde die Anwendung auch ausserhalb des reinen Messgerätebereiches 
betrieben. Z.B. Verbindung Computer Laufwerke, oder Computer Drucker 
usw...
Da wurde dann aus dem HP-IB dann GP-IB (B= General Purpose Interface BUS 
= Universeller Interface Bus)

Da die Bedeutung dieses Busses immer weiter zunahm wurde er dann 
schließlich auch von weiteren Institutionen stadartisiert.
In den USA dann von der IEEE als Standart 488, von der ANSI als Standart 
MC 1,1 und in Deutschland als IEC-625. Wobei alles dasselbe meint. Nur 
die teilweise unterstützten Mindestbefehle unterscheiden sich bei den 
Verschiedenen Revisionen. Natürlich unterscheidne sich auch die 
möglichen Arten der Datenübertragung, es wurde immer schneller, aber das 
ist ALLES abwärtskompatibel. Man kann problemlos ein NEUES R&S Gerät mit 
HS488 Funktion an einen alten C64 mit IEC Bus hängen und damit bedienen. 
Umgekehrt funktioniert das auch!
Erwähnenswert ist vieleicht noch, das sich die Standart IEEE488 und 
IEC-625 allerdings im Punkt des Steckers unterscheiden. IEEE488 
beschreibt den alseits bekannten 24Poligen Centronics Stecker, IEC 625 
hingegen einen normalen 25 Poligen Sub-D Stecker (meine aber auch schon 
die Version mit 23Poligen SubD gesehen zu haben). Mit hilfe eines 
Adapters ist aber schnell für Kompatiblität gesorgt. Die sonstigen Specs 
sind 100% Identisch.

Gruß
Carsten

von Ralph B. (rberres)


Lesenswert?

Carsten hat einen großen Teil schon richtig erklärt.

Bliebe noch die Frage ob das Gerät den SCPI Zeichensatz implementiert 
hat oder noch mit alten scryptischen Zeichen, die für jedes Gerät 
erfahrungsgemäß anders ausgesehen, hat.
Ich kenne jetzt dein Monitorprogramm nicht. Aber fast jede IEC-Buskarte 
hat in seinen Treiberpaket auch ein Zusatzprogramm, in der man einfach 
ein Befehl eingeben kann um zu sehen ob und wie das Gerät reagiert.
Manche Geräte unterscheiden , ob es ein Befehl zur Einstellung eines 
Gerätes ist, oder ein Befehl zur Abfrage eines Gerätes ist mit einen ? 
hinter dem Befehl. Also z.B. bei einen Signalgenerator lautet der Befehl 
zur Frequenzeinstellung "F100MHz" die Abfrage der Frequenz aber "F?".
Wieder andere Geräte z.B Counter wollen erst ein"F" und dann hinterher 
ein Trigger in der Form z.B."T" als Auslösen der zuvor gewählten 
Funktion haben. Das muss man im Handbuch des Gerätes nachschauen.

Dann wie Cartsen schon geschrieben hat auf das EOI achten. Bei vielen 
Geräten kann man entweder mit Dipschalter , oder über ein Menue 
konfigurieren, wie er auf das letzte Datenbyte reagiert. EOI Leitung? CR 
oder ( und ) LF als letztes Zeichen in einen Datenstring.

Die Computerseitige IECbús Schnittstelle muss auf de´n gleichen EOI 
Modus eingestellt sein. Keinesfalls wird in den Ascii Befehle die man 
eingibt ein CR oder LF drangefügt. Das macht der Computer gegebnfalls 
selber.

Was ich auch schon erlebt habe ( Rohde&Schwarz BDS das ist der digitale 
Bildspeicher zum Swob5 ) das ein Gerät keine sonst übliche Ascii Befehle 
kennt, sondern die Befehle ( sogar die Gerätenachrichten ) in Binärfile 
haben wollte. Das gab ganz lustige Effekte beim erstellen des 
Steuerprogrammes. An diesem Fehler habe ich beinahe ein halbes Jahr 
gesucht, bis ich dahinter gekommen bin.

Ralph Berres

von Ralph B. (rberres)


Lesenswert?

Hallo Alex

Ich habe mal nachgeschaut.

Lade dir mal dieses PDF File runter
http://cp.literature.agilent.com/litweb/pdf/08153-90011.pdf
Da stehen sämtliche Befehle, die das Gerät kann, drin.
Es hat die heute allgemein gültige SCPI Sprache implementiert.

Es reagiert auch auf das "IDN?", und sollte sich mit der 
Typenbezeichnung, Softwarestand zurückmelden. Wenn sich der Bus 
aufhängt, stimmt entweder was nicht mit der Konfiguration deinem IEC-Bus 
Adapter, ( EOI?  Das Gerät antwortet mit CR als Endzeichen ), oder du 
gibst die Befehle falsch ein.

Eventuell könnte es noch sein , das ein anderes Gerät am Bus dein Bus 
blockiert, weil er aus welchen Grund auch immer die Handshakeleitung 
nicht freigibt. ( Hatte ich auch schon mal bei einem Rohde&Schwarz SMLU 
Fernbedienungscontroller ).
Verbinde mal dein HP8153 als einziges Gerät mit deinen PC, um das 
auszuschließen.

Ralph Berres

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.