Erfassung und Speicherung mehrerer Signale (Bluetooth, Analog)
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!
12.05.2017, 21:56 (Dieser Beitrag wurde zuletzt bearbeitet: 12.05.2017 21:57 von Failix.)
Erfassung und Speicherung mehrerer Signale (Bluetooth, Analog)
Guten Abend liebe Community,
Ich bin neu hier im Forum und habe mich angemeldet, da ich einige Probleme bezüglich eines LabView-Projekts habe.
Eins vorweg: ich bin nicht sehr LabView-erfahren und war bei der Entwicklung des Programms ziemlich auf mich allein gestellt.
Ich musste oft auf Online-Tutorials zurückgreifen, also bitte ich um Gnade bei der Beurteilung.
Grundlegende Infos:
Als Hardware benutze ich den NI myRIO, also ein recht mächtiges Werkzeug.
Labview Version: 2015 myRIO (15.0)
Zum Programm:
Ich habe eine Anwendung bei der 2 Bluetooth Signale (Jeweils Strings von einem Sensor) in LabView eingelesen werden.
Das soll über UART geschehen mit ca 100 Daten pro Sekunde (Nur Lesen, nicht Schreiben).
Parallel zum Einlesen der 2 Bluetooth Signale sollen noch 3 Analogsignale erfasst werden, möglichst in der gleichen Frequenz wie die Signale oben.
Alle gesammelten Daten (Bluetooth und Analogwerte) sollen dann auf dem PC, im Idealfall in ein Text-File geschrieben werden.
Dabei sollen die Analogsignale direkt neben den zeitlich entsprechenden Sensordaten stehen.
-> Erstmal will ich die Bluetooth Problematik behandeln:
Ich habe vor, die empfangenen Strings über 2 separate Bluetooth Empfänger einzulesen, da mir am myRIO
schließlich auch 2 UART Schnittstellen (eine pro MXP) zur Verfügung stehen.
(siehe Anhang: Anschlussschema)
Dafür habe ich eine Programmschleife geschrieben, die erstmal die UART Signale auf MXPA erfasst.
(siehe Anhang: Main_Block_Diagram)
Nach dem Einlesen und Formatieren bzw. Aufsplitten des Strings, werden die Daten als Array in ein Textfile geschrieben.
Den Strings möchte ich noch einen Zeitsstempel anfügen um später zu wissen, wann der Sensor welchen Wert ausgegeben hat.
(Es handelt sich u.a. um Lagekoordinaten)
Die relevantesten auftretenden Probleme sind derzeit:
1. Wie füge ich den zweiten UART Port in das Programm ein? Den Code in der Schleife einfach zu duplizieren und auf MXPB umzustellen hat das Programm leider aufgehängt -> Verlange ich hier schlicht zuviel vom myRIO?.
2. Wie realisiere ich einen Timestamp der mir die aktuelle Zeit bis auf Millisekunden anzeigt.
3. Beim Speichern der Daten werden offensichtlich mehrere Werte pro Schleifendurchlauf eingelesen und in einer, für mich unersichtlichen, Reihenfolge gespeichert. Um dieses Problem zu verdeutlichen habe ich eine Verzögerung von einer Sekunde in die Schleife eingebaut und die Zeit an den String angehängt.
Was dann im Textfile rauskam seht ihr im Anhang: Ausgabe_txt.
Die Analogsignale werden in einer noch nicht angezeigten parallelen Schleife bearbeitet.
Falls ihr noch weitere Infos zum System, Programm usw. benötigt fragt einfach.
Ich hoffe ihr könnt mir ein paar Tipps geben um mich auf den richtigen Weg zu führen.
Danke schon mal für eure Bemühungen.
Gruß
Failix
Anzeige
13.06.2017, 08:23 (Dieser Beitrag wurde zuletzt bearbeitet: 13.06.2017 09:22 von Freddy.)
RE: Erfassung und Speicherung mehrerer Signale (Bluetooth, Analog)
Hallo Failix,
die Initialisierung der Seriellen Schnittstelle innerhalb einer While Schleife macht keinen Sinn.
Einmal initialisieren genügt doch. Also Vor die While Schleife setzen.
Zu1: Eigentlich sollte die Kopie genauso laufen wie das Original. Vermutlich hast Du die gleiche COM Bezeichnung für beide UARTS verwendet oder so etwas ähnliches. Wenn Du den Absturz VI mal einstellst, könnte man den Fehler erklären.
Zu2: Falsches VI zum Wandel in String. Habe ein Beispiel angehängt.
Zu3: Du hast eine Rückkopplung in dem zu speichernden String eingebaut. Das bedeutet du hängst jedesmal den alten String plus den Neuen an. Mach einfach die Rückkopplung raus.