LabVIEWForum.de - DAQ-Daten in mehreren States verwenden

LabVIEWForum.de

Normale Version: DAQ-Daten in mehreren States verwenden
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
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
THINK Dataflow & Anwendung von Schieberegistern sollte deine Frage beantworten.

Gruß, Jens
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
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.)
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.
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…
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
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!
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
Referenz-URLs