LabVIEWForum.de
Allgemeine Vorgehensweise: Kommunikation mit Messgerät - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Instrument IO & VISA (/Forum-Instrument-IO-VISA)
+---- Thema: Allgemeine Vorgehensweise: Kommunikation mit Messgerät (/Thread-Allgemeine-Vorgehensweise-Kommunikation-mit-Messgeraet)

Seiten: 1 2 3 4 5 6 7 8


RE: Allgemeine Vorgehensweise: Kommunikation mit Messgerät - Serial - 08.04.2014 08:16

Müsste funktionieren. Hier nochmal ein anderer Link

http://www.yokogawa.co.jp/ftp/dist/ks/im/en/bmi/IMDL850E-17EN.pdf


RE: Allgemeine Vorgehensweise: Kommunikation mit Messgerät - GerdW - 08.04.2014 08:25

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… Hmm


RE: Allgemeine Vorgehensweise: Kommunikation mit Messgerät - Serial - 08.04.2014 10:26

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 - GerdW - 08.04.2014 10:32

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 - jg - 08.04.2014 10:35

Zur Klarstellung:
0AH aus Yokogawa-Anleitung ist gleichbedeutend mit:
ASCII-Code 0xA = <LF> = <NL> = Dezimal 10 = Hex A = 10dez = 0Ahex = ...

Im einfachsten Fall also einfach ein U8 mit Dezimalwert 10 am TermChar anschließen, fertig.

Gruß, Jens

EDIT: Dein Screenshot aus Beitrag #25 war also korrekt.


RE: Allgemeine Vorgehensweise: Kommunikation mit Messgerät - Serial - 08.04.2014 10:48

(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 - GerdW - 08.04.2014 10:56

Hallo Serial,

Zitat:Das benötige ich, weil ich den Puffer Schrittweise auslese. Ich möchte das dann mit einer While-Schleife machen.
Wenn du den Puffer schrittweise auslesen willst, musst du entweder mit einem TermChar oder mit der Bytezahl arbeiten.

Zitat:Sobald das Ende des Puffers erreicht ist, soll diese dann abbrechen.
Woran erkennst du das Ende des Puffers?


RE: Allgemeine Vorgehensweise: Kommunikation mit Messgerät - Serial - 08.04.2014 11:05

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


RE: Allgemeine Vorgehensweise: Kommunikation mit Messgerät - GerdW - 08.04.2014 11:43

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 - Serial - 08.04.2014 13:03

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=)