LabVIEWForum.de
Logdatei erstellen von Frontpanel-Objekten - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Logdatei erstellen von Frontpanel-Objekten (/Thread-Logdatei-erstellen-von-Frontpanel-Objekten)



Logdatei erstellen von Frontpanel-Objekten - Ruthenium-Jan - 06.08.2012 14:34

Hallo,

ich hätte eine Frage bzgl Erstellen einer Logdatei. In diese soll jede Sekunde die Werte von einigen (ca. 20) Frontpanel-Objekte gespeichert werden. Jedoch möchte ich nur einige und nicht alle Objekte. Bis jetzt sind mir folgende Ideen gekommen:

1. Man erstellt eine Referenz für jedes zu speichernde Objekt. Dann liest man die Werte aller Objekte aus und speichert diese jede Sekunde in einer Logdatei (finde ich umständlich)
2. Im Datalogging & Supervisory Control Module gibt es sogenannte Tags mit denen man die Frontpanel-Objekte markiert - diese Methode unterscheidet sich aber anscheinend nicht sehr von 1), da man dort auch Referenzen verwenden muss. Gibt es da noch andere Vorteile? Was hat es mit dieser "Citadel Database" auf sich? Diese speichert auch einen Verlauf der Daten oder?
3. Ein Projekt erstellen und eine library schreiben, die alle gewünschten Werte beinhaltet. Dann im vi alle gewünschten Frontpanelobjekte mit der Library verbinden. Dann ein subvi verwenden, um die Werte der Library zu speichern.

Ist darunter ein guter Ansatz, oder gibt es noch bessere/einfachere Möglichkeiten?

Viele Grüße,

Ruthenium-Jan


RE: Logdatei erstellen von Frontpanel-Objekten - GerdW - 06.08.2012 14:42

Hallo RJ,

Anzeigeelemente sind genau das: Anzeigeelemente. Sie sind (in LabVIEW) keine Variablen und sie sind (in LabVIEW) nur bedingt zum Speichern von Daten geeignet.

Ja, man kann mit Referenzen arbeiten und damit die aktuell angezeigten Werte abfragen. In einer Datenfluss-basierten Programmiersprache stellt sich aber die Frage, warum man Daten erst nach Ort A schieben muss, um sie dann wieder von dort (zeitaufwendig, da Referenzen) abzuholen und nach Ort B zu schieben? Warum nicht gleich einen zentralen Buffer anlegen, der nebenbei auch die Logging-Einstellungen verwaltet? Und dann aus diesem Buffer nur die Werte abholen, die auch wirklich ins Logfile sollen?

Du siehst: etwas Vorausplanung bei Software-Erstellung kann nicht schaden. Aber man kann auch mit Referenzen die Anzeigeelemente abfragen...


RE: Logdatei erstellen von Frontpanel-Objekten - M Nussbaumer - 06.08.2012 14:43

Hallo Jan

Ich würde das ganze über eine funktionale globale Variable lösen. Um die Werte auszulesen würde ich per Cluster die Referenzen auf die Controls einmalig einlesen und diese jede Sekunde auslesen bzw in die Datei schreiben. Vorteil ist, dass du die Referenz auf die Datei offenhalten kannst und dadurch unnötige Dateizugriffe (öffnen/schliessen) vermeidest.

Also im Prinzip:

1) Case Init: Referenzen einlesen & Datei öffnen
2) Case Save Values: Alle Werte in Datei speichern
3) Case Close: Datei-Referenz schliessen

Hoffe das hilft dir weiter!

Gruss Marc