04.12.2009, 14:48
Beitrag #1
|
joe1234
LVF-Gelegenheitsschreiber
Beiträge: 136
Registriert seit: Sep 2007
2010
2007
kA
Deutschland
|
MatLab, Vektor ->LabVIEW
Hallo Leute,
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.
|
|
|
04.12.2009, 14:58
(Dieser Beitrag wurde zuletzt bearbeitet: 04.12.2009 15:01 von jg.)
Beitrag #2
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
MatLab, Vektor ->LabVIEW
Mal kurz google anwerfen...
such, such, such
<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!
Einführende Links zu LabVIEW, s. GerdWs Signatur.
|
|
|
04.12.2009, 15:15
Beitrag #3
|
joe1234
LVF-Gelegenheitsschreiber
Beiträge: 136
Registriert seit: Sep 2007
2010
2007
kA
Deutschland
|
MatLab, Vektor ->LabVIEW
' schrieb:Mal kurz google anwerfen...
such, such, such
Moment Mal....
Gegoogelt habe ich schon. Wie fwrite aufgebaut ist, weiss ich auch und für die, die es wissen wollen:
http://www.mathworks.com/access/helpdesk/h...ref/fwrite.html
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.)
Beitrag #4
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
MatLab, Vektor ->LabVIEW
' 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!
Einführende Links zu LabVIEW, s. GerdWs Signatur.
|
|
|
04.12.2009, 15:28
Beitrag #5
|
joe1234
LVF-Gelegenheitsschreiber
Beiträge: 136
Registriert seit: Sep 2007
2010
2007
kA
Deutschland
|
MatLab, Vektor ->LabVIEW
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.)
Beitrag #6
|
joe1234
LVF-Gelegenheitsschreiber
Beiträge: 136
Registriert seit: Sep 2007
2010
2007
kA
Deutschland
|
MatLab, Vektor ->LabVIEW
So, ich habe doch noch ein Problem...
Auf die Schnelle bekomme ich es nicht hin, kannst du mir da weiter helfen?
VI liegt bei.
Gruß Joe
Box_test.vi (Größe: 12,64 KB / Downloads: 227)
|
|
|
04.12.2009, 15:54
Beitrag #7
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
MatLab, Vektor ->LabVIEW
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!
Einführende Links zu LabVIEW, s. GerdWs Signatur.
|
|
|
04.12.2009, 16:00
Beitrag #8
|
joe1234
LVF-Gelegenheitsschreiber
Beiträge: 136
Registriert seit: Sep 2007
2010
2007
kA
Deutschland
|
MatLab, Vektor ->LabVIEW
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?
Gruß Joe
|
|
|
04.12.2009, 16:09
Beitrag #9
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
MatLab, Vektor ->LabVIEW
Nein, am Ende von fwrite kommt ein String raus.
Zur Wandlung, das Format-Feld besagt, welches Datenformat jedes der Elemente haben soll, das verstehst du schon richtig.
Vielleicht musst du dir das in LabVIEW eher so aufbauen:
Du hast ein Array. Mit einer Typ-Konversion wandelst du jetzt das Array in das durch "Format" spezifizierte Zahlenformat:
So, und jetzt wird dieses Array in einen Binärstring gewandelt. Denn per VISA-Write (oder auch File-Write) kannst du nur einen String schreiben.
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!
Einführende Links zu LabVIEW, s. GerdWs Signatur.
|
|
|
08.12.2009, 16:14
|
joe1234
LVF-Gelegenheitsschreiber
Beiträge: 136
Registriert seit: Sep 2007
2010
2007
kA
Deutschland
|
MatLab, Vektor ->LabVIEW
Hi Jens,
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!!!
Gruß Joe
|
|
|
| |