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

LabVIEWForum.de

Normale Version: Allgemeine Vorgehensweise: Kommunikation mit Messgerät
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4 5 6 7 8
Hallo Serial,

du bekommst in der Schleife schon Warnungen:
Zitat:Fehler 1073676294 bei Nicht identifizierte Position Mögliche Ursachen:
VISA: (Hex 0x3FFF0006) Es wurden weniger Bytes übertragen als angefordert. Möglicherweise sind noch weitere Daten verfügbar.
Stimmt deine Angabe "14" mit dem Manual überein?

Der Fehler zum Schluß hat folgende Bedeutung:
Zitat:Fehler -1074000000 bei Nicht identifizierte Position Mögliche Ursachen:
LabVIEW: Problem bei der Gerätefehlerabfrage.
Wie und wo kommt dieser Fehler zustande? Schau doch mal innerhalb dieses Gerätetreiber-VI nach…
Das mit der "14" ist eher Schwannmig, da das ein abgezählter Wert ist. Die Teilstrings werden aneinander gereiht und dann mithilfe des Trennzeichens in ein Array überführt. Ich habe nochmal nachgesehen. Nicht jeder "Block" hat die gleiche Anzahl an Zeichen. Und ein Terminator (EOL) am Ende ist auch nicht vorhanden.


Habe nochmal ein Screen angehängt an dem zu sehen ist, wo der Fehler im sub VI close entsteht.


Ich hatte noch eine Idee, welche aber nicht funktioniert: Bevor der Puffer geleen wird mithilfe von "Bytes in Port" die anstehenden Bytes ermitteln.
Dies funktioniert aber nicht, da dann eine 0 angezeigt wird (mit Wartezeit zum Puffer füllen)
Hallo Serial,

Zitat:Habe nochmal ein Screen angehängt an dem zu sehen ist, wo der Fehler im sub VI close entsteht.
Das ist wieder nur ein subVI aus diesem Gerätetreiber. Da musst wohl noch etwas tiefer hineintauchen…

Zitat:Ich hatte noch eine Idee, welche aber nicht funktioniert: Bevor der Puffer geleen wird mithilfe von "Bytes in Port" die anstehenden Bytes ermitteln.
Dies funktioniert aber nicht, da dann eine 0 angezeigt wird (mit Wartezeit zum Puffer füllen)
Die Nutzung von BytesAtPort wurde hier schon so oft erläutert, da kannst du einfach mal suchen!
Nur soviel: BytesAtPort ist fast nie die richtige Funktion, aber deren Nutzung wird in den mit LabVIEW mitgelieferten Beispielen gezeigt…

Zitat:Nicht jeder "Block" hat die gleiche Anzahl an Zeichen. Und ein Terminator (EOL) am Ende ist auch nicht vorhanden.
Was ist das denn für ein Gerät? Entweder sollten Botschaften klar definierte Längen haben - oder eben ein TermChar nutzen!
Dann werde ich tiefer in den Treiber abtauchen.

Die Benutzung von Bytes at Port schaue ich mir an.

Das Gerät ist ein digitales Oszolloskop von Yokogawa.



Vielen Dank für die Hilfe. Ich versuche mich jetzt an der Lösung!!!
Hallo,

ich habe nochmal geschaut und es gibt doch termination chars. Im Manual steht, dass der termination char "NL^END" ist.
Jetzt muss ich nurnoch rausfinden, wie man dies in Labview realisiert. Ist dieser Ansatz denn zumindet richtig ?

Wie ich bereits rausgefunden habe handelt es sich dabei um einen "multiblen" terminator, welcher in LV besonders behandelt werden muss (mit search in string). Daher ist der Ansatz im Bild wohl nicht 100% der richtige?
Hallo Serial,

du hast sicher schon einmal den Hinweis mit dem AutoCleanUp gehört. Deine Verdrahtung entspricht so gar nicht den StyleGuide-Vorgaben von NI…

Zitat:Im Manual steht, dass der termination char "NL^END" ist.
Aha, nun also doch… Box
Wenn das da so steht, dann steht dort garantiert auch, was diese Zeichen bedeuten. Dass das "NL" mit dem ASCII-"LF" übereinstimmt, ist sehr wahrscheinlich. Was das "^END" bedeuten soll, weiß ich nicht - aber das steht da sicherlich auch irgendwo beschrieben…

Zitat:Wie ich bereits rausgefunden habe handelt es sich dabei um einen "multiblen" terminator, welcher in LV besonders behandelt werden muss (mit search in string).
Wenn du herausgefunden hast, was dieses "^END" bedeutet, dann könntest du auch dieses als TermChar einstellen…

Manche Geräte lassen sich auch hinsichtlich Messageformat und TermChar (um)konfigurieren, auch da lohnt ein Blick ins Manual.
(08.04.2014 07:54 )GerdW schrieb: [ -> ]Hallo Serial,

du hast sicher schon einmal den hinweis mit dem AutoCleanUp gehört. Deine Verdrahtung entspricht so gar nicht den StyleGuide-Vorgaben von NI…

Zitat:Im Manual steht, dass der termination char "NL^END" ist.
Aha, nun also doch… Box
Wenn das da so steht, dann steht dort garantiert auch, was diese Zeichen bedeuten. Dass das "NL" mit dem ASCII-"LF" übereinstimmt, ist sehr wahrscheinlich. Was das "^END" bedeuten soll, weiß ich nicht - aber das steht da sicherlich auch irgendwo beschrieben…

Ja ich weiß, bin am experimentieren und da ist es halt bisschen wild.

Für das^END steht:
NL^END: NL with an END message attached.

Das bringt mich jetzt auch nicht weiter.
Hast du mal einen Link auf das Manual dieses Oszis?
Hallo Serial,

hast du deinen Link mal getestet? Bei mir erscheint nur:
Zitat:Error! The unexpected error was generated. Please contact the manager.
Seiten: 1 2 3 4 5 6 7 8
Referenz-URLs