Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
03.02.2015, 17:40 (Dieser Beitrag wurde zuletzt bearbeitet: 03.02.2015 18:36 von tsa.)
Schon mal vorweg habe extrem viel gelernt! Im Anhang das von mir produzierte Schaltbild (bitte unbedingt auf Fehler / Verbesserungsmöglichkeiten hinweisen!)
Musste in der While Schleife 2 mal aufschlüsseln vgl. mit dem von dir geposteten Beispiel.
Wie das ganze mit dem Variant funktionieren soll ist mir nach wie vor unklar, dafür muss ich das Clusterarray ja einzeln durchgehen oder?
Noch als zusätzliche Frage, wie kann ich denn den Starttimestamp setzen?
Viele Grüße,
tsa
EDIT: Zusätzlich schaffe ich es nicht, dieses Array aus Clustern in einem Graphen anzuzeigen. Mein Plan war, das Clusterarray in ein Waveform Array umzuwandeln, und dieses dann mit dem Graphen anzeigen zu lassen. Allerdings schaffe ich es nicht, aus den einzelnen Waveformen ein Array zu machen, ich könnte höchstens ein 2D Double Array bauen, aber damit verliere ich ja meinen Zeitstempel und mein dt, was ja in erster Linie ausschlaggeben für die verwendung der Waveform war. Ich habe zusätzlich das VI hochgeladen, mit einem angefangenen Vorschlag für den Graphen, falls sich jemand spielen möchte :-)
Hab das jetzt auf meine Strukturen übertragen und es funktioniert ganz prächtig! So wie ich es verstanden habe, werden die Attribute des Variant "missbraucht", um ein assoziatives Datenfeld zu bekommen, noch dazu mit unterschiedlichen Datentypen, genau so etwas wollte ich!
Jetzt würde ich gerne wissen, wie man sinnvoll die Plotbezeichnungen ändert, bin schon auf eine Lösung gekommen (siehe Anhang), vielleicht gibt es noch was besseres wo ich den aktiven Plot nicht ändern muss (der rote konvertierungspunkt macht mich ein bisschen Sorgen, und zusätzlich bin ich mir nicht ganz über die Bedeutung des aktiven Plots im klaren).
Viele Grüße,
tsa
04.02.2015, 13:08 (Dieser Beitrag wurde zuletzt bearbeitet: 04.02.2015 13:10 von GerdW.)
dein Bild zeigt einige Wissenlücken auf:
- Wenn du ein Array mit zwei Einträgen "Strom" und "Spannung" erzeugen willst, dann musst du nicht erst ein leeres Array erzeugen und dort diese beiden Elemente einfügen! Erst reicht völlig aus, die beiden Elemente mittels BuildArray zu einem Array zusammenzufügen…
- Wenn du alle Elemente eines Array mit einer Schleife bearbeiten willst, dann musst du nicht die Arraygröße bestimmen und in der Schleife mit IndexArray arbeiten. Verwende lieber die Autoindizierung!
Zitat:Jetzt würde ich gerne wissen, wie man sinnvoll die Plotbezeichnungen ändert, bin schon auf eine Lösung gekommen
Diese Lösung ist prinzipiell richtig und universell verwendbar.
Da du sonst aber auch mit Waveforms arbeitest, gibt es ein besseres Feature, welches die LabVIEW-Hilfe erläutert: nicht nur Variants haben Attribute, sondern auch Waveforms! Und der Graph wertet eben diese Attribute von Waveforms aus, um z.B. die Plotnamen anzupassen…
Zitat:was besseres wo ich den aktiven Plot nicht ändern muss (der rote konvertierungspunkt macht mich ein bisschen Sorgen, und zusätzlich bin ich mir nicht ganz über die Bedeutung des aktiven Plots im klaren).
Um den "aktiven Plot" kommst du hier nicht drum herum. Weil: es gibt hier Properties wie "Plotname", die sich auf den gerade aktuellen Plot beziehen. Um für alle Plots den Namen zu ändern, musst du eben der Reihe nach alle Plots aktivieren. Man kann übrigens mehrere Properties mit einer Propertynode setzen/lesen…
Das gleiche Prinzip gilt auch für andere Dinge wie Graph-Achsen, die es auch mehrfach geben kann.
Der Hinweis mit den Attributen der Waveforms war wunderbar, hab das jetzt so realisiert (siehe Anhang)!
Die Verwaltung der Daten intern wird erstmal so klappen, der zweite große Punkt war das anzeigen. Ich habe mir jetzt einen Button für eine umschaltbare Zeitachse gemacht (einmal Relativ, einmal Absolut, siehe Anhang), leider beginnt die Achse bei relativer Zeit bei 01:00:00, ich habe keine Ahnung, woher diese Stunde kommt. Ich habe über diese Eigenschaftsknoten bei relativer Zeit die Option "Zeitstempel ignorieren" aktiviert, da ich sonst sehr hohe Zahlenwerte auf der Achse stehen hab (Ich nehme einmal an, der Zeitstempeldatentyp ist intern als Zahl definiert, die ein vielfaches einer Zeiteinheit darstellt, welche seit einem Zeitpunkt 0 vergangen ist, und diese hohen Zahlen stellen die Stunden seit dem Zeitpunkt 0 dar, müsste so um 01.01.1900 herum sein)
Zitat:ich habe keine Ahnung, woher diese Stunde kommt.
In welcher Zeitzone arbeitest du?
Zitat:Ich nehme einmal an, der Zeitstempeldatentyp ist intern als Zahl definiert, die ein vielfaches einer Zeiteinheit darstellt, welche seit einem Zeitpunkt 0 vergangen ist, und diese hohen Zahlen stellen die Stunden seit dem Zeitpunkt 0 dar, müsste so um 01.01.1900 herum sein
der Fehler liegt im von dir verwendeten Formatstring für die X-Achse.
Die Formatcodes für relative und absolute Zeitangaben sind unterschiedlich - genaueres findest du beim Thema Formatcodes in der LabVIEW-Hilfe!