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.
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.
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
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
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