LabVIEWForum.de - Daten einlesen, Puffern und abspeichern

LabVIEWForum.de

Normale Version: Daten einlesen, Puffern und abspeichern
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,
um keine Probleme in meinem richtigen Programm für einen Prüfstand zu bekommen habe ich mir mal ein kleines Test.vi gebaut.
Da ich noch relativer Neuling im Bereich LV bin würde ich euch bitten, das ihr euch das Programm mal anschaut und mir mögliche Fehler oder Gefahren nennen...

Nun aber erst mal zu dem was ich überhaupt machen möchte:

Ich nutze eine State Machine für einen Prüfstand. Dort ist das ganze Handling programmiert, was auch funktioniert.
Wenn ich einen Butten "Start" drücke, soll eine Messung mehrerer Signale beginnen und solange durchgeführt werden bis ich den Button "Stop" drücke oder eine Sicherheitsabschaltung passiert (was ich jetzt nicht in meinem Test.vi eingebaut habe).
Die Signale sollen alle 10ms gespeichert werden, welche ich über Profibus, Ethernet und Analog mittels DAQmx bekomme.
Ich hatte die Erfassung der Signale schon mal teilweise in der State Machine realisiert, jedoch wurde diese damit sehr langsam.
Deshalb hatte ich die Idee die Daten für jeden Bereich (Profibus, Ethernet, Analog) jeweils in einer separaten "Erzeuger/Verbraucher" Schleife, mit Hilfe von TDMS zu realisieren und diese später dann in der State Machine wieder zu verarbeiten.
--> Hilft mir das im Hinblick auf die Geschwindigkeit??
--> im VI seht ihr das ich die Erfassung in der Erzeugerschleife mit einer lokalen Variablen aus der State Machine starte. Ist das oK, wie geht es anders??


Kurz zum VI, das im Anhnag ist.
Mit "Start=true" beginnt die Messung, da ich diesen als Schalter ausgelegt habe messe ich solange bis ich diesen wieder betätige.
Mit "Stop" beende ich LabVIEW.
Dies entspricht zwar nur grob wie ich es später vor habe, aber das macht weiter nichts. Da es mir mehr um das erfassen der Signale und das speichern geht...

Lg
Hallo Andy_B,

das mit den Producer-Loops find ich gut soweit. Allerdings nicht den Consumer-Teil. Ich würde vorschlagen eine gemeinsame Consumer Loop zu nehmen für die Speicherung. Aber: Für die Visualisierung im Programm würde ich entweder direkt in Diagramm/Anzeigeelement schreiben lassen in der ConsumerLoop, oder - falls noch zusätzliche Operationen mit den Daten vor der Anzeige geschehen sollen - mittels einer weiteren Queue die Daten in einer weitere "Aufbereitungs-"ConsumerLoop schicken, wo dann das Diagramm/Anzeigeelement ist. Damit würde dann die "Speicher-Loop" zu einem hybriden ConsumerProducer werden; d.h. die "Anzeige-Queue" darf nicht volllaufen und bocken.

In der State Machine wird dann nur noch der Prozess gesteuert, also Befehle an die ProducerLoops geschickt. Ein/Aus.

Grüße und viel Glück
Referenz-URLs