LabVIEWForum.de
Serielle Schnittstelle Strings auslesen - 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: Serielle Schnittstelle Strings auslesen (/Thread-Serielle-Schnittstelle-Strings-auslesen)

Seiten: 1 2 3 4 5


Serielle Schnittstelle Strings auslesen - bmtil - 30.09.2011 09:23

Guten Tag,
Ich studiere Biomedizinische Technik in Ilmenau und mache gerade im Raum meines Fachpraktikums erste Gehversuche mit LabView.
Habe bis jetzt den µC soweit programmiert dass er mir zwei Temperaturwerte rausgibt per RS232.
Das direkte rauslesen dieser Schnittstelle in LaBView habe ich hinbekommen. Nun, da die beiden Werte auf einem Port liegen muss ich diese in LabView unterscheiden können.
Mit meinem Wert war es kein Problem mir da ein kleines Programm mit rauslesen des Wertes, Graph zeichnen usw. zu erstellen.
Mit zwei Werte kriege ich das nicht hin. Meine Idee ist es mit einer Case - Struktur das zu realisieren. Das heisst wenn ein Wert des Referenzsensors kommt soll die VI das auf der Referenzanzeige anzeigen und wenn dann anderer Sensorwert (Kammer) ankommt dann eben den Wert auf der anderen Anzeige zeigen.
Eigentlich duerfte es recht einfach funktionieren, man vergleicht einfach nur den Stringanfang, steht da am Anfang "ref", dann ist der Case "true" und der Wert geht auf die Referenzanzeige, steht am Stringanfang "kamm" dann den Wert auf die Kammeranzeige.
Nur das zu realisieren kriege ich irgendwie nicht hin, seit gut 2h ^^.

Wäre schön wenn jemand mir da unter die Arme greifen könnte.
Mit freundlichen Grüßen und vielen Dank.

PS. im Anhang ist die bereits stehende VI. [attachment=36223]


RE: Serielle Schnittstelle Strings auslesen - brainfreeze - 30.09.2011 09:36

Also ich hoffmal dass ich dein Problem richtig vewrstanden hab Wink

wenns das war, den true/false case zu definieren,
sollte dashier funktionieren:


RE: Serielle Schnittstelle Strings auslesen - bmtil - 30.09.2011 09:48

So ziemlich genau das ist es was ich brauche.
Das Problem ist wie definiere ich den anderen Fall?
Also da muss halt ein zweiter Vergleich hin, aber die case Struktur hat ja nur einen Eingang.
In C wäre das was ich brauche eine "if-else" Bedienung. Die Case Struktur ist ja sowas ähnliches.
Pseudocode wäre halt so:
"Bekomme "ref" schalte auf True case,
Bekomme "kam" schalte auf False case."
In deiner Lösung ist ja nur der True Case abgehandelt und eben der zweite Vergleich fehlt.
Dann baut man sich wahrscheinlich nochmal genau so einen Vergleich hin, und nun muss man die ja nur mit irgendeinem Element (der die Vergleiche unterscheidet) verdrahten, der dann in die Case Struktur reingeht.

Aber das bringt mich schonmal viel weiter, danke.

PS: das was ich meine der fehlende Operator ist doch ein einfaches "Oder" oder etwa nicht?
(Meine Fresse bin ich heute wortarm).


RE: Serielle Schnittstelle Strings auslesen - brainfreeze - 30.09.2011 09:52

Die frage ist jetzt: brauchst du das? sprich: gibt es noch einen dritten Fall?
Wenn nicht dann ist "kam" = "nicht ref" -> eine casestruktur würde reichen.

Wenn dus mit "if else" machen willst wäre das in LabVIEW übersetzt eine zweite case-Struktur
innerhalb des false-cases (der momentan bei dir leer ist)


RE: Serielle Schnittstelle Strings auslesen - bmtil - 30.09.2011 10:07

Nein, einen dritten Fall gibt es nicht.
Gut ich versuche es also weiter mit einem Vergleicher.


RE: Serielle Schnittstelle Strings auslesen - bmtil - 04.10.2011 07:27

Entschuldigung für den Doppelpost.
Irgendwie funktioniert die Datenerfassung nicht so wie ich es mir überlegt hab. Wie gesagt wenn ich nur einen LM35 auslesen möchte über die serielle Schnitstelle dann klappt es.
Bei zwei Sensoren (später kommen noch weitere dazu) klappt es nicht. Es liegt daran dass über die RS232 Schnittstelle im Endeffekt ein großer Datenstrom ankommt und LabView weiss nicht welcher Teil des Datenstroms zu welchem Sensor gehört. Im C Programm mit der UART hab ich das so geloest dass nach jedem Auslesen eines ADC Kanals ein Zeilenumbruch kommt. Also quasi: RefWert Zeilenumbruch, KamWert Zeilenumbruch, IrgendwasWert Zeilenumbruch, usw.
Wie kann ich also LabView klarmachen dass RefWert am Analog Digital Port Pin 0 hängt, KamWert am Analag Digital Port Pin 1 hängt, und dann eben wietere noch dazukommende Daten an den Pins 2-7 hängen? Das Programm muss am Ende so aussehen dass ich das eben um 6 weitere "Kanäle" erweitern kann (also in der Case Struktur insgesamt 8 Fälle, wie ich die Anzahl der Fälle erhöhen kann weiss ich).
Achja, die Darstellung der Werte muss parallel erfolgen, also For-Struktur würde nich geeignet sein bei der Endlösung.
Ich bin für jede Hilfe dankbar.
Grüße.

PS. hab ein kleines Blockdiagramm zum besseren Verständnis meines Problems angehangen.[attachment=36276]


RE: Serielle Schnittstelle Strings auslesen - jg - 04.10.2011 08:19

Was meinst du mit Pin 0 bis Pin 7? Willst du verschiedene RxD/TxD auf die verschiedenen Pins der RS-232 legen?
Gruß, Jens


RE: Serielle Schnittstelle Strings auslesen - Y-P - 04.10.2011 08:26

O Blink Big Grin

Hast Du schon mal nach dem Begriff gegoogelt?

Gruß Markus

(04.10.2011 07:27 )bmtil schrieb:  würde nich geeignet sein bei der Endlösung.



RE: Serielle Schnittstelle Strings auslesen - bmtil - 04.10.2011 08:42

(04.10.2011 08:19 )jg schrieb:  Was meinst du mit Pin 0 bis Pin 7? Willst du verschiedene RxD/TxD auf die verschiedenen Pins der RS-232 legen?
Gruß, Jens

Nein, natürlich nicht. Damit meine ich dass der integrierter ADC an meinem AtMega16 8 Eingänge hat, die ich alle separat auslesen möchte.

Oh, "Endlösung", ist irgendwie übler Begriff. Gott, wie peinlich, aber mein Wortschatz wird gerade durch das Problem blockiert.


RE: Serielle Schnittstelle Strings auslesen - bmtil - 04.10.2011 11:06

Und nochmals Entschuldigung für den Doppelpost.
Habe das Problem mittlerweile erkannt.
Es geht im Endeffekt darum dass ich meine RS232 Schnittstelle (die ja einen kontinuirlichen Datenstrom sendet) zeilenweise auslesen möchte.
Zum Beispiel:
Erste Zeile: Wert des Refernzsensors-->dieser wird im ersten Fall der Casestruktur verarbeitet
Zweite Zeile: Wert des Kammersensors-->dieser wird im zweiten Fall der Casestruktur verarbeitet
Dritte Zeile: Wert eines weiteren Sensors-->dieser wird im dritten Fall der Casestruktur behandelt
usw.
Im Hterminal werden mir ja die ersten zwei Zeilen angezeigt nur eben das Auslesen über LabView funktioniert nicht.
Hiernochmal meine VI angehangen, wegen "Zwischenstandinformation" Blink