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!
ich habe im Rahmen eines Projektes den Auftrag bekommen zwei einfache VI´s zu einem zusammen zu fassen. Ein VI misst die Beschleunigung über ein Piezoelement und das andere misst die Dehnung mit Hilfe von DMS.
Die dabei ermittelten Werte sollen dann in jeweils einem Diagramm Ausgegeben werden.
Hier nun mein Problem:
Beim zusammenfügen der VI´s gelingt es mir nicht, dass beide Diagramme gleichzeitig einen Graphen ausgeben. Entweder wird nur die Beschleunigung, oder aber nur die Dehnung angezeigt.
Beide VI´s arbeiten mit While-Schleifen. Also scheint es so, als wenn immer nur eine While-Schleife arbeitet.
Ich möchte aber das beide Schleifen arbeiten, und somit beide Graphen angezeigt werden.
Ich hoffe ich konnte den Sachverhalt halbwegs verständlich darlegen. Bei Fragen stehe ich jederzeit zur Verfügung.
Zum besseren Verständnis habe ich meine "Test"-VI im Anhang beigefügt.
Wenn es gewünscht wird, kann ich die Ursprünglichen VI´s auch noch hinzufügen.
Tut mir leid wenn ich mich unverständlich Ausgedrückt habe, jedoch bin ich absoluter Neueinsteiger und habe mit LabView noch so meine Probleme.
Danke für eure Hilfe
MfG Heribert
08.01.2015, 16:06 (Dieser Beitrag wurde zuletzt bearbeitet: 08.01.2015 16:07 von GerdW.)
Zitat:Also scheint es so, als wenn immer nur eine While-Schleife arbeitet.
Es scheint nicht nur so, es ist so!
Zitat:Ich möchte aber das beide Schleifen arbeiten, und somit beide Graphen angezeigt werden.
Dann musst du es auch so programmieren!
Wenn etwas parallel arbeiten soll, muss es parallel programmiert werden, d.h. ohne Datenfluss-Abhängigkeit (aka DATAFLOW)!
Schau doch einfach mal mit den Highlight-Debugging, wie dein DATAFLOW aussieht!
(Dein "Delay für Prozessorfreigabe" ist ziemlich sinnfrei…)
Ich habe jetzt mal mit Hilfe der Highlight-Funktion den Datenfluss verfolgt. Wie du gesagt hast bekommt die eine Schleife kein Signal. Jedoch kann ich mir nicht so recht erklären wieso. Bei verschiedenen Varianten die ich versucht habe, habe ich immer eine von beiden Schleifen zum laufen bekommen, jedoch nie beide.
Mein Problem ist, dass ich nicht so recht weiß, wie ich beide Schleifen unabhängig vom Datenfluss parallel zueinander programmieren soll.
Zitat:Wie du gesagt hast bekommt die eine Schleife kein Signal. Jedoch kann ich mir nicht so recht erklären wieso.
THINK DATAFLOW!
Grundprinzip: eine "Node" (Struktur, Funktion, VI, …) wird dann ausgeführt, wenn alle benötigten Daten bereitstehen.
In deinem Fall wartet eine Schleife auf den Wert deines Stop-Buttons. Dummerweise kann sie diesen Wert erst bekommen, wenn die erste Schleife beendet wurde. Warum? THINK DATAFLOW!
ich habe im Anhang nochmal zwei VI´s hochgeladen.
Bei der "Versuch 1" VI habe ich jetzt zwei getrennte Stopp-Buttons benutzt. Wird das Programm gestartet, kommt eine Fehlermeldung, welche ich im Anhang beigefügt habe.
Die "Versuch 2"-VI ist im Prinzip die gleiche wie die erste. Auch hier laufen zwei While-Schleifen parallel. Jedoch habe ich den einen DAQ-Assistenten durch Zufallszahlen ersetzt. Beide Schleifen werden in jeweils einem Diagramm ausgegeben. Dieses Programm läuft ohne Fehlermeldung und beide Diagramme werden gleichzeitig als Graph ausgegeben.
Ich habe jetzt die Vermutung, dass die Eingangssignale nicht gleichzeitig bearbeitet werden können. Vielleicht kann mir jemand weiterhelfen.
Vielen Dank für eure Hilfe
MfG Heribert
Anzeige
09.01.2015, 15:32 (Dieser Beitrag wurde zuletzt bearbeitet: 09.01.2015 15:32 von GerdW.)
Versuch1: Du greifst mit beiden DAQAssis youf Modul1 deines cDAQ zu. Dummerweise machst du das auch noch mit verschiedenen Taktraten. Deshalb:
Erstens: Messdaten eines Moduls (wenn irgend möglich) mit nur einem DAQmxRead abfragen.
Zweitens: verschiedene Taktraten für einzelne Kanäle können nur die wenigsten DAQ.Module, du musst dich schon für eine Taktrate entscheiden…
Tipp:
Es gibt den LabVIEW-Beispielfinder im Hilfemenü. Un der hält jede Menge Beispiel-VIs für DAQmx bereit - schau dir die mal an, dann klappt es auch ohne ExpressVIs…
mir ist es jetzt gelungen die beiden Eingangssignale mit Hilfe eines DAQ-Assistenten parallel auszugeben.
Da ich momentan die ausgegebenen Werte nicht auf ihre Richtigkeit überprüfen kann, wollte ich fragen ob der grundsätzliche Aufbau so richtig ist. Die "parallele Ausgabe"-VI ist im Anhang.
Außerdem habe ich noch zwei Fragen.
Als erstes wollte ich wissen, ob es möglich ist, bei den Signalverlaufsdiagrammen die X-Achse anders einzuteilen. Ich würde gerne anstatt der Uhrzeit nur eine Anzeige von 0-10 Sekunden einfügen.
Für die zweite Frage ist zum Verständnis die "Test"-VI im Anhang. Da immer nur 10s in meinem Diagramm angezeigt werden, würde ich gerne nach drücken des Stopp-Buttons den kompletten Signalverlauf in einen Graphen anzeigen lassen. Das Prinzip wäre das gleiche wie bei der "Test"-VI. Ich habe über den "indizierten Tunnelmodus" versucht, das Signal aus der Schleife mit einem Signalverlaufsgraphen zu verbinden. Jedoch kam eine Fehlermeldung weil die Anschlüsse unterschiedlichen Typs sind.
Jetzt interessiert mich, ob es eine Möglichkeit gibt, den Graphen mit dem Signal zu verbinden. Eventuell ist es ja möglich, die beiden Anschlusstypen anzugleichen.
Frage 1: Anzeigeformat X-Achse von "Zeit" ändern in "Fließkomma" mit 0 Kommastellen.
Frage 2: verstehe ich nicht, das Test-Vi funktioniert doch, es gibt doch überhaupt keine Probleme bei der indizierten Ausgabe aus der Schleife.
1:
Mit der Zeit das klappt leider nicht. Sobald ich das Programm starte, sind die 0 und die 10 verschwunden, und es erscheinen dort eine 10-stellige Zahl die im Sekundentakt weiter läuft.
2:
Ich habe nochmal die VI hochgeladen. Wie man dort sehen kann, lässt sich das Signal nicht mit dem Verlaufsgraphen verbinden weil es unterschiedliche Anschlusstypen sind. Ich wollte jetzt wissen ob man z.B. die Anschlusstypen ändern kann und dann eine Verbindung möglich ist.