Eine CSV Datei mit einer Wago 750 880 erstellen

Newbie88

Level-1
Beiträge
26
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute,

seit langem habe ich das Problem mit der WAGO 750-880 (Codesys) eine CSV DATEI zu schreiben....
Vieleicht könnte mir jemand weiter helfen. Ich versuche die Werte meines Zähler alle 5 Sekunden in
eine CSV Datei zu speichern. Leider gelingt mir das nicht. Das Zählen funktioniert und im Buffer
steht der Wert anschließend auch.....aber die Datei wird nicht erzeugt...

Das Programm:

PROGRAM PLC_PRG
VAR
zaehler:INT;
POSFLANK:BOOL;
FLANKE:BOOL;
POSFLANKE:BOOL;
TONInst:TON;
Timer_start:BOOL;
Timer_signal:BOOL;
FileName:STRING:='C:\Code.csv';
FileMode:STRING:='w';
SysFileOpenNum:WORD;
WriteBuffer:STRING;
DWWritten:WORD;
handle:WORD;
MODE:STRING;
SIGNAL: BOOL;
END_VAR



IF SIGNAL= TRUE AND FLANKE = FALSE
THEN POSFLANKE:= TRUE;
FLANKE:=TRUE;
ELSE
POSFLANKE:=FALSE;
END_IF

IF SIGNAL = FALSE THEN FLANKE:=FALSE;
END_IF

IF POSFLANKE THEN zaehler:=zaehler+1;
END_IF



TONInst(IN:= NOT TONInst.Q,PT:=T#15s);
Timer_signal:=TONInst.Q;

IF Timer_signal
THEN
SysFileOpenNum:=SysFileOpen(Filename,FileMode);
WriteBuffer:=INT_TO_STRING(zaehler);
WriteBuffer:=CONCAT(WriteBuffer, ';');
DWWritten:=SysFileWrite(SysFileOpenNum,ADR(WriteBuffer),LEN(WriteBuffer));
SysFileClose(SysFileOpenNum);
zaehler:=0;
END_IF


Hätte jemand eine Idee woran es liegt?
Für jede Hilfe wäre ich Dankbar ;)

MFG
 
Hallo Newbie88,

zwei Zeilen stechen sofort ins Auge:

FileName:STRING:='C:\Code.csv';
FileMode:STRING:='w';

Das Laufwerk C: existiert nicht. Der Controller hat ein internes Filesystem (A: )und optional eine SD-Karte (S: ). Daher wird die Datei auch nicht angelegt. Außerdem wird durch FileMode 'w' die Datei mit jedem Schreibzyklus neu angelegt. Gewollt ist wohl eher ein Anhängen der Daten, also FileMode:='a'.

Gruß,
Snert
 
Zurück
Oben