LabVIEWForum.de - Serielle Schnittstelle Strings auslesen

LabVIEWForum.de

Normale Version: Serielle Schnittstelle Strings auslesen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4 5
Und was ist die Frage? Unsure
Wieso es nicht funktioniert? Dann solltest Du mal Dein VI hochladen. Glas1

Gruß Markus

EDIT: Ich sehe gerade, dass Du Deinen Beitrag editiert und das VI noch angehängt hast. Danke.
Kannst Du mal ein Bsp. machen, wo man sieht, was genau von Deinem µC zurückkommt?
Wie ich es verstehe, möchtest Du ja das was zurückkommt auseinandersplitten und entsprechend weiterverarbeiten? Oder?

Gruß Markus
Also, hier ist erstmal der Screenshot vom Hterminal.
Und zustätzlich dazu mein Quellcode in C.
Da ist eigentlich nur das interessant was in der while-Schleife steht.
Dort wird gesagt dass der Microkontroller mir eben die ADC Werte schicken soll und nach jedem Wert ein Zeilenumbruch erfolgen soll.
(Für alle die es interresiert, der gesamte Overflow-und Interruptquatsch ist nur dazu da, damit ich die Werte so ca. alle 2 Sekunden bekomme.)
Die Werte im Hterminal sind so merkwürdig weil ich die Umrechnung von ADC Werten in LabView mach und nicht im C, ist ja deutlich angenehmer (LabView rules Big Grin ).

-------------------------------------------
EDIT:
Zitat:Wie ich es verstehe, möchtest Du ja das was zurückkommt auseinandersplitten und entsprechend weiterverarbeiten? Oder?
So sieht es aus, ich möchte den Datenstrom in Zeilen aufteilen (was ja schon in C passiert, zumindest denke ich das) und eben mir dann über LabView schöne Graphen plotten lassen.
Grüße.
Meinst Du so was?
[attachment=36294]

Gruß Markus
(04.10.2011 11:46 )Y-P schrieb: [ -> ]Meinst Du so was?


Gruß Markus

So ziemlich genau das.
Jetzt muss ich doch nur irgendwie das mit meiner VI verbinden und sagen im welchen Fall er welchen String in der Case weiterverarbieten soll (welchen Wert er mir anzeigen soll?).
Dann bau doch was in dein µC-Programm ein. Übergib einfach im String, von welchem Kanal jetzt gerade eine Messwert per RS-232 übertragen wird.

Gruß, Jens
Also habe jetzt versucht das Programm von Maruks welches mir die Arrays erstellt in mein Programm einzubauen.
Dazu hab ich in der VI versucht in der For-Struktur ein Vergleichsarray zu basteln welches eben die Zeilen aus Markus VI (halt das was der Microkontroller mir sendet)
mit den Anfangsstrings "Ref" und "Kam" vergleicht und anhand diesen Vergleiches entscheiden soll in welchen Case welcher Wert verarbeitet werden soll.
Hab das VI angehangen, komm gerade nicht weiter da es Fehler gibt:
"Case-Struktur Selektorwerte falschen Typs".

Würde der Vergleich vom Prinzip so funktionieren?
Und kann ich dann nach beliebigen weitere Strings und Cases einfügen in den Array und Casestruktur?

Grüße
Schon die Datenerfassung ist faul. Es gibt da 2 Möglichkeiten:
1. Master-Slave-Betrieb: Der µC sendet nur auf Anforderung Daten. In dem Fall müßte dem Read ein Write vorangehen.
2. Kontinuierlicher Betrieb ohne Aufforderung: Der µC sendet kontinuierlich Daten, z.B alle 100ms, ohne besondere Aufforderung.
Was ist das bei Dir? Komisch: Es folgt keine Auffordrung, trotzdem sendet der µC nicht kontinuierlich, sondern genau 2 Datenstrings. Wann tut er das denn?

Auf alle Fälle gilt: Den Datenstring vom µC unbedingt mit Abschlußzeichen (\n) programmieren.
Für kontinuierlichen Betrieb: Dein Visa Konfigurations-VI ist schon auf Abschlußzeichen programmiert. Jetzt nur noch an Visa Read eine große Bytezahl anschließen - das ist alles. Kein VI "Bytes on Port", kein Wait in der Schleife - es synchronisiert sich alles von selbst.
Probier erst mal dieses VI, dann müssten die Datenstrings richtig ankommen. Wenn das funktioniert, ist alles Weitere ein Klacks.
[attachment=36298]
Hier ein neues Bsp:
[attachment=36300]
Die Zeitverzögerung (1000ms) habe ich nur reingemacht, damit Du in den Anzeigeelementen siehst, wie sich die Werte ändern. Die kannst Du in Deinem Bsp. rauswerfen.

Gruß Markus
Vielen Dank für die rege Beteiligung erstmal und die viele Hilfe, da fühlt man sich echt gut betreut in diesem Forum Smile

So, hab jetzt Markus' neue VI reingebaut, alte rausgenommen, alles erstmal angepasst.
Im µController Programmcode hab ich nochmal geschrieben dass nach gesendeten beiden Zeilen nochmal Zeilenumbruch kommen soll.
Das sieht im Hterm so aus:
"Ref107 Zeilenumbruchszeichen
Kam102 Zeilenumbruchszeichen
Zeilenumbruchszeichen
weitere Ref und Kam Werte."
Nun passiert folgendes wenn ich die Datenauslesen VI starte.
In der VI sieht man an der Stringanzeige wie die nicht umgerechneten Temperaturwerte ankommen, immer im obersten Feld.
Das heisst also die VI geht garnicht erst in Case-Struktur rein.
Anscheinend kann man das auch nicht verbinden.
Hab meine VI auf jetzigem Stand hochgeladen.
Grüße.

PS: warum brauche ich eine Verzögerung? Ich hab doch im Microkontroller Programm schon geschrieben dass die Werte mir nur alle 2 Sekunden gesendet werden sollen.
Ich habe doch geschrieben, dass Du sie nicht brauchst.

Gruß Markus

(04.10.2011 13:23 )bmtil schrieb: [ -> ]PS: warum brauche ich eine Verzögerung? Ich hab doch im Microkontroller Programm schon geschrieben dass die Werte mir nur alle 2 Sekunden gesendet werden sollen.
Seiten: 1 2 3 4 5
Referenz-URLs