OSCAT Forum

oscat.lib => oscat.lib fuer CoDeSys 3 => Thema gestartet von: crabtack am 25. August 2016, 16:19:17

Titel: Ini mehrfach auslesen
Beitrag von: crabtack am 25. August 2016, 16:19:17
Hi,

ich nutze den Funktionsblock INI_PARSER_FILE.
Klappt soweit bestens.

Jetzt möchte ich aber die gleiche INI Datei zur Laufzeit mehrmals Lesen, also jedes mal, wenn sie sich geändert hat (Wird per FTP auf die SPS übertragen).
Dies funktioniert leider nicht, nur der Erste durchlauf funktioniert.

Danach wird die INI datei nicht erneut gelesen.
Ich denke, das Problem ist, dass im INI_PARSER_FILE Funktionsblock der Positionszeiger "i" nicht zurückgesetzt wird.

Somit funktioniert beim ersten Aufruf Alles und der Positionszeiger zeigt auf das Ende der Datei.
Beim nächsten Aufruf ist der Funktionszeiger somit direkt am Ende der Datei.

Gibt es einen anderen Weg?

Grüße
Olaf
Titel: Re: Ini mehrfach auslesen
Beitrag von: peewit am 25. August 2016, 22:53:36
Prinzipiell muss das funktionieren.
Kannst du deinen code online stellen
Titel: Re: Ini mehrfach auslesen
Beitrag von: crabtack am 26. August 2016, 09:19:23
Hi, danke für die schnelle Antwort!

Der Code ist verteilt in mehrere Dateien.
Ich habe ihn zur besseren Übersicht auf pastebin hochgeladen.

IniFileReader:
http://pastebin.com/Y3FeUPmj

MIniFile:
http://pastebin.com/SBp82M5T

Initializer:
http://pastebin.com/im5rTN3r

MProcessKey:
http://pastebin.com/j6iutKXn

Im Initializer Code wird die Globale Variable xTriggerAufbereitungIniChanged überprüft (Diese wird aus einem anderen Task heraus gesetzt, dies funktioniert definitiv)
Wenn die Ini Datei sich geändert hat soll sie ausgelesen werden, anschließend werden die Gelesenen Objekte als SDO per CanOpen übertragen.

Wie gesagt, das Auslesen funktioniert beim Start einmal, danach nicht mehr.

Ich hoffe der Code ist nicht zu unübersichtlich.

Grüße
Olaf