ich würde gerne eine eigene Log-Datei anlegen in der alle möglichen Informationen / Fehler aus dem CoDeSys-Projekt eingesammelt werden. Dazu werden z.B. die Fehler in einen Ringpuffer eingetragen. Um nun bestimmte Informationen daraus in eine Datei schreiben zu können, öffne ich beim Start der Maschine eine Datei (SysFileOpen, mode = append) und eine niederpriore Task schaut dann ab und an mal in dem Ringpuffer nach, ob etwas Interessantes da ist und schreibt das dann in diese Log-Datei (SysFileWrite).
Hoffentlich war das einigermaßen verständlich...
Jetzt habe ich aber folgendes Problem: Während die Maschine läuft (und die Log-Datei somit geöffnet ist) kann ich die neuesten Einträge in der Datei nicht sehen (wenn ich parallel z.B. über einen ftp-Client auf die Datei schaue). Erst wenn ich diese über SysFileClose schließe wird die Datei aktualisiert.
Ist das normal/ kann man das umgehen?
Gruß
Steffi
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
-
2009-04-28
Originally created by: Stephanie Kreutz
naja, dass das Öffnen und Schließen doch einige Zeit in Anspruch nimmt und ich es einfach schöner fände, wenn man die Datei wirklich nur schließt wenn das auch Sinn macht ..
...hänge wohl doch noch ab und zu in der C-Programmierer-Welt fest
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Originally created by: Stephanie Kreutz
Hallo zusammen,
ich würde gerne eine eigene Log-Datei anlegen in der alle möglichen Informationen / Fehler aus dem CoDeSys-Projekt eingesammelt werden. Dazu werden z.B. die Fehler in einen Ringpuffer eingetragen. Um nun bestimmte Informationen daraus in eine Datei schreiben zu können, öffne ich beim Start der Maschine eine Datei (SysFileOpen, mode = append) und eine niederpriore Task schaut dann ab und an mal in dem Ringpuffer nach, ob etwas Interessantes da ist und schreibt das dann in diese Log-Datei (SysFileWrite).
Hoffentlich war das einigermaßen verständlich...
Jetzt habe ich aber folgendes Problem: Während die Maschine läuft (und die Log-Datei somit geöffnet ist) kann ich die neuesten Einträge in der Datei nicht sehen (wenn ich parallel z.B. über einen ftp-Client auf die Datei schaue). Erst wenn ich diese über SysFileClose schließe wird die Datei aktualisiert.
Ist das normal/ kann man das umgehen?
Gruß
Steffi
Moin
Du kannst das umgehen, indem die Datei nach jedem Schreibvorgang geschlossen wird (und vor dem nächsten Schreiben natürlich wieder geöffnet).
Sonst nicht.
Bsp:
dwFileWrite := SysFileOpen(FileName:=strFileName, Mode:='a');
IF dwFileWrite = 0 THEN (error: file couldn't be opened )
END_IF
dwBytesWritten := SysFileWrite(File:=dwFileWrite, Buffer:=ADR(strDataBuffer), Size:=LEN(strDataBuffer));
IF dwBytesWritten = LEN(strDataBuffer) THEN
END_IF
Gruss
Erik
Originally created by: Stephanie Kreutz
Diese Antwort hatte ich befürchtet..
trotzdem Danke für die Antwort
Hi
Und was ist an der Antwort so schlimm ?
Gruß
Erik
Originally created by: Stephanie Kreutz
naja, dass das Öffnen und Schließen doch einige Zeit in Anspruch nimmt und ich es einfach schöner fände, wenn man die Datei wirklich nur schließt wenn das auch Sinn macht ..
...hänge wohl doch noch ab und zu in der C-Programmierer-Welt fest