Ich kenne mich nicht mit GPIB aus (naja, jetzt schon als ichs in WikiPedia nachgelesen habe), aber ich kann was zu deinen Fragen sagen.
Vorab:
GPIB ist ein Protokoll auf einer ganz tiefen Ebene. Hier sind also nur hardwarenahe Sachen spezifiziert. Ob ein gerät einen Puffer hat (etc.), liegt nicht in der Spezifikation des GPIB.
' schrieb:1. Es gibt also anscheinend irgendwie einen Puffer und der merkt wann etwas davon ausgelesen wird. Ist das korrekt?
Das ist kein Puffer im Sinne eines Puffers.
Das Endgerät bekommt den Befehl, bestimmte Daten zum Senden bereitzustellen (dein erster GPIB-Befehl). Mit diesem Befehl stellt sich das Gerät zuerst die Daten zusammen, senden darf das Gerät aber nicht. Senden darf es erst, wenn der READ-Befehl (dein zweiter GPIB-Befehl) kommt. Dem Endgerät ist es egal, welche Zeitspanne zwischen dem ersten und dem zweiten Befehl liegt. Wurden die Daten einmal gesendet, sind sie, von Endgerät ausgesehen, weg. Zweimal READ hintereinander geht also zu erst einmal nicht.
Zitat:2. Der Puffer scheint sich im Keithley zu befinden und nicht auf der Controllerkarte, denn wenn ich waehrend der Wartezeit das Keithley ausschalte klappt es nicht mehr. Ist das korrekt?
Klar. Muss so sein. Es muss ja ein bestimmter Ablauf für die DÜ zwischen PC und Endgerät eingehalten werden. Dieser Ablauf ist im übrigen ein "Protokoll". In wie weit ein solches (höheres) Protokoll in GPIB (siehe DIN) integriert ist, weiß ich nicht.
Zitat:3. Ich habe gelesen das VISA eine Art verallgemeinerte, hoehere Sprache fuer GPIB Befehle ist. Kann man das so sagen?
Nein. So allgemein kann man das nicht sagen.
VISA ist eine sehr hohe Protokollebene. Das bedeutet aber (leider), dass, wenn man was mit VISA macht, ein Handle benötigt wird. Dem VISA-System muss man nämlich mitteilen, was man machen will: COM-Schnittstellen, LPT-Schnittstellen, möglicherweise auch GPIB-Schnittstellen, TCP/IP oder was auch immer. Während dieser Initialisierung, "sucht" sich nämlich das VISA-System die entsprechenden (gekapselten) Treiber, die dann genau diese eine Aufgabe machen können.
Möglicherweise gibt es für dein Endgerät VISA-Treiber. Die sind dann aber spezifisch nur für dieses Endgerät anwendbar. Beim Initialisieren musst du dann angeben: "K2000". Dann würde ein Lesebefehl, der jetzt aus zwei GPIB-Befehlen besteht, nur noch ein einziger Aufruf sein.
Zitat:4. Was ist denn dann nun der Unterschied von VISA Write und GPIB Write. Die Befehle die das Geraet erwartet sind doch im Geraet festgelegt und muessen im Manual nach geschaut werden.
VISA ist eine Protokollebene mindestens drei (sag ich jetzt mal so) höher als GPIB.
Ein VISA-Treiber könnte die Befehle kennen, dafür ist die Protokollebene ja höher. Ein VISA-Befehl würde aus mehreren GPIB-Befehlen bestehen - wieder aufgrund der höheren Protokollebene.
Zitat:5. Ist mein VI vom Aufbau her korrekt oder ist es irgendwie unsauber? Ich meine, muessen irgendwelche Verbindungen erst initializiert werden bzw. wieder geschlossen werden, damit es sauberer ist?
Hier zu antworten fehlen mir diverse Hintergrund Infos zu der GPIB-Implementierung in LV.
Wäre ein Öffnen/Schleißen etc. notwendig, müsste das GPIB-VI einen Handle-Eingang haben, der zwangsverdrahtet werden muss.
Zitat:6. Lese ich zweimal, piept das Keithley. Anscheinend heisst das der Puffer war noch nicht leer und der alte Wert wurde ueberschrieben. Das ist aber komisch, weil da doch sicherlich mehr als ein Messwert reinpasst...
Gemäß der niedrigen Protokollebene ist es eben kein Puffer, sondern nur eine (1) Warteposition.
Zitat:7. Kann man noch waehrend der Puffer ausgelesen wird neue Befehle schicken?
Sowas wäre eine Funktion einer höheren Protokollschicht.