freekadelle
Level-1
- Beiträge
- 3
- Reaktionspunkte
- 0
-> Hier kostenlos registrieren
Moin aus Hamburg!
Ich versuche derzeit ein paar Messwerte in eine einfache Textdatei zu bannen. Das funktioniert auch alles ganz hervorragend.
Es gab hier im Forum mal etwas Beispielcode zu dem Thema und der lief auch direkt. Mein Problem ist nun, dass Twincat die Datei offensichtlich nicht richtig schließt.
Ich kann sie zwar öffnen, aber speichern kann ich sie nicht.
Konkreter Fall: Nachdem die Datei die 1mb grenze überschritten hatte, wollte ich ein paar Zeilen löschen, aber das ging ja leider nicht.
Daraufhin habe ich im Code einen neuen Dateinamen verwendet, die SPS schreibt nun in diese Datei und ich kann mit der alten wieder alles machen.
Hier ein Code-Ausschnitt dazu:
Zu erwähnen sollte noch sein, das zLog letztenendes bei 0 steht und kein error angezeigt wird.
Achja, Eckdaten:
CX1020 mit XP Emb. mit Tc PLC v2.10.0 build 1323
Geschrieben werden die Programme auf einem XP-PC mit Tc NC PTP v2.10.0 build 1335
Würde mich freuen, wenn ein paar Anregungen kommen.
Danke und schönes Wochenende!!!
Ich versuche derzeit ein paar Messwerte in eine einfache Textdatei zu bannen. Das funktioniert auch alles ganz hervorragend.
Es gab hier im Forum mal etwas Beispielcode zu dem Thema und der lief auch direkt. Mein Problem ist nun, dass Twincat die Datei offensichtlich nicht richtig schließt.
Ich kann sie zwar öffnen, aber speichern kann ich sie nicht.
Konkreter Fall: Nachdem die Datei die 1mb grenze überschritten hatte, wollte ich ein paar Zeilen löschen, aber das ging ja leider nicht.
Daraufhin habe ich im Code einen neuen Dateinamen verwendet, die SPS schreibt nun in diese Datei und ich kann mit der alten wieder alles machen.
Hier ein Code-Ausschnitt dazu:
Code:
CASE zLog OF
0:
IF bOpenFile THEN
zLog := 10;
bOpenFile := FALSE;
END_IF
10: (* Open file *)
oeffnen( sNetId:= '',
sPathName:= sLogFilename,
nMode:= FOPEN_MODEAPPEND OR FOPEN_MODEPLUS OR FOPEN_MODETEXT,
ePath:= PATH_GENERIC,
bExecute:= TRUE,
tTimeout:= t#2s,
bBusy=> ,
bError=> ,
nErrId=> ,
hFile=> hFile);
IF NOT oeffnen.bBusy THEN
oeffnen(bExecute:= FALSE);
zLog := 20;
END_IF
20: (* Write data *)
IF bWriteData THEN
schreiben( sNetId:= '',
hFile:= hFile,
pWriteBuff:= ADR(data_for_disk),
cbWriteLen:= LEN(data_for_disk),
bExecute:= TRUE,
tTimeout:= t#3s,
bBusy=> ,
bError=> ,
nErrId=> ,
cbWrite=> );
IF NOT schreiben.bBusy THEN
bWriteData := FALSE;
schreiben(bExecute := FALSE);
END_IF
ELSE
zLog := 30;
END_IF
30: (* Close file *)
schliessen( sNetId:= '',
hFile:= hFile,
bExecute:= TRUE,
tTimeout:= t#3s,
bBusy=> schlBUSY,
bError=>schlERROR ,
nErrId=>schlERRID );
IF NOT schliessen.bBusy THEN
schliessen(bExecute := FALSE);
zLog := 0;
END_IF
END_CASE
Zu erwähnen sollte noch sein, das zLog letztenendes bei 0 steht und kein error angezeigt wird.
Achja, Eckdaten:
CX1020 mit XP Emb. mit Tc PLC v2.10.0 build 1323
Geschrieben werden die Programme auf einem XP-PC mit Tc NC PTP v2.10.0 build 1335
Würde mich freuen, wenn ein paar Anregungen kommen.
Danke und schönes Wochenende!!!