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!
entweder sehe ich das nicht oder stehe irgendwie auf der Leitung....
folgendes Problem:
Ich habe in Matlab folgenden Code
fwrite(s,dsH,'unit8'
Dies entspricht:[list=1]
[*]serielles schreiben mit dem Befehl "fwrite()"<>
[*]"s" entspricht dem Handle<>
[*]"dsH" ist ein Vektor mit den Werten [250;250;0;120]<>
[*]unit8 ist das Format<>
[st]So wie ich das richtig verstehe, wird der Vektor mithilfe vom Scghreibbefehl "fwrite" auf die Schnittstelle geschrieben.
Nun meine Frage:
Ich habe mir ein VI mit Visa-Open, Visa-Write, Visa-Close geschrieben, jedoch kann ich bei Visa-Write nur einen String im Schreibpuffer einfügen jedoch keinen Vektor! Wie muss ich den in Visa-Write die Elemnte im Schreibpuffer aneinanderreihen, damit es wie in Matlab ein Vektor übergeben wird?
Ich möchte also im Grunde den oberen Vektor mit den angegebenen Zahlen mit LabVIEW auf mein Gerät schreiben können.
Gruß Joe
PS: Sicher ist es ziehmlich einfach, aber ich komme irgendwie nicht darauf.
Anzeige
04.12.2009, 14:58 (Dieser Beitrag wurde zuletzt bearbeitet: 04.12.2009 15:01 von jg.)
<strike>:hmm:fwrite ist ein Befehl, der Daten binär in einen File schreibt. Was soll das mit VISA zu tun haben?</strike>
EDIT: Kommando zurück, da findet man doch tatsächlich was mit fwrite und RS232.
Trotzdem, fwrite scheint die Daten in einen Binärstring zu wandeln (erster Eindruck). Sowas geht auch mit LabVIEW, z.B. mit Typecast oder Flatten To String.
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
Meine Frage ist ja, wie "baue" ich sowas in LabVIEW auf?
Bis jetzt habe ich immer VISA benutzt und es hat sowohl bei USB als auch bei Seriellen Schnittstellen hervorragend funktioniert. (Ich Muss ehrlich gesagt sagen, ich habe bis jetzt auch nur gekaufte Geräte verwendet!)
Nun habe ich mir ein Gerät sozusagen ausgeliehen und außer dem Matlab-Programm habe ich keine Hilfen zum Gerät. Ich kann hier auch bei keinem Nachfragen, leider! :-(
Deswegen wandte ich mich an das Forum.
Also damit hier die Frage nicht untergeht, wie kann ich denn Matlab-Befehl "fwrite" in LabVIEW realisieren?
Gruß Joe
04.12.2009, 15:23 (Dieser Beitrag wurde zuletzt bearbeitet: 04.12.2009 15:24 von jg.)
' schrieb:Also damit hier die Frage nicht untergeht, wie kann ich denn Matlab-Befehl "fwrite" in LabVIEW realisieren?
Eigentlich schon beantwortet, aber damit es ebenfalls nicht untergeht
fwrite wandelt (soweit ich verstehe) beliebige Daten in einen Binärstring und schreibt diesen dann als String auf das geöffnete Handle (in der Regel ein File, kann aber auch eine Schnittstelle sein, das habe ich kapiert).
In LabVIEW kannst du das Wandeln in einen String mit Typecast oder Flatten To String machen:
Den Rest mit VISA-Open, Write, Close hast du schon...
Gruß, Jens
EDIT: Zwecks google, ich kenn mich mit MatLab gar nicht aus, musste deshalb überhaupt erst mal nachschlagen, was fwrite für ein Befehl ist.
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
Danke Jens,
habes es bei ersten Mal nicht gleich verstanden...
Ich Probiere das jetzt aus und wenn es geklappt hat, werde ich das VI später hier reinstellen.
Gruß Joe
04.12.2009, 15:39 (Dieser Beitrag wurde zuletzt bearbeitet: 04.12.2009 15:50 von jg.)
Einfach mal zum Verständnis:
fwrite wandelt die Daten in Binärcode um und schickt sie dann über die serielle Schnittstelle. In meinem Fall ist es der Vektor dsH=[250;250;0;120]. Da es mi unit8 Format ist, wird immer eine Zahl (z.B: 250) in 8 Bit umgewandelt/dargestellt und dann übertragen -> so habe ich es verstanen.
Wie macht es denn die VISA-Schnittstelle von LabVIEW? Im Grunde müssten doch auch Binärzahlen herauskommen, oder? Wenn ja, wozu dann die Typecast/Typenumwandlung?
danke, es funktioniert einwandfrei. Wir haben nur einen wirklich groben Fehler in unserem SubVI. Das SubVI "Visa Open" muss aus der While-Schleife heraus, sonst wird ja der Port ständig geöffnet!!!
Wenn ich zu Hause bin, mache ich das richtige VI rein.
Also nochmal: Visa-Open einfach VOR die While-Schleife schieben, dann klappts!!!