Autor Thema: Ini mehrfach auslesen  (Gelesen 5848 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline crabtack

  • Newbie
  • *
  • Beiträge: 2
    • Profil anzeigen
Ini mehrfach auslesen
« 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

Offline peewit

  • Moderator
  • *****
  • Beiträge: 2 378
    • Profil anzeigen
Re: Ini mehrfach auslesen
« Antwort #1 am: 25. August 2016, 22:53:36 »
Prinzipiell muss das funktionieren.
Kannst du deinen code online stellen

Offline crabtack

  • Newbie
  • *
  • Beiträge: 2
    • Profil anzeigen
Re: Ini mehrfach auslesen
« Antwort #2 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