LabVIEWForum.de
konfig-Datei schreiben und auslesen - 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: konfig-Datei schreiben und auslesen (/Thread-konfig-Datei-schreiben-und-auslesen)



konfig-Datei schreiben und auslesen - checkedbasic - 12.10.2010 19:29

Hallo,

ich habe ein Programm, das verschiedene Regler beinhaltet. Für jeden Regler werden die jeweiligen Parameter in einer separaten Konfig-Datei abgespeichert.
Ich habe ein VI geschrieben, das die konfig-Datei anlegt und eins das sie ausliest.
Hierbei kommt es aber zu Problemen. Die Werte werden schon beim speichern nicht in der richtigen Reihenfolge abgelegt.

Ich habe mal ein Test-VI erstellt. Ausserdem habe ich 4 Sub-Vis beigefügt.
Vielen Dank für Eure Hilfe.

Gruß Christian

P.S.: Ich benutze LV Version 2009

[attachment=29910]
[attachment=29911]
[attachment=29912]
[attachment=29913]
[attachment=29914]


konfig-Datei schreiben und auslesen - jg - 12.10.2010 22:41

Interessante Effekte, die in dem Bsp. so auftreten.

Aber beseitigen wir erst einmal die wirklichen Programmierfehler:
Erster Fehler in write new regulator config:
[attachment=29917]
Zweiter Fehler in deinem Test Konfig.vi:
[attachment=29918]

Dann zum nächsten Punkt: Die Reihenfolge, in der Keys in einem ini-File stehen, ist vollkommen egal. Das ist gerade der Vorteil an dem Format, Hauptsache es stehen alle Keys korrekt drin.

Viel ärgerlicher - und da stimme ich dir zu - fand ich es, dass es beim Einlesen zu Fehlermeldungen kam.
Aber ich denke, ich hab da eine Ahnung, woher die kommen.
Wenn man sich die Config-File-VIs mal anschaut, dann sieht man, dass der File erst bei "Close Config Data.vi" geschrieben wird, oder exakter, hier geht der Befehl an BS, das doch mal zu machen. Ohne ein "Flush File" kann das ein wenig dauern. Du hängst aber gleich dein Auslese-VI dahinter, da ist der File vielleicht noch gar nicht erzeugt.

Ähnliche Effekte dürften stören, wenn die Ini-Files schon alle angelegt sind, du also nur in einer Schleife alle Einlesen willst. Oder es hängt mit den Queues zusammen, die da seit LV2009 in den Config-File VIs verwendet werden. Ich musste recht große Wait-VIs integrieren, bis ich keine Fehlermeldungen mehr bekommen habe. Am Schluß sah das so aus, damit Files zuverlässig erzeugt wurden - und auch das Einlesen keinen Ärger mehr gemacht hat:
[attachment=29919]

Das Ganze kannst du mal an NI als Fehler-Meldung schicken.
Man müsste mal testen, ob es diese Effekte schon unter 8.6 gab, da waren die Config-File-VIs noch anders programmiert.

Gruß, Jens


konfig-Datei schreiben und auslesen - jg - 13.10.2010 21:12

Ich muss meine Aussage von gestern mit den Lesefehlern ein wenig abschwächen: Auf einem anderen PC lief alles korrekt und wie erwartet, ohne zusätzliche Wartezeiten - natürlich nach Behebung der angesprochenen Fehler.
Gruß, Jens


konfig-Datei schreiben und auslesen - Lucki - 14.10.2010 14:59

Hat jetzt nichts mit der Frage zu tun, nur so zur weiteren Anregung:
Ich versuche immer, solche endlosen Code-Wiederholungen (- hier: Schreiben von vielen Werten in die INI-Datei) in eine Schleife zu packen.
Habe es als Beispiel mal mit einem SUB-VI gemacht (es ist wegen einiger Elementenamen nicht zu 100% kompatibel, wäre aber ganz leicht zu ändern).

Lv09_img2[attachment=29961]


konfig-Datei schreiben und auslesen - checkedbasic - 23.10.2010 19:34

Vielen Dank für Eure Anregungen.

@Jens:
Ich habe mit dem LV Support telefoniert und dem die gleichen VIs zugeschickt; natürlich nachdem ich die beiden von Dir entdeckten Fehler behoben hatte. Der konnte die Fehler leider nicht reproduzieren und konnte mir bislang auch keinen Lösungsvorschlag nennen. Bei mir hat aber auch Dein VI mit den langen Wartezeiten Fehler produziert. Das Kuriose ist, dass es manchmal ohne Fehler durchläuft aber meistens halt nicht.
Ich werde am Mo nochmal mit dem LV-Support telefonieren um zu klären, ob denen eine Lösung eingefallen ist.

@Lucki:
Vielen Dank. Der Ansatz hier über Referenzen zu arbeiten ist super.