LabVIEWForum.de
Daten verschiedener Typen in Datei loggen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenbank & File IO (/Forum-Datenbank-File-IO)
+---- Thema: Daten verschiedener Typen in Datei loggen (/Thread-Daten-verschiedener-Typen-in-Datei-loggen)



Daten verschiedener Typen in Datei loggen - ostone - 08.05.2015 19:55

Hallo,

ich weiß, es ist kurz vor Wochenende, aber da die Kita meiner Söhne heute bestreikt wurde, muss ich nun abends noch etwas ran...

Ich möchte die Ergebnisse meines Prüfprogramms gerne in einer Datei (*.txt, *.csv, o.ä.) loggen. In der ersten Spalte soll der Zeitstempel, in der zweiten Spalte ein Score [0...1000] und in der dritten Spalte ein boolscher Wert (true bzw. false) stehen. Den Score und den Zeitstempel kann ich in String umwandeln. Die Funktion für Bool in String habe ich allerdings noch nicht gefunden.

Die ersten beiden Spalten habe ich somit bisher erzeugt und in eine Tabelle geschrieben. Das VI "In Tabellenkalkulationsdatei schreiben" speichert mir die Daten.

Siehe Bild im Anhang.

Aber leider fehlt halt der Bool.

Außerdem gekomme ich es nicht hin, dass in der ersten Zeile der Tabellenkopf (sprich Zeit, Score und Übereinstimmung) steht.

Kann jemand helfen?

Schönes WE.


RE: Daten verschiedener Typen in Datei loggen - Trinitatis - 08.05.2015 20:54

Hallo,

der Formatbezeichner für Binärwerte ist %b
Du könntest aber auch mit der Funktion boolean to 0,1 arbeiten und diese Zahl dann behandeln wie deinen Score. Oder du verwendest die Format into String-Funktion und schreibst damit TRUE oder eben FALSE in die Datei.
Den Konpf kannst du als Konstantzeile vor dein Array außerhalb der Erfassungsschleife setzen oder du schreibst es garnicht in die Datei sondern nur in den Kopf der Anzeige z.B. der Tabelle.

In jedem Fall wäre es schlauer gewesen, das VI zu posten - dann hätte ich es dir gleich einbauen können.


schönes WE

Gruß, Marko


RE: Daten verschiedener Typen in Datei loggen - ostone - 11.05.2015 09:48

Hallo,

vielen Dank erst einmal für die Antwort. Das Programm ist schon relativ komplex, mit State-Maschine etc. Daher bringt das Posten des VI nicht so viel, denke ich. Habe nun mal nur die betreffende While-Schleife in ein neues VI kopiert. Kannst du mit etwas anfangen?

Im Endeffekt sollen die Daten in der Log-Datei dann so in etwas aussehen:

Zeit Trefferrate Übereinstimmung
2015-05-11 10:45 950 True
2015-05-11 10:46 847 False

Grüße


RE: Daten verschiedener Typen in Datei loggen - GerdW - 11.05.2015 09:59

Hallo ostone,

bitte weniger lokale Variablen und mehr Draht verwenden!

Beispiel:
[attachment=53075]


RE: Daten verschiedener Typen in Datei loggen - ostone - 11.05.2015 10:12

Sehr cool. Vielen Dank.

Habe mein VI-Auszug entsprechend geändert, mit wengiger lokalen Variablen und mehr Draht. 2hands Und wie bekomme ich nun den Tabellenkopf da rein? Also in die Tabelle im Frontpanel kein Problem (die soll aber ohnehin nicht angezeigt werden), aber es soll ja in der Datei in der ersten Zeile stehen... :-|


RE: Daten verschiedener Typen in Datei loggen - GerdW - 11.05.2015 10:14

Hallo ostone,

Zitat: wie bekomme ich nun den Tabellenkopf da rein?
Indem man diesen Kopf nur einmal vor der Schleife in die Datei schreibt!


RE: Daten verschiedener Typen in Datei loggen - ostone - 11.05.2015 10:49

Habe nun das Schieberegister mit 3 String-Konstanten (Zeit, Rate, Check) initialisiert. Aber nun stimmen die Dimensionen der Arrays nicht mehr überein. Stehe irgendwo auf dem Schlauch... Es muss ja ein 2D-Array werden. Aber mein "Tabellenkopf" besteht ja quasi aus einem transponierten Vektor. Oder liege ich da falsch?


RE: Daten verschiedener Typen in Datei loggen - GerdW - 11.05.2015 11:44

Hallo ostone,

Zitat:Aber nun stimmen die Dimensionen der Arrays nicht mehr überein.
Ja, das ist so.
Und warum? Weil du es so programmiert hast…

Rechtsklick auf das BuildArray -> Eingänge verknüpfen…
Und überlegen, warum dieser Schritt hilft!

War ein Schnellschuss - leider falsch…

Stattdessen:
Du willst ein 2D-Array erstellen und mit dem zweiten BuildArray eine neue Zeile zum bestehenden Array hinzufügen. Also hier nicht "Eingänge verknüpfen".
Dafür musst du aber im Schieberegister ein 2D-Array speichern - und das geht nur, wenn deine Konstante zum Initalisieren des Registers auch schon ein 2D-Array ist!
Jetzt dürfte die Lösung aber leicht zu erkennen sein… Big Grin

Zitat:Aber mein "Tabellenkopf" besteht ja quasi aus einem transponierten Vektor.
Du solltest in LabVIEW einfach nur von "Arrays" reden, in dem Fall von einem 1D-Array. Die "Richtung" ist dann nur eine optische Gestatungsoption im FP - die zugrundeliegenden Daten ändern sich nicht (THINK DATAFLOW!)…


RE: Daten verschiedener Typen in Datei loggen - ostone - 11.05.2015 11:53

Hi,

bin gerade vom Mittag zurück. Daher sind meine Gedanken noch etwas träge... Denke gleich über deinen Ansatz mal nach...

Habe es in der Zwischenzeit wie folgt gelöst -> siehe VI.

Was denkst du? Führt augenscheindlich auf den ersten Blick erst einmal zum Ziel.


RE: Daten verschiedener Typen in Datei loggen - GerdW - 11.05.2015 11:56

Hallo ostone,

Zitat:Führt augenscheindlich auf den ersten Blick erst einmal zum Ziel.
Genau - Betonung auf "einmal"…
Beim zweiten Aufruf nämlich nicht mehr!

Du musst dein Schieberegister schon ordentlich initialisieren.
Und ständig vor (wachsende) Arrays noch eine Zeile einzufügen ist auch wenig speichereffizient…