Allgemeine Vorgehensweise: Kommunikation mit Messgerät
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!
RE: Allgemeine Vorgehensweise: Kommunikation mit Messgerät
Hallo Serial,
Seite 4-1:
Zitat:<PMT>
<PMT> is a program message terminator. The following three terminators are available.
NL (new line): Same as LF (line feed). ASCII code “0AH”
^END: The END message as defined by IEEE 488.1 (The data byte that is sent with the END message is the last data byte of the program message.)
NL^END: NL with an END message attached. (NL is not included in the program message.)
Daraus lese ich: NL aka LF ist vollkommen ausreichend. Insbesondere wenn du nicht GPIB verwendest…
Zitat:Labview soll also den Speicher des Messgerätes als"externes Speichermedium" sehen. So will ich das machen.
Seite 2-4 beschreibt die Vorgehensweise…
Wie sagten wir schon in Beitrag #7: Handbuch lesen…
Du hast das Handbuch seit Wochen vorliegen, ich habe nur mal 5Min drin geblättert…
RE: Allgemeine Vorgehensweise: Kommunikation mit Messgerät
Vielen Dank für deine Mühe.
Ich habe es schon mit dem "0AH" versucht aber trotzdem haut es nicht hin.
Gibt es im Eigenschaftsknoten einen Pukt, der auf TRUE wechselt, wenn der termchar erreicht ist? (Habe da nichts gefunden) ==> möchte dann eine While-Schleife verwenden und diese mit dieser Bedingung beenden. Also Wenn termChar erreicht, dann Ende.
Ich werde es weiterhin versuchen. Irgendwann muss es ja klappen.
PS: Der Fehler wird am Ausgang des Eigenschaftsknoten rausgegeben.
RE: Allgemeine Vorgehensweise: Kommunikation mit Messgerät
Hallo Serial,
ich weiß ja nicht, was dieser "0AH"-Enum sein soll, aber der rote Punkt am Eingang der PropertyNode sollte dir zu denken geben…
TermChar erwartet einen U8-Wert mit dem ASCII-Code des zu verwendenden Zeichens. Dein Manual enthält eine ASCII-Code-Tabelle!
Zitat:Gibt es im Eigenschaftsknoten einen Pukt, der auf TRUE wechselt, wenn der termchar erreicht ist?
Wozu brauchst du den?
VISARead wartet bis (in dieser Reihenfolge):
- TermChar gelesen
- gewünschte Bytezahl gelesen
- TimeOut erreicht
RE: Allgemeine Vorgehensweise: Kommunikation mit Messgerät
(08.04.2014 10:32 )GerdW schrieb: Hallo Serial,
ich weiß ja nicht, was dieser "0AH"-Enum sein soll, aber der rote Punkt am Eingang der PropertyNode sollte dir zu denken geben…
TermChar erwartet einen U8-Wert mit dem ASCII-Code des zu verwendenden Zeichens. Dein Manual enthält eine ASCII-Code-Tabelle!
Zitat:Gibt es im Eigenschaftsknoten einen Pukt, der auf TRUE wechselt, wenn der termchar erreicht ist?
Wozu brauchst du den?
VISARead wartet bis (in dieser Reihenfolge):
- TermChar gelesen
- gewünschte Bytezahl gelesen
- TimeOut erreicht
Das benötige ich, weil ich den Puffer Schrittweise auslese. Ich möchte das dann mit einer While-Schleife machen. Sobald das Ende des Puffers erreicht ist, soll diese dann abbrechen. Alles aufeinmal lesen klappt bei ein paar Millionen Messwerten nicht.
PS: Das Schleifenweise auslesen funktioniert, nur dass am Ende dieser Fehler ist.
Momentan siehts so aus, wie auf dem Bild zu sehen.
RE: Allgemeine Vorgehensweise: Kommunikation mit Messgerät
Mit schrittweise auslesen meine ich folgendes.
Ich gebe einen :SEND Befehl pmit VISA Write an das Messgerät.
Danach lese ich den Ausgangspuffer des Messgerätes aus. Da es circa 1 Million Messwerte und pro Messwert ca.14 Zeichen sind, lese ich pro Durchlauf 14 Zeichen. Dies Funktioiert auch soweit.
Pufferende: Darüber wird doch die ganze Zeit Diskutiert!?
Du hast mich auf eine Idee gebracht. Jeder Messwert ist mit einem KOMMA vom nächsten getrennt. Ich könnte ja das KOMMA als termchar benutzen und mithilfe einer Schleife alles auslesen.
Der String kommt so aus dem Messgerät raus: Messwert1,Messwert2,Messwert3,Messwert4.....
08.04.2014, 11:43 (Dieser Beitrag wurde zuletzt bearbeitet: 08.04.2014 11:44 von GerdW.)
RE: Allgemeine Vorgehensweise: Kommunikation mit Messgerät
Hallo Serial,
Zitat:Danach lese ich den Ausgangspuffer des Messgerätes aus. Da es circa 1 Million Messwerte und pro Messwert ca.14 Zeichen sind, lese ich pro Durchlauf 14 Zeichen. Dies Funktioiert auch soweit.
Das Oszi unterstützt auch BYTE und WORD als Datenformate. Das würde die Datenmenge auf ein 15tel (oder 7tel für WORD) reduzieren…
Zitat:Du hast mich auf eine Idee gebracht. Jeder Messwert ist mit einem KOMMA vom nächsten getrennt. Ich könnte ja das KOMMA als termchar benutzen und mithilfe einer Schleife alles auslesen.
Jein. Du solltest das Komma nur für diesen Befehl (bzw. dessen Antwort) als TermChar nutzen und sonst wieder den üblichen LF. Außerdem musst du dann immer noch den letzten Wert extra betrachten, da dort sicherlich kein Komma, sondern ein LF als Abschlusszeichen dran hängt! Eine schöne Lösung sieht anders aus…
RE: Allgemeine Vorgehensweise: Kommunikation mit Messgerät
Ich bin noch am probieren und habe folgendes festgestellt:
Die Fehlermeldung erscheint, weil die FOR-Schleife noch Durchläufe machen will, obwohl der Puffer bereits gelesen wurde.
Ich habe dann ein Array mit allen Messwerten, aber die Schleife muss dann unterbrochen werden.
Daher versuche ich mir jetzt etws zu basteln, was eine While-Schleife stoppt, sobald der Puffer vollständig gelesen wurde.
PS: Das mit dem Dateiformat setze ich dann um, wenn das primäre Problem gelöst ist. Danke=)