CASE uiSchritte OF
0: // Wait For Start
IF Logdatei_Blinkbaustein_Flanke.Q THEN //
uiSchritte := 10 ;
END_IF ;
10: // OPEN-Start
fopen.sFileName := sFileName ;
fopen.eFileMode := File.MODE.MAPPD ; // !
fopen.xExclusive := TRUE ; // ?
Exec_open := TRUE ;
uiSchritte := 15 ;
15: // Wait For OPEN-Done
IF fopen.xDone THEN // oder wenn Open mit Error beendet!
hFile := fopen.hFile ;
Exec_open := FALSE ;
IF Headervorhanden THEN
uiSchritte := 30 ;
ELSE
uiSchritte := 20 ;
END_IF
END_IF ;
20: // Header-Start
Headervorhanden:=TRUE;
Header:=CONCAT('Datum_Und_Uhrzeit',';');
Header:=CONCAT(Header,'Fullstand_Start');
Header:=CONCAT(Header,';');
Header:=CONCAT(Header,'Fullstand_Stop');
Header:=CONCAT(Header,';');
Header:=CONCAT(Header,CRLF);
fwrite.pBuffer := ADR(Header) ;
fwrite.szSize := LEN(Header) ;
fwrite.hFile := hFile ;
Exec_write := TRUE ;
uiSchritte := 25 ;
25: // Wait For Header-Done
IF fwrite.xDone THEN // oder wenn Write mit Error beendet!
Exec_write := FALSE ;
uiSchritte := 30 ;
END_IF ;
30: // Level-Start
Echtzeit:=SysRtcGetTime (Echtzeit_Start);
SpeicherText:=DT_TO_STRING(Echtzeit);
Fullstand__Start_Text :=DINT_TO_STRING(Fuellstand_Start_analog) ;
Fullstand_Stop_Text :=DINT_TO_STRING(Fuellstand_Stopp_analog) ;
Daten_Text:=CONCAT(SpeicherText,';');
Daten_Text:=CONCAT(Daten_Text,Fullstand_Start_Text);
Daten_Text:=CONCAT(Daten_Text,';');
Daten_Text:=CONCAT(Daten_Text,Fullstand_Stop_Text);
Daten_Text:=CONCAT(Daten_Text,';');
fwrite.pBuffer := ADR(Daten_Text) ;
fwrite.szSize := LEN(Daten_Text) ;
fwrite.hFile := hFile ;
Exec_write := TRUE ;
uiSchritte := 35 ;
35: // Wait For Level-Done resp. Wait For STOP
IF fwrite.xDone THEN // oder wenn Write mit Error beendet!
IF Logdatei_Blinkbaustein_Flanke.Q THEN
uiSchritte := 30 ;
ELSE
Exec_write := FALSE ;
uiSchritte := 40 ;
END_IF ;
END_IF ;
40: // Footer-Start
fwrite.pBuffer := ADR(CRLF) ;
fwrite.szSize := LEN(CRLF) ;
fwrite.hFile := hFile ;
Exec_write := TRUE ;
uiSchritte := 45 ;
45: // Footer-Done
IF fwrite.xDone THEN // oder wenn Write mit Error beendet!
Exec_write := FALSE ;
uiSchritte := 50 ;
END_IF ;
50: // CLOSE-Start
fclose.hFile := hFile ;
Exec_close := TRUE ;
uiSchritte := 55 ;
55: // CLOSE-Done
IF fclose.xDone THEN // oder wenn Close mit Error beendet!
Exec_close := FALSE ;
uiSchritte := 0 ;
END_IF ;
END_CASE ;
fopen( xExecute := Exec_open ) ;
fwrite( xExecute := Exec_write ) ;
fclose( xExecute := Exec_close ) ;