LabVIEWForum.de - Messdaten Puffern

LabVIEWForum.de

Normale Version: Messdaten Puffern
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo, ich habe nochmal ein kleines Problem das ich seit Tagen nicht gelöst bekomme. Von einem Prüfstand erfasse ich 5 verschiedene Messwerte, und lasse alle 7 Minuten einen Messintervall von einer Sekunde in eine Datei ausschreiben. Das Ganze funktioniert auch ohne Probleme. Es wäre jedoch wichtig die Messdaten der letzten Minute vor dem Versagen des Prüflings (RMS liefert ein Signal bei versagen) komplett aufzuzeichnen. Das heißt die Messwerte der letzten Minute müssten immer zwischengespeichert sein um dann bei auslösen des RMS in eine Datei geschrieben zu werden. Hierfür hatte ich mir überlegt immer abwechselnd je eine Minute in Eine und in der Nächsten in eine zweite Datei zu schreiben die immer wieder überschrieben werden. Dies erscheint mir aber als nicht so effizient und deshalb wollte ich mich erkundigen wie ich das besser lösen könnte.

Gruß
Christian
Speichere die Daten doch in einem FIFO zwischen. Dabei werden neue Daten immer angehängt, alte bei vollem FIFO gelöscht. Wenn du beispielsweise 10 Werte speichern willst, und hast den Speicher schon voll, dann wird beim Speichern des 11. Wertes dieser auf die Stelle 10 geschrieben, die ehemalige 10 rutscht auf die 9 usw. Die 1 fällt dann raus. Damit hast du immer die aktuellen 10 Werte in deinem FIFO-Speicher.
Beispielsweise kannst du die RT-FIFOs nehmen (sind aber stimmt im Realtime Modul enthalten und nicht zwangsläufig bei dir verfügbar) oder eine Shared Variable als FIFO definieren (dabei habe ich aber keine Erfahrung). Zur Not kann man sich so ein Verhalten ja auch schnell mit einem Array nachbauen, wenn man weiß, welche daten gespeichert werden müssen.
Ja, es gibt da mehrere Möglichkeiten, und die nachfolgende hat den Vorteil, einen existierenden Buffer zu benutzen und erfordert keinerlei kreative Bemühungen:

Daten in einem Signalverlaufsdiagramm darstellen, "Historienlänge" (rechte Maustaste) so wählen, daß genau die letzte Minute gespeichert bleibt. Wenn das Abspeicherungs-Signal kommt, über den Eigenschaftsknoten "Historiedaten" die Werte für die Aufzeichnung rücklesen. Wenn das Diagramm nicht sichtbar sein soll, verbergen.
Schonmal vielen Dank für die schnellen Antworten. Das Realtime-Modul habe ich leider nicht also fällt diese möglichkeit schonmal raus. Das mit dem Signalverlaufsdiagramm habe ich hier zu Hause mal getestet, aber leider nur mit einem Signalgenerator da ich hier weder eine Messkarte noch einen Signalgenerator oder den Prüfstand hier habe. Hierbei ist mir aufgefallen das das VI subjektiv relativ langsam wird. Die Signale die ich Verarbeiten muss werden kontinuierlich mit 1000Hz und 10 Samples erfasst. Wenn ich mich nicht irre, sind das bei einer Minute 600000 Messwerte und somit die Historienlänge. Wenn ich mir den FIFO mit einem Array bauen würde, kann ich mir auch vorstellen das er einiges an rechnezeit benötigt, da nach jedem neuen Wert die Alten einen Platz weiter geschoben werden müssen
Ja, es ist eben immer hilfreich, wenn man bei der Beschreibung seines Problems nicht mit technischen Angaben geizt. Von der Höhe der Samplerate hängt z.B die Art der Realisierung ganz entscheidend ab.

Deine Aufgabe ist etwas ganz und gar Gängiges, und zwar ist das eine Grundfunktion jedes Transientenrekorders oder eines digitalen Speicheroszilloskops, dort als Post-Triggerung bezeichnet: Das Gerät speichert im armierten (scharfgetellten) Zustand die Daten fortlaufend mit einer bestimmten Historienlänge, wobei zu alte Daten aus dem Puffer hinaus geschoben werden. Bei Triggerung wird die Aufzeichnung gestoppt und die Daten der Vergangenheit werden angezeigt oder permanent gespeichert.

Meines Wissens haben etliche Messkarten der E- und M-Serie von ihrer Hardware her diese Funktionalität eingebaut, ich kann Dir aber da nicht weiterhelfen, weil ich das noch nicht selbst gemacht habe. Es wäre aber die schnellste und beste Variante. Bevor Du etwas anderes machst, würde ich an Deiner Stelle erst mal die Forschungen darauf konzentrieren.

Es wäre natürlich Spitze, wenn hier jemand im Forum darüber Bescheid wüsste.
Referenz-URLs