LeChercheur
Level-1
- Beiträge
- 11
- Reaktionspunkte
- 0
-> Hier kostenlos registrieren
Hallo Zusammen,
ich möchte meine Variablen in einer csv datei protokollieren. Ich möchte die Protokollierung als Beispiel 5 Sekunden lang Schreiben und 15 Sekunden pausieren.
Dafür habe ich ein Blinkbaustein erstellt und folgendes Programm geschrieben.
Es wird leider nicht in die Datei geschrieben. Vielleicht sieht einer was ich falsch mache oder was ich ändern muss, damit es funktioniert. Hier ist mein Code:
ich möchte meine Variablen in einer csv datei protokollieren. Ich möchte die Protokollierung als Beispiel 5 Sekunden lang Schreiben und 15 Sekunden pausieren.
Dafür habe ich ein Blinkbaustein erstellt und folgendes Programm geschrieben.
Es wird leider nicht in die Datei geschrieben. Vielleicht sieht einer was ich falsch mache oder was ich ändern muss, damit es funktioniert. Hier ist mein Code:
Code:
VAR
bWriteData:BOOL:=FALSE;
uiSchritte:UDINT:=0;
sFileName: CAA.FILENAME:='\Usbstorage\Test.csv';
hFile:CAA.HANDLE;
CRLF:STRING(2):= '$R$N';
LF:STRING(1):= '$N';
//------------------------ Daten ----------------------------------
Echtzeit: DT;
Echtzeit_Start: BOOL;
SpeicherText: STRING;
Fuellstand_Start_Text:STRING;
Fuellstand_Stop_Text:STRING;
Fuellstand_Text:STRING;
//------------------------ Ende Daten---------------------------------
BLK: BLINK;
bEnable: BOOL;
bitstate:BOOL;
//function block for file handling
fopen : FILE.Open;
fwrite : file.Write;
fclose : file.Close;
END_VAR
IF Logdatei_Blinkbaustein_Flanke.Q THEN // (Blinkbaustein wurde erstellt (5Sekunden Svchreiben und 15Sekunden pausieren zum Beispiel)
CASE uiSchritte OF
0:
uiSchritte:=10;
10:
fopen.sFileName:=sFileName;
fopen.eFileMode:=File.MODE.MRDWR; //File.MODE.MAPPD;
fopen.xExclusive:=TRUE;
fopen( xExecute:=TRUE);
IF fopen.xDone THEN
hFile:=fopen.hFile;
uiSchritte:=30;
END_IF
20: (* write log data to file *)
fwrite.hFile:=hFile;
Echtzeit:=SysRtcGetTime (Echtzeit_Start);
SpeicherText:=DT_TO_STRING(Echtzeit);
fwrite.pBuffer:=ADR(SpeicherText);
fwrite.szSize:=LEN(SpeicherText);
fwrite.pBuffer:=ADR(CRLF);
fwrite.szSize:=LEN(CRLF);
//------------------------------------------------- Fuellstand_Start-----------------------------
Fuellstand_Start_Text:=DINT_TO_STRING(Fuellstand_Start_analog);
fwrite.pBuffer:=ADR(Fuellstand_Start_Text);
fwrite.szSize:=LEN(Fuellstand_Start_Text);
fwrite.pBuffer:=ADR(CRLF);
fwrite.szSize:=LEN(CRLF);
//------------------------------------------------- Fuellstand_Stopp-----------------------------
Fuellstand_Stop_Text:=DINT_TO_STRING(Fuellstand_Stopp_analog);
fwrite.pBuffer:=ADR(Fuellstand_Stop_Text);
fwrite.szSize:=LEN(Fuellstand_Stop_Text);
fwrite.pBuffer:=ADR(CRLF);
fwrite.szSize:=LEN(CRLF);
//------------------------------------------------- Fuellstand-----------------------------
Fuellstand_Text:=DINT_TO_STRING(Fuellstand);
fwrite.pBuffer:=ADR(Fuellstand_Text);
fwrite.szSize:=LEN(Fuellstand_Text);
fwrite.pBuffer:=ADR(CRLF);
fwrite.szSize:=LEN(CRLF);
fwrite.udiTimeOut:=100000; //Timeout
fwrite( xExecute:=TRUE);
IF fwrite.xDone THEN
fwrite( xExecute:=FALSE);
uiSchritte:=30;
END_IF
30: (* close log file *)
fclose.hFile:=hFile;
fclose( xExecute:=TRUE);
IF fclose.xDone THEN
fopen( xExecute:=FALSE);
fwrite( xExecute:=FALSE);
fclose( xExecute:=FALSE);
uiSchritte:=0;
END_IF
END_CASE
END_IF