15.12.2010, 14:55
Hallo LabViewforum:
ich habe folgende Aufgabe zu bewältigen:
ich bekomme einen Datensatz einer Messung als txt Datei. Jede Zeile dieser Datei ist eine eigenständige Messung. In einer Messung werden mehrere Parameter gleichzeitig gemessen. In den obersten beiden Zeile befinden sich keine Messdaten sondern eine Kommentarzeile die mit # abgeschlossen wird und in der zweiten Zeile die Namen der Parameter die mit * abgeschlossen wird. Weiterhin wird jede Messung mit ? abgeschlossen. Die einzelnen Parameter in einer Messung werden durch ; voneinander getrennt.
Nun sollen die Daten wieder für LabView zur Weiterverarbeitung eingelesen werden. Dazu habe lich das VI Load Data geschrieben (unten angehängt). Die Daten werden eingelesen und dann für jede Messung in ein Control "Mustercluster" geschrieben. Alle Messungen sollen dann ein Array aus beschriebenen Musterclustern ergeben das den Ausgang des Vis bilden muss (Vorgabe vom Chef).
Außerdem sollte die Sache wenn irgendwie möglich mit dem Control Mustercluster nicht abgeschafft werden da es sich in vielen anderen SubVIs wiederfindet und quasi Kern des ganzen Projektes ist und je nach Messung geändert werden können sollte. Befindet sich in der text datei ein Parameter der nicht im Mustercluster vorhanden ist soll dieser auch nicht berücksichtigt werden. Befindet sich im Mustercluster ein Parameter der nicht in der txt Datei vorhanden ist soll dieser mit NAN oder 0 belegt werden.
Das Problem ist das es bei größeren Datenmengen relativ langsam geht. Bei 100 Messungen dauert es schon mehrere Sekunden. Die Dateien sollen aber später bis zu mehrere Tausend Messungen enthalten können.
Außerdem ist mir aufgefallen das am Anfang das Cluster langsam gefüllt wird spätere Cluster dann aber immer schneller gefüllt werden können.
Ich habe gelesen, dass der häufige Aufruf von Propertie Nodes die Performance verringert, daher habe ich noch das VI " Load data mit wenig Property Nodes" geschrieben bringt aber kaum einen Zeitvorteil.
Was kann ich verbessern so, dass man die Daten in relativ kurzer Zeit einlesen kann? Wenn es keine andere Möglichkeit gibt könnte ich zur Not das Format der Datei ändern ( aber nur wenn es unbedingt sein muss.
Wo kann ich mich gezielt informieren wie LabView intern und in den zur Verfügung gestellten VIs arbeitet. Was kostet am meisten Speicher und Rechenzeit?
Hoffe ihr könnt mir ein paar nützliche Tipps geben.
ich hänge mal meine beiden VIs an und eine Beispiel Daten txt datei.
MrStrom
Mist wie kann ich denn jetzt die VIS anhängen ???
ich habe folgende Aufgabe zu bewältigen:
ich bekomme einen Datensatz einer Messung als txt Datei. Jede Zeile dieser Datei ist eine eigenständige Messung. In einer Messung werden mehrere Parameter gleichzeitig gemessen. In den obersten beiden Zeile befinden sich keine Messdaten sondern eine Kommentarzeile die mit # abgeschlossen wird und in der zweiten Zeile die Namen der Parameter die mit * abgeschlossen wird. Weiterhin wird jede Messung mit ? abgeschlossen. Die einzelnen Parameter in einer Messung werden durch ; voneinander getrennt.
Nun sollen die Daten wieder für LabView zur Weiterverarbeitung eingelesen werden. Dazu habe lich das VI Load Data geschrieben (unten angehängt). Die Daten werden eingelesen und dann für jede Messung in ein Control "Mustercluster" geschrieben. Alle Messungen sollen dann ein Array aus beschriebenen Musterclustern ergeben das den Ausgang des Vis bilden muss (Vorgabe vom Chef).
Außerdem sollte die Sache wenn irgendwie möglich mit dem Control Mustercluster nicht abgeschafft werden da es sich in vielen anderen SubVIs wiederfindet und quasi Kern des ganzen Projektes ist und je nach Messung geändert werden können sollte. Befindet sich in der text datei ein Parameter der nicht im Mustercluster vorhanden ist soll dieser auch nicht berücksichtigt werden. Befindet sich im Mustercluster ein Parameter der nicht in der txt Datei vorhanden ist soll dieser mit NAN oder 0 belegt werden.
Das Problem ist das es bei größeren Datenmengen relativ langsam geht. Bei 100 Messungen dauert es schon mehrere Sekunden. Die Dateien sollen aber später bis zu mehrere Tausend Messungen enthalten können.
Außerdem ist mir aufgefallen das am Anfang das Cluster langsam gefüllt wird spätere Cluster dann aber immer schneller gefüllt werden können.
Ich habe gelesen, dass der häufige Aufruf von Propertie Nodes die Performance verringert, daher habe ich noch das VI " Load data mit wenig Property Nodes" geschrieben bringt aber kaum einen Zeitvorteil.
Was kann ich verbessern so, dass man die Daten in relativ kurzer Zeit einlesen kann? Wenn es keine andere Möglichkeit gibt könnte ich zur Not das Format der Datei ändern ( aber nur wenn es unbedingt sein muss.
Wo kann ich mich gezielt informieren wie LabView intern und in den zur Verfügung gestellten VIs arbeitet. Was kostet am meisten Speicher und Rechenzeit?
Hoffe ihr könnt mir ein paar nützliche Tipps geben.
ich hänge mal meine beiden VIs an und eine Beispiel Daten txt datei.
MrStrom
Mist wie kann ich denn jetzt die VIS anhängen ???