Hallo Liebe LabVIEW-Community
,
Ich hoffe ich habe diesen Thread an die richtige Stelle gepostet!
Ich arbeite momentan an einem portablen, drahtlosen EKG, welches die 3 Ableitungen nach Einthoven I, II und III darstellen soll. Der Entwurf für den analogen Part steht soweit. Die 3 Ableitungen bzw. Verstärkerschaltungen sollen über den Multiplexer des MCU(MC9S12XS128) ausgewählt werden (ich plane mit einer Frequenz von 500Hz pro Kanal/Ableitung abzutasten) und nach AD-Wandlung(in der MCU-Peripherie; ich möchte vorerst mit 8bit arbeiten, 10 und 12bit sind zudem möglich) via Transceiver (nRF24L01) an einen PC gesendet(USB) und in LabVIEW dargestellt werden.
Die einzelnen Ableitungen konnten schon mittels Oszi dargestellt werden. Außerdem habe ich ein passendes VI gefunden([
attachment=49745]), mit dem ich jeweils 1 Ableitung abbilden kann(in Echtzeit).
Hier liegt nun das Problem! Ich bin totaler Neuling was LabVIEW betrifft und habe daher keine Idee, wie ich alle 3 Ableitungen in Echtzeit darstellen kann. Ich habe bereits viel in LabVIEW-Foren gelesen und auch Google befragt – jedoch bisher ohne Erfolg. Meinem Gefühl nach fehlen mir auch einfach die spezifischen Begriffe, um erfolgreich zu recherchieren :/
Kann mir jemand sagen, wie ich das vorhandene VI möglichst einfach ergänzen kann?
Ich muss meine Arbeit in wenigen Wochen abgeben und dieses Problem bereitet mir wirklich Sorgen!
Ich hoffe ihr findet Zeit mir zu helfen!
Das wäre mehr als Super!
Vielen Dank fürs Lesen!
Liebe Grüße
XiGua89
Zur Info: Ich benutze LabVIEW 11.0
Hi XiGua89,
ich nutze deine Frage dafür, meinen Einstand hier im Forum zu bestreiten und hoffe das ich dir weiterhelfen kann.
Ich bin mir jetzt nicht ganz sicher was du unter Echtzeit verstehst, wenn ich von den 500 Hz Abtastfrequenz, sprich 2 ms Periodendauer, ausgehe, könnte das ganze ohne die passende Hardware eh schwierig werden, da Windows einfach von der Grundarchitektur nicht Echtzeitfähig ist.
Aber ganz unabhänig von Echtzeit oder nicht, ist das Vorgehen bei der Darstellung von Graphen (Signalverlaufsgraph / XY-Graph) bzw. Diagrammen ganz ähnlich. Bevor ich dir jetzt aber versuche das lang und breit zu erklären, würde ich dir im ersten Schritt die LabVIEW eigenen Beispiel-VIs empfehlen
Öffne dazu einfach die ausführliche Hilfe für die entsprechenden Visualisierungs-Elemente (Graph/Diagramm etc.) und öffne aus der Hilfe heraus die passenden Beispiele. Meiner Meinung nach sind die VIs selberklärend und man kann sich das Vorgehen in aller Ruhe ansehen.
Ich wünsch dir erst einmal viel Erfolg bei deinem Projekt, klingt auf alle Fälle sehr interessant.
Gruß
Daniel
Vielen Dank für deine Antwort, Daniel!
Ich habe mittlerweile die Beispiel VIs durchgeschaut und auch das eine oder andere Tutorial überflogen, jedoch bin ich noch keinen Schritt weitergekommen...Und mehr Zeit habe ich momentan leider nicht...:/
Zudem bin ich auf Folgendes gestoßen: [
attachment=49881]
Hier werden wohl zwei Kanäle eines EKG dargestellt! Könnte man dieses VI nachbasteln, nur eben leicht verändert, sodass ich 3 Kanäle darstellen kann? Mir erscheint dieses VI im Vergleich zu dem ECG.VI aus meinem ersten Beitrag wesentlich übersichtlicher...
Es wäre toll, wenn mir jemand helfen kann, mir läuft so langsam die Zeit davon und es wäre schade wenn ich die ganze Arbeit schlussendlich nicht darstellen kann
Über ein editiertes VI würde ich mich natürlich auch freuen
Liebste Grüße
XiGua89
Hi XiGua89,
wo liegt denn nun konkret das Problem? Am Darstellen der Signale oder schon am Anfang, bei der Einbindung der Hardware und dem einlesen der Daten?
Was hast du denn bereits versucht? Kannst du mit den angeschlossenen Geräten kommunizieren? Kannst du die Rohdaten einlesen?
Gruß
Daniel
Mit "ECG.vi' kann ich wie gesagt schon 1 Ableitung darstellen. Das klappt alles soweit einwandfrei, das Signal ist super! Jedoch habe ich dieses VI nicht selbst geschrieben, sondern im Netz gefunden.
In der nächsten Woche werde ich voraussichtlich mein analoges System mit 3 EKG-Verstärkerschaltungen (also 3 Ableitungen/Kanäle, bisher war es nur 1 Kanal) fertig stellen. Diese Känäle sollen mittels Multiplexer durchgeschaltet und schlussendlich über USB an den Pc gesendet werden. Nach meinem Verständnis müssen also die über USB kommenden, seriellen Daten irgendwie gesplittet werden, da ja in den Daten die Messwerte von 3 unterschiedlichen Signalen vorliegen werden. Ich habe aber absolut keine Ahnung wie ich das umsetzten soll...
Mein ursprünglicher Gedanke war, die Daten mittels Schleife o.ä. in 3 Arrays zu schreiben und diese dann separat in 3 Graphen auszugeben. Leider kenne ich mich mit Labview und generell mit Signalverarbeitung kaum aus, sodass ich mittlerweile nach ewigem googlen und überlegen noch immer keine Lösung gefunden habe...
Zudem möchte ich in 'ECG.vi' über eine Peak-Detection die Herzfrequenz ausgeben. Auch hierbei war ich bisher erfolglos. Das ist wie gesagt das erste Mal, dass ich Labview benutze, daher ist das Programmieren eher mit etwas herumspielen zu vergleichen. Natürlich benutze ich die Hilfen, Google und versuche Teile aus anderen Vis zu übernehmen...
Kann ich in ECG.vi eine Waveform-Peak-Detection anbinden? Wo würde ich dieses platzieren? Ich habe gefühlt schon alle Konstellationen ausprobiert...
Ich hoffe ich konnte mich ausführlich genug ausdrücken
Ich bin für jede Hilfe dankbar...
Wie über USB? Deine VIs sind für eine serielle Schnittstelle. Hast Du einen virtuellen COM-Port?
Wie stellst Du Dir das mit dem Multiplexer vor? Willst Du Deine Daten alle nacheinander oder parallel einlesen? Bei parallel: Woher weißt Du dann, welcher Wert zu welchem Signal gehört?
Gruß Markus
Vielen Dank für deine Beteiligung am Thema, Markus!
Ja..!? Zumindest wähle ich den Transceiver über den COM im VI aus und es funktioniert
Die Daten werden seriell gesendet(kommen über SPI und dann auf USB), also alle nacheinander einlesen...
Könntest du mir eventuell noch sagen wo/wie in ECG.VI ich einen (waveform)peak detector für die Herzfrequenz einfügen kann? Ich dachte eigentlich das sollte kein Problem sein, aber habe heute nochmals studenlang rumgebastelt...
Grüße XiGua89
Hier mal mein aufgezeichnetes EKG (mit ECG.vi).
Das ist jedoch aus der Analogschaltung mit 1 Verstärkerschaltung, also 1 Ableitung/Kanal. D.h. ohne Multiplexer.
Vllt hilft das ja etwas, im Hinblick auf die Peak-Detection ?!
Hi zusammen,
ich würde zunächst mal den eigentlich übermittelten VISA-String genauer anschauen, bevor ich lediglich 1 Byte auslese und hoffe, dass es das ist was ich will. Natürlich kann es in deinem Fall schon sein, dass es zufällig passt.
[
attachment=49948]
Bei der Konvertierung von "String nach Byte-Array" gehen dir außerdem erst einmal Daten verloren, wenn du wie in ECG.vi nur das erste Element aus dem Array verwendest, du arbeitest dann lediglich mit einem INT-Wert, daher den ganzen String anschauen.
Was die Übermittlung der gemuxten Daten angeht, die wirst du softwareseitig demuxen müssen, wobei die Reihenfolge der Daten natürlich von der Hardware abhängt.
Ich hab mir da mal kurz was überlegt, wie du das ganze, zunächst ohne Ereignisstruktur, anstellen könntest. Wobei ich mir nicht ganz sicher bin, ob das mit dem doppelten Aufruf von "VISA lesen" so funktioniert, habe gerade keine Möglichkeit es zu testen. Es sieht nicht ganz schön aus und es gibt bestimmt auch einfachere Möglichkeiten die Daten strukturiert innerhalb des VIs zu speichern, aber es sollte so passen.
[
attachment=49945]
Um deine Peaks nun zu detektieren, musst du die Arrays mit der entsprechenden Funktion verarbeiten, z.B. "Spitzenwert" weiter verarbeiten.
[
attachment=49947]
Neben der Übermittlungsreihenfolge ist natürlich auch die Übermittlungs- und Samplingraterate wichtig, damit du deine Daten ordentlich darstellen und auswerten kannst.
Ich hoffe ich konnte dir helfen.
Gruß
dauz
WOW, das sieht auf jeden Fall nach einer großen Hilfe aus, Daniel! Tausend Dank schonmal!
Das sieht für mich momentan noch alles sehr fremd aus. Aber ich werde mich gleich morgen früh ransetzen und dein Beispiel umsetzen (bei mir ist es jetzt nur schon spät...) Damit kommt bestimmt auch ein wenig Verständnis auf! Ich hoffe nur ich finde die ganzen Bausteine auch =)