-> Hier kostenlos registrieren
Hallo,
ich beschäftige mich gerade damit Logfiles zu schreiben. Dazu habe ich folgendes kleines Testprogam geschrieben:
ich logge mich in die SPS ein, setze Auf=true, auf =false -> die Datei ist geöffnet.
Setze Schreiben auf true, warte kurz, dann auf false -> die Datei wird mit Zeilen vollgeschrieben in denen test steht.
Setze zu auf true, warten zu auf false -> datei wurde geschlossen.
Funktioniert, habe eine Textdatei in der ein Haufen Zeilen mit 'test' stehen.
Ich logge mich aus, ändere test in test2 und wiederhole den Vorgang. eigentlich sollten jetzt weitere Zeilen angehängt werden in denen tzest2 steht. klappt aber nicht, die ursprüglichen Zeilen wreden überschrieben und es steht überall test2. Was mach ich falsch?
nMode:=10, hex für A, sollte doch eigentlich anhängen.
danke im vorraus
ich beschäftige mich gerade damit Logfiles zu schreiben. Dazu habe ich folgendes kleines Testprogam geschrieben:
Code:
PROGRAM MAIN
VAR
fopen:FB_FileOpen;
fclose:FB_FileClose;
fWrite:FB_FileWrite;
Logfile:UINT;
StringAdr:DWORD;
Str:STRING;
auf,zu,schreiben:BOOL:=FALSE;
END_VAR
IF auf THEN
fopen.sPathName:='c:/Daten/Logfiles/log6.txt';
fopen.nMode:=10;
fopen.bExecute:=TRUE;
fopen;
fopen.bBusy;
fopen.bError;
fopen.nErrId;
Logfile:=fopen.hFile;
ELSE
fopen.bExecute:=FALSE;
fopen;
END_IF
IF schreiben THEN
fwrite.bExecute:=FALSE;
fwrite;
Str:='test$R$N';
StringAdr:=ADR(Str);
fwrite.hFile:=LogFile;
fwrite.pWriteBuff:=StringAdr;
fwrite.cbWriteLen:=8;
fwrite.bExecute:=TRUE;
fwrite;
END_IF
IF zu THEN
fclose.hFile:=Logfile;
fclose.bExecute:=TRUE;
fclose;
fclose.bBusy;
fclose.bError;
fclose.nErrId;
fclose.sNetId;
ELSE
fclose.bExecute:=FALSE;
fclose;
END_IF
Setze Schreiben auf true, warte kurz, dann auf false -> die Datei wird mit Zeilen vollgeschrieben in denen test steht.
Setze zu auf true, warten zu auf false -> datei wurde geschlossen.
Funktioniert, habe eine Textdatei in der ein Haufen Zeilen mit 'test' stehen.
Ich logge mich aus, ändere test in test2 und wiederhole den Vorgang. eigentlich sollten jetzt weitere Zeilen angehängt werden in denen tzest2 steht. klappt aber nicht, die ursprüglichen Zeilen wreden überschrieben und es steht überall test2. Was mach ich falsch?
nMode:=10, hex für A, sollte doch eigentlich anhängen.
danke im vorraus