LabVIEWForum.de
DAQ-Daten in mehreren States verwenden - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: DAQ-Daten in mehreren States verwenden (/Thread-DAQ-Daten-in-mehreren-States-verwenden)



DAQ-Daten in mehreren States verwenden - Th0m4s - 27.05.2014 10:42

Hallo Zusammen,

Ich Arbeite gerade an einem Messprogramm. Hierzu möchte ich eine State Machine verwenden. Momentan habe ich folgendes Problem:

Ich möchte die Daten meiner DAQ Karte in mehreren States verwenden (Vorspannkraft einstellen und Daten erfassen). Muss ich den DAQ-Task in jedem State neu starten oder gibt es eine Möglichkeit die Sensordaten durchzuschleusen?

Grüße Thomas


RE: DAQ-Daten in mehreren States verwenden - jg - 27.05.2014 10:50

THINK Dataflow & Anwendung von Schieberegistern sollte deine Frage beantworten.

Gruß, Jens


RE: DAQ-Daten in mehreren States verwenden - Th0m4s - 27.05.2014 12:37

Hallo Jens,

Danke für die schnelle Antwort. Hier mal ein Screenshot meines aktuellen Aufbaus. Ich glaube ich habe mehr als nur einen Denkfehler.
Ich habe keinen Plot auf dem Signalverlaufsgraph wenn meine State Machine im state "Wait vor event" ist. Alles was außerhalb der State Machine ist wird nicht ausgeführt wenn ich Sonden ransetze.

Zwei parallele While-Schleifen haben auch nicht zum Erfolg geführt.


Gruß Thomas


RE: DAQ-Daten in mehreren States verwenden - GerdW - 27.05.2014 12:52

Hallo Thomas,

Zitat:Ich habe keinen Plot auf dem Signalverlaufsgraph wenn meine State Machine im state "Wait vor event" ist.
Und zeigst du uns auch, was in diesem State so gemacht wird?

Ansonsten gilt immer noch: THINK DATAFLOW!
(Aufräumen wäre nicht schlecht. Lokale Variablen brauchst du auch nicht so viele wie im Bild gezeigt.)


RE: DAQ-Daten in mehreren States verwenden - Th0m4s - 27.05.2014 12:59

Hallo,

In dem State passiert gerade nicht viel. Ich will meine aktuellen Sensorwerte in einem Pop-Up-Fenster nur in einem Diagramm Anzeigen lassen. Leider kommt nix an.


RE: DAQ-Daten in mehreren States verwenden - GerdW - 27.05.2014 13:04

Hallo Thomas,

Zitat:In dem State passiert gerade nicht viel.
Doch, da passiert ein ganze Menge.
Du beschäftigst einen CPU-Core zu 100% damit, immer wieder die gleichen Daten in einer Anzeige darzustellen. Ungebremst und so schnell wie möglich. Und nebenbei wird auf einen Knopfdruck gewartet…

Zitat:Ich will meine aktuellen Sensorwerte in einem Pop-Up-Fenster nur in einem Diagramm Anzeigen lassen.
Dann solltest du auch die aktuellen Daten lesen/bereitstellen und nicht immer wieder die gleichen alten Werte lesen…

Zitat:Leider kommt nix an.
THINK DATAFLOW!
Wenn "nix ankommt", könnte das daran liegen, dass der DATAFLOW nicht fließen kann…


RE: DAQ-Daten in mehreren States verwenden - Th0m4s - 27.05.2014 13:40

Hallo GerdW,

Erstmal Danke für die Denkanstöße!

Zitat:Wenn "nix ankommt", könnte das daran liegen, dass der DATAFLOW nicht fließen kann…

Genau da liegt mein Problem. Alles was außerhalb der State Machine liegt wird nicht ausgeführt. Am Anfang werden die Anzeigen kurz aktuallisiert und dann passsiert leider nichts mehr.

Gruß Thomas


RE: DAQ-Daten in mehreren States verwenden - GerdW - 27.05.2014 13:44

Hallo Thomas,

Zitat:Genau da liegt mein Problem. Alles was außerhalb der State Machine liegt wird nicht ausgeführt. Am Anfang werden die Anzeigen kurz aktuallisiert und dann passsiert leider nichts mehr.
Eben: THINK DATAFLOW!

Wenn du in deinem State bleibst (aufgrund einer While-Loop, die auf einen Button wartet), kann "außen herum" natürlich nichts mehr passieren. DATAFLOW: LabVIEW wartet mit der Ausführung, bis alle enthaltenen Strukturen ("Nodes") abgearbeitet sind. THINK DATAFLOW!

Lösung:
Mach die While-Loop weg. Der "Stopp"-Button entscheidet nun darüber, ob weiterhin der "Warte auf..."-State aktiv bleibt oder in den nächsten State gewechselt wird!
Wenn du schon eine Statemachien programmierst, dann bitte auch sauber!


RE: DAQ-Daten in mehreren States verwenden - Th0m4s - 28.05.2014 12:37

Hallo nochmal,

Ich habs hinbekommen. Producer/Consumer war hier das Stichwort. Mit Notifications (Melder) funktioniert das Optimal!

Vielen Dank für die Hilfe

Grüße Thomas