Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
28.08.2007, 07:49 (Dieser Beitrag wurde zuletzt bearbeitet: 28.08.2007 07:49 von Y-P.)
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
Problem mit VISA: Lesen ...
OK. Jetzt wird's etwas komplizierter.....
Die Geräte an sich benötigen nicht nur einen READ?-Befehl. Wenn Du einen reibungslosen Ablauf möchtest, dann solltest Du Fehlerregister,... vor dem Absenden eines neuen Befehls leeren, das Gerät auf "bereit" schalten,.....
Die Befehle, die ich z.B. bei meinen Agilent-Geräten verwende siehst Du im Anhang.
Da habe ich Dir ein Bsp. für eine Gleichspannungsmessung gemacht. In der Realität habe ich da dann auch noch Widerstandsmessungen und AC-Messungen dabei, deren Befehle ich je nach Auswahl (per Cases) erzeuge.
Du solltest Dir auf jeden mal die Systembefehle anschauen (*CLS, *SRE 0,...).
Wenn Du die Befehle hintereinander schickst, dann musst Du aber aufpassen, dass ein "VISA Read" wirklich nur hinter einem Befehl kommt, der auch ein "?" enthält, also z.B. *IDN?, oder *READ?....
In meinem Bsp. siehst Du, dass ich zwischen den Befehlen ;: als Trennzeichen habe. Die verwende ich, um die Befehle nachher auseinanderzupflücken und auf ? zu überprüfen. Ist ein ? drin (True), wird ein Case mit VISA Read ausgeführt, ist kein ? drin, wird nur der VISA Write-Befehl ausgeführt.
Statt :; kannst Du auch irgendwas anderes verwenden. Es sollte halt nicht ein einzelnes Zeichen sein, dass in einem Befehl vorkommt.
Den Befehl kannst Du mit "Match Pattern" und einer Schleife mit Schieberegister zerlegen.
Ich hab jetzt mal das wieder geändert, weil das mit dem CR auch nicht so recht wollte. Hab einfach mal das übernommen, was im LabVIEW <-> Serial.VI steht .. also das Texteingabefeld, und dann am ENDE CR/LF gemacht .. .das klappt jetzt ... aber nun gibts ne Statusmeldung, wenigstens keine Fehlermeldung mehr:
1073676294 Die übertragene Anzahl an Bytes entspricht der angeforderten Anzahl. Es sind möglicherweise weitere Daten verfügbar.
Und das Agilent gibt mir als Fehler: -410 Querry Interrupted.
Und nu bin ich mit meinem wenigen Latein am Ende ...
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Erstmal vielen Dank für die ausführliche Antwort. Auf den ersten Blick erschlägt es einen, aber ich werd mich jetzt damit auseinandersetzen ...
Mal noch was anderes, ich hab auch im Forum gesucht und bin immer wieder auf die Geräte - Treiber gestoßen, hab auch schon auf der NI seite danach geschaut. Aber was es damit auf sich hat hab ich noch nicht so recht begriffen. Kannst du mir erklären was man damit machen kann? Das wär knorke!
"Es wurde schon wieder eine Leiche aus der Themse gezogen!" - "Erschreckend! Wird in diesem Land denn keiner mehr erschossen?!"
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
Problem mit VISA: Lesen ...
Gerätetreiber sind im Endeffekt nichts anderes als VIs, die schon gewisse Funktionen der Geräte beinhalten. Da gibt es z.B. einen Eingang für die Auswahl der Spannung (AC/DC), einen Eingang für den Triggermodus,....
Ich persönlich bin aber kein Freund der fertigen VIs, da man dort nicht so flexibel ist, wie man es manchmal gerne hätte.
Ich würde die Befehle einfach wie bisher so zusammenbauen, wie man sie benötigt.
Gruß Markus
' schrieb:Guten Morgen!
Erstmal vielen Dank für die ausführliche Antwort. Auf den ersten Blick erschlägt es einen, aber ich werd mich jetzt damit auseinandersetzen ...
Mal noch was anderes, ich hab auch im Forum gesucht und bin immer wieder auf die Geräte - Treiber gestoßen, hab auch schon auf der NI seite danach geschaut. Aber was es damit auf sich hat hab ich noch nicht so recht begriffen. Kannst du mir erklären was man damit machen kann? Das wär knorke!
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
' schrieb:Gerätetreiber sind im Endeffekt nichts anderes als VIs, die schon gewisse Funktionen der Geräte beinhalten. Da gibt es z.B. einen Eingang für die Auswahl der Spannung (AC/DC), einen Eingang für den Triggermodus,....
Ich persönlich bin aber kein Freund der fertigen VIs, da man dort nicht so flexibel ist, wie man es manchmal gerne hätte.
Ich würde die Befehle einfach wie bisher so zusammenbauen, wie man sie benötigt.
Gruß Markus
Hmm ok ist ein Argument ... Es ist aber so, dass ich eigentlich relativ wenig Felxibilität will. Ich bin nur noch bis zum 5.9. in der Firma ( dann geht das Studium weiter ). Es soll eien Inbetriebnahmestand für Gasbrenner werden. Hier ist das prob, dass die Leute, wenns zu komplex wird ( das ist mit vielen Einstellmöglichkeiten der FAll ) dazu neigen solche Dinge nicht zu benutzen. Und das würd ich gern vermeiden. Verstehst du?
Ich würde mir die Gerätetreiber trotzdem gerne mal ansehen. Vllt ist ja was brauchbares dabei.
Auf alle Fälle schon wieder mal Danke!
"Es wurde schon wieder eine Leiche aus der Themse gezogen!" - "Erschreckend! Wird in diesem Land denn keiner mehr erschossen?!"
So .. ich hab mich nun ne Weile damit befasst. Wenn ich das richtig verstanden habe, dann kann ich die Befehle:
- *CLS
- *SRE 0
- *ESE 0
- STAT:PRES
erstmal übernehmen, da sich das nicht speziell auf die Messung von Gleichspannung bezieht. Seh ich das richtig?
So, ab dann wird erstmal speziell für die Gleichspannungsmessung. Ich will aber Temperaturen messen. Nun kann man da ja ne Menge einstellen. Die Frage die sich mir stellt ist nun: muss ich wirklich über "CONFIG:TEMP ...." gehen? Muss ich wirklich alles einstellen? Ich dachte bisher, dass ich das schon am Gerät eingestellt habe, und nun nur noch die Werte auslesen will. Also nur Zahlen ( Kann sein, dass ich mich jetzt ziemlich schwammig ausdrücke ...).
Die letzten 3 Befehle:
- *ESR?
- *READ?
- *SYST:ERROR?
kann ich, wenn ich das immernoch richtig sehe, auch so übernehmen. Der Knackpunkt ist nun wie schon erwähnt, ob ich noch Einstellungen vornehmen muss. Ich persönlich denke nicht. Also ich denke ich kann auf:
CONF:TEMP TC ....
verzichten, da es ja schon eingestellt ist.
Was mir noch Probleme bereitet, sind folgende 3 Befehle:
- RANG:AUTO ON ( hat das jetzt was mit RANGe zu tun? wenn ja, dann bezieht es sich ja nicht mal speziell auf die Gleichspannungsmessung, und ich kann es eigentlich auch übernehmen oder? 2-3 Worte dazu wären echt knorke... )
- TRIG:SOUR IMM ( Keine Ahnung was dieser Befehl bedeutet)
- TRIG:DELAY:AUTO ON
Sooo, ich hoffe ich bin mit meinen Überlegungen nicht ganz vorbeigeschossen ...
DANKE!
MfG die Cassio
"Es wurde schon wieder eine Leiche aus der Themse gezogen!" - "Erschreckend! Wird in diesem Land denn keiner mehr erschossen?!"
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
Problem mit VISA: Lesen ...
Deine Überlegungen sind doch in Ordnung.
Eigentlich müsstest Du das CONFIG:TEMP.... nicht mehr einstellen, wenn Du das alles nur einmal am Gerät einstellst.
TRIG.... sind die Triggereinstellungen und die findest Du im Handbuch.
Gruß Markus
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
' schrieb:Deine Überlegungen sind doch in Ordnung.
Eigentlich müsstest Du das CONFIG:TEMP.... nicht mehr einstellen, wenn Du das alles nur einmal am Gerät einstellst.
TRIG.... sind die Triggereinstellungen und die findest Du im Handbuch.
Gruß Markus
Na da bin ich ja beruhigt, dass ich nicht ganz am Thema vorbei bin.
Ich werde also die Triggereinstellungen mal übernehmen und mal schauen was passiert.
Hmm .. diese SENSE - Sache kann ich mir doch eigentlich auch schenken oder?
Und den ganzen String schicke ich via VISA: Write an den Datenlogger nicht war?
"Es wurde schon wieder eine Leiche aus der Themse gezogen!" - "Erschreckend! Wird in diesem Land denn keiner mehr erschossen?!"
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
Problem mit VISA: Lesen ...
SENSE müsstest Du auch weglassen können.
Du schickst die Befehle ohne "?" mit VISA Write und die Befehle mit "?" mit VISA Write und VISA Read, darum habe ich Dir ja geschrieben, wie Du die Befehle auseinanderpflücken kannst. Statt dem Match Pattern kannst Du auch Spreadsheet-String to Array verwenden.... Das ist noch einfacher.
Gruß Markus
' schrieb:Na da bin ich ja beruhigt, dass ich nicht ganz am Thema vorbei bin.
Ich werde also die Triggereinstellungen mal übernehmen und mal schauen was passiert.
Hmm .. diese SENSE - Sache kann ich mir doch eigentlich auch schenken oder?
Und den ganzen String schicke ich via VISA: Write an den Datenlogger nicht war?
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
' schrieb:SENSE müsstest Du auch weglassen können.
Du schickst die Befehle ohne "?" mit VISA Write und die Befehle mit "?" mit VISA Write und VISA Read, darum habe ich Dir ja geschrieben, wie Du die Befehle auseinanderpflücken kannst. Statt dem Match Pattern kannst Du auch Spreadsheet-String to Array verwenden.... Das ist noch einfacher.
Gruß Markus
Hmmm ok ... Hammer ... mal sehen ob ich das richtig verstanden hab ... ich probiers nachm Mittagessen aus ...
"Es wurde schon wieder eine Leiche aus der Themse gezogen!" - "Erschreckend! Wird in diesem Land denn keiner mehr erschossen?!"
Also tut mir leid wenn ich mich hier absolut prasselig anstelle, aber bis vor 3 Wochen wusste ich nocht nicht mal das es die Dinge, mit denen ich mich hier befasse, überhaupt gibt.
Ich habe mal versucht, dass was du mir gesagt hast:
Zitat:Du schickst die Befehle ohne "?" mit VISA Write und die Befehle mit "?" mit VISA Write und VISA Read ...
umzusetzen. Mir ist klar, dass das absolut umständlich ist, aber es geht ja ums Prinzip. Ich schicke zuerst nur die Befehle ohne ? am Ende an VISA: Write, dann nehm ich die Befehle mit ? und schicke sie über ein weiteres VISA: Write und das VISA: Read.
Ist das Prinzip so richtig? Ich weiß, dass ich grad mit der Kirche ums Dorf renne, aber ich will ja das Prinzip verstehen...
"Es wurde schon wieder eine Leiche aus der Themse gezogen!" - "Erschreckend! Wird in diesem Land denn keiner mehr erschossen?!"