LabVIEWForum.de
Datencluster als csv-Datei schreiben / Bessere Lösung ? - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Datencluster als csv-Datei schreiben / Bessere Lösung ? (/Thread-Datencluster-als-csv-Datei-schreiben-Bessere-Loesung)



Datencluster als csv-Datei schreiben / Bessere Lösung ? - Hachiko - 15.08.2024 13:42

Hallo Forum,

ich habe im Anhang eine Lösung in der ich mein Daten-Cluster in eine csv-Datei schreibe.

Ich hatte jetzt nur 4 Kanale an Daten würde aber sicherlich an 20 Kanälen scheitern, weil alles sicher skalierbarer machbar wäre.

Speziell meine Version das Cluster als String zu wandeln und dann in ein Array zu stecken geht sicherlich besser.

Es wäre Klasse falls jemand eine bessere Lösung hat oder etwas zu meiner Lösung sagen kann.

Das Programm hängt an, einfach Main_CSV.vi starten und das erstelle Logfile checken.

Danke vorab.

Hachiko


RE: Datencluster als csv-Datei schreiben / Bessere Lösung ? - GerdW - 15.08.2024 14:34

Hallo Hachiko,

Zitat:ich habe im Anhang eine Lösung in der ich mein Daten-Cluster in eine csv-Datei schreibe.

Ich hatte jetzt nur 4 Kanale an Daten würde aber sicherlich an 20 Kanälen scheitern, weil alles sicher skalierbarer machbar wäre.

Speziell meine Version das Cluster als String zu wandeln und dann in ein Array zu stecken geht sicherlich besser.
Wenn ich das richtig sehe, hast du lauter Einzelelemente in einem großen Cluster. (Diese Einzelelemente sind noch nicht einmal nach Kanälen angeordnet…)

Warum erstellst du nicht einen Cluster, der NUR die Werte EINES Kanals enthält - und dann ein Array of Cluster für deine Anzahl Kanäle? (Das wäre dann schon mal "skalierbar"…)

Dann brauchst du nur noch eine Funktion/subVI, welches einen Cluster in einen Text umwandelt. Dieses subVI kann dann über alle Array-Elemente aufgerufen werden…


RE: Datencluster als csv-Datei schreiben / Bessere Lösung ? - Hachiko - 16.08.2024 06:35

(15.08.2024 14:34 )GerdW schrieb:  Hallo Hachiko,

[quote]

Warum erstellst du nicht einen Cluster, der NUR die Werte EINES Kanals enthält - und dann ein Array of Cluster für deine Anzahl Kanäle? (Das wäre dann schon mal "skalierbar"…)

Hallo GerdW,

ich bin leider auf keine bessere Lösung gekommen.

Aber Danke für Deinen Tipp, genau das war mein Intention des Threads, nachzufragen wissen wie man das besser machen kann.

Gruß

Hachiko


RE: Datencluster als csv-Datei schreiben / Bessere Lösung ? - Kiesch - 28.08.2024 16:00

Um mal Klugzuscheißen:
Machst du das ganze mit Klassen die von einer Mutterklasse erben kannst du die jeweilige Klasse dann einfach ihren - von dir zu schreibenden - "ToString" Methode ausführen lassen bzw. direkt eine "dumpDataToFile" Methode ausführen lassen. Das funktioniert tatsächlich teilweise recht elegant, allerdings ist LVOOP fürs erste reinkommen durchaus ... anspruchsvoll .... und hat so seine Tücken weil du nicht von den nativen Labviewklassen erben darfst sondern nur von selbst geschriebenen.

Und ja ich weis das das erstmal recht abstrakt ist - hauptsächlich weils nur Sinn macht es genauer zu erklären wenn es dich interessiert. Die Idee ist halt aus jedem Datencluster (aka Kanal) eine Instanz einer Klasse "Messeingang" (zum Beispiel) zu machen und dann die Klasse "zu befähigen" zu wissen wie sie sich selbst loggen muss (wozu sie mit dem nötigen Input ja alle Möglichkeiten hat, weil die Klasse weis wie sie aussieht und was sie wie machen darf und muss). Dann braucht das Main VI zur Programmierzeit nicht zu wissen was genau die Klasse machen muss, sondern nur welches "Konzept" über die Methode ausgeführt wird. Die konkrete Methode wird dann über den "Typ" der Kindklasse ausgewählt.

Im Prinzip funktioniert das anschaulich wie ein (besserer) Cluster (weil die Clusterelemente "versteckt" sind) kombiniert mit einem (besseren) polymorphen VI, das erst zur Ausführungszeit entscheidet welches VI des Polymorphen VI ausgeführt wird.

Gruß Kiesch