LabVIEWForum.de - In Task geschriebene Werte speichern

LabVIEWForum.de

Normale Version: In Task geschriebene Werte speichern
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Guten Morgen,

ich möchte die gemessenen Daten unsere Anlage und die Steuerung der Ventile speichern.

Die Messung und die Steuerung der Ventile laufen dabei in zwei zeitgesteuerten Schleifen.
Die Messung wird als tdms-Datei gespeichert und funktioniert fehlerfrei.
Die Ventile können manuell geschaltet werden oder es kann ein Verlauf vorgegeben werden.
Der Verlauf wird als 2d-Array vorgegeben. (0%-100%; 10 Ventile x Länge des Verlaufs)

Die Stellung der Ventile und die Messung sollen nun so in der tdms-Datei gespeichert werden,
dass ein Vergleich möglich ist. Momentan wird am Schleifenausgang der Verlauf der Ventilstellung
gesammelt und danach ein Signalverlauf(Waveform ) mit der Periode der Schleife erstellt.

Hierbei stimmt jedoch die Länge der Signale von Messung und Steuerung nicht überein.
Außerdem erscheint das Signal gestreckt. (Abweichung wird mit der Zeit größer, Druckänderung
vor dem Schalten der Ventile)

Ich habe versucht einen leeren Messkanal zu erstellen, dessen Y-Werte ich mit der Ventilstellung
überschreibe. Hier bekomme ich jedoch Probleme mit der Schleifenzeit (angestrebt sind <10 ms).


Gibt es evtl. ein Vi das die an den Task übergebenen Werte speichert?
(Direkt als Waveform/Mit den Zeitpunkten an denen geschrieben wurde)

Gibt es einen Möglichkeit die Signalverläufe zu Synchronisieren?

Kann man die Signalverläufe nachträglich bearbeiten?
(Mit den absoluten Start- und Endzeiten)


Mit freundlichem Gruß

J. Müller
Momentaner Stand des Problems

Durch Verwendung eines Start Triggers habe ich die Messwerterfassung
mit dem Start der Ausgabe starten können. Die Unterschiedliche Länge
wird durch die unteschiedlichen Schleifenzeiten erzeugt. Da das Ende der
Messung deutlich nach dem Ende des interessierenden Bereichs liegt
ist dies kein Problem mehr.


Zu den weiteren Fragen:


"Gibt es evtl. ein Vi das die an den Task übergebenen Werte speichert?"

Bis jetzt habe ich noch keins gefunden.



"Gibt es einen Möglichkeit die Signalverläufe zu Synchronisieren?"

Die Frage war wenig konkret gestellt.

Momentan Synchronisiere ich die Signalverläufe indem ich nach der
Ausgabe einen Zeitstempel erstelle und mit diesem den ausgegebenen
Wert als Signalverlauf speichere. Damit wird zwar nicht der genaue
Ausgabezeitpunkt gespeichert, aber die Speicherung erfolgt innerhalb
eines Schleifendurchlaufs und somit auf eine Millisekunde genau.



"Kann man die Signalverläufe nachträglich bearbeiten?"

Ja es gibt mehrere Möglichkeiten.

Mit LabVIEW:
Einlesen->t0 Ersetzen->Speichern

Mit Diadem:
X-Offset eintragen



Mit freundlichem Gruß

J. Müller
Hallo,
Zur Synchronisierung in LV, DIAdem bei unterschiedlichen delta t, kann ich Dir einen Tipp geben.
Erstelle in Deiner TDMS-Datei einen eigenen Zeitstempel-Kanal und für jedes unterschiedliche delta t eine neue Kanalgruppe mit dem passenden Zeitkanal.
siehe Screenshot Anhang.
Gruß
Ralf
Referenz-URLs