LabVIEWForum.de
VISA-Read liest nicht alle Bytes - 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: VISA-Read liest nicht alle Bytes (/Thread-VISA-Read-liest-nicht-alle-Bytes)

Seiten: 1 2


VISA-Read liest nicht alle Bytes - eg - 01.03.2007 11:12

' schrieb:@ eg:

Ich glaube, mit dieser Einschätzung liegst du daneben...siehe hier:

http://zone.ni.com/devzone/cda/tut/p/id/5313

Ist zwar schon ein bisschen älter, aber trotzdem noch sehr interessant!

Gruss
Achim


Interessant, aber ich habe diese Publikation gemeint http://www.g-objectview.de/dokumente_downl.../elektronik.pdf (Seite 5).

Aber auch http://de.wikipedia.org/wiki/LabVIEW

Mich wundert am meisten, dass es fast überall steht, dass LabVIEW für Leute gemacht ist, die keine Programmierkenntnisse haben müssen.

Gruss, Eugen


VISA-Read liest nicht alle Bytes - tron - 01.03.2007 15:38

' schrieb:Die Standard-Einstellungen 8N1 sind meistens OK, leider ist die Terminierung standardmäßig auch eingeschaltet...

Ja, die Übertragung läuft mit 8N1, also ohne Parität, daher habe ich aus Übersichtlichkeit darauf verzichtet. Nachdem ich dann den Hinweis mit dem "Termination Char" gelesen habe ist mir dann auch aufgefallen, daß 0A der Hexcode für einen Linefeed ist und logischerweise jedes ankommende 0A als Ende der Übertragung gewertet wird. Ich hatte nur irgendwie angenommen, daß VISA-Read alle Bytes liest, die am Port anliegen. Dumm gelaufen, das...


VISA-Read liest nicht alle Bytes - tron - 05.03.2007 16:05

Hallo Leute,

um nochmal auf das Thema Termination Character zurückzukommen - so ganz funktioniert es leider doch nicht, wie ich mir das vorgestellt habe.

mein VI hat eine stacked sequence mit drei frames - im ersten wird der Port initialisiert (da habe ich dann den Termination Character auf "false" gesetzt), der zweite Frame enthält die Hauptschleife, die ein Übertragungs-SubVI (VISA Write und VISA Read) enthält, und der dritte Frame schließt den Port bei Programmende wieder.

In dieser Konstellation funktioniert es aber nicht, der Termination Character ist immer noch auf "true". Erst wenn ich den ersten und dritten Frame entferne und das Öffnen und Schließen des Ports im Übertragungs-SubVI vornehme, dann klappt es.

Habe ich da einen Denkfehler? Ich würde nämlich lieber die erste Variante nehmen, dann muß der Port halt nicht unnötigerweise bei jedem Schleifendurchlauf (das SubVI läuft schon ein paar mal pro Sekunde) neu initialisiert werden.


VISA-Read liest nicht alle Bytes - Y-P - 05.03.2007 16:11

Hallo,

probier' es doch mal mit einer Whileschleife anstatt mit einer Sequenz.
Ich habe mal das Beispiel von LabVIEW genommen und eine Whileschleife rumgebaut.

Gruß Markus


VISA-Read liest nicht alle Bytes - tron - 05.03.2007 17:30

Hallo Markus,

so ähnlich habe ich es jetzt in meinem Übertragungs-SubVI, damit funktioniert es. Ich würde das Initialisieren der Schnittstelle und die Übertragung halt gerne in getrennten VIs haben (eben da das Übertragungs-SubVI andauernd ausgeführt wird, die Schnittstelle aber eigentlich nur einmal initialisiert werden muß).

Das scheint wohl so nicht zu funktionieren. Kann man sowas eigentlich global einstellen? Im Automation Manager gibt's wohl keine Option dafür.


VISA-Read liest nicht alle Bytes - Y-P - 05.03.2007 19:42

Hallo,

das mit der globalen Einstellung kann ich Dir leider auch nicht sagen.
Mich wundert es allerdings sowieso, wieso das nicht in getrennten VIs funktioniert.
Die Referenz wird im Normalfall doch ans SubVI übergeben.Unsure
Allerdings hast Du ja eine Möglichkeit gefunden wie es läuft (was ich Dir ja auch so ähnlich vorgeschlagen habe) und man braucht meines Erachtens ja auch nicht für alles ein SubVI. Big Grin
Trotzdem würde es mich auch interessieren, wieso es, so wie Du es vorhast, nicht funktioniert.
Vielleicht kann uns ja hier jemand helfen, wenn nicht, dann sollte man mal bei NI nachhaken.
Die kennen sich im LabVIEW-"Inneren" besser aus. Big Grin
Sorry, dass ich Dir nicht besser helfen konnte.

Gruß Markus

' schrieb:Hallo Markus,

so ähnlich habe ich es jetzt in meinem Übertragungs-SubVI, damit funktioniert es. Ich würde das Initialisieren der Schnittstelle und die Übertragung halt gerne in getrennten VIs haben (eben da das Übertragungs-SubVI andauernd ausgeführt wird, die Schnittstelle aber eigentlich nur einmal initialisiert werden muß).

Das scheint wohl so nicht zu funktionieren. Kann man sowas eigentlich global einstellen? Im Automation Manager gibt's wohl keine Option dafür.