-> Hier kostenlos registrieren
Hallo zusammen, ich bin dabei mich in die Programmiersprache strukturierter Text einzuarbeiten und habe dabei folgendes Problem.
Ich möchte mit Codesys V3 eine CSV Datei einlesen und verarbeiten. Die Datei soll aus drei Spalten bestehen (Index, Zeit, Spannung) die jeweils durch ein Trennzeichen getrennt werden. Mit Hilfe des Trennzeichen möchte ich erkennen zu welchen dieser drei Kategorien die Zeichen gehören.
Beim einlesen möchte ich die Zeichen einzeln einlesen und anschließend in einem weiteren String wieder zusammen fügen. Das einlesen klappt soweit, allerdings funktioniert das zusammensetzen mit dem Befehl "CONCAT(x ,y)" der beiden STRINGs nicht. Mein Problem hierbei ist das ich online sehe dass die einzelnen Zeichen eingelesen werden allerdings werden diese nicht wie gewünscht zusammen gesetzt.
Mein Programm sieht wie folgt aus:
PROGRAM PLC_PRG
VAR
myTON : TON;
SysFileOpenNum : DWORD;
FileName : STRING := 'C:\CoDeSysCSV.csv';
ReadBuffer : STRING;
Buffer : STRING;
pResult : WORD;
pResult_1 : WORD;
DwWritten : DWORD;
myCount : INT;
END_VAR
myTON(IN:=NOT myTON.Q, PT:=T#1S); (* Sekunden oszi *)
IF myTON.Q THEN
CASE myCount OF
0: SysFileOpenNum := SysFileOpen(FileName, am:= ACCESS_MODE.AM_READ, pResult:= pResult);
1..20: ReadBuffer := ' ';
Buffer := CONCAT(Buffer ,ReadBuffer); // In ReadBuffer sind die einzelnen Zeichen zu sehen aber im Buffer wird nichts geschrieben
DwWritten := SysFileRead(SysFileOpenNum, ADR(ReadBuffer), LEN(ReadBuffer), pResult:= pResult_1);
21: SysFileClose(SysFileOpenNum);
END_CASE
IF myCount < 22 THEN
myCount := myCount + 1;
END_IF;
END_IF
Ich möchte mit Codesys V3 eine CSV Datei einlesen und verarbeiten. Die Datei soll aus drei Spalten bestehen (Index, Zeit, Spannung) die jeweils durch ein Trennzeichen getrennt werden. Mit Hilfe des Trennzeichen möchte ich erkennen zu welchen dieser drei Kategorien die Zeichen gehören.
Beim einlesen möchte ich die Zeichen einzeln einlesen und anschließend in einem weiteren String wieder zusammen fügen. Das einlesen klappt soweit, allerdings funktioniert das zusammensetzen mit dem Befehl "CONCAT(x ,y)" der beiden STRINGs nicht. Mein Problem hierbei ist das ich online sehe dass die einzelnen Zeichen eingelesen werden allerdings werden diese nicht wie gewünscht zusammen gesetzt.
Mein Programm sieht wie folgt aus:
PROGRAM PLC_PRG
VAR
myTON : TON;
SysFileOpenNum : DWORD;
FileName : STRING := 'C:\CoDeSysCSV.csv';
ReadBuffer : STRING;
Buffer : STRING;
pResult : WORD;
pResult_1 : WORD;
DwWritten : DWORD;
myCount : INT;
END_VAR
myTON(IN:=NOT myTON.Q, PT:=T#1S); (* Sekunden oszi *)
IF myTON.Q THEN
CASE myCount OF
0: SysFileOpenNum := SysFileOpen(FileName, am:= ACCESS_MODE.AM_READ, pResult:= pResult);
1..20: ReadBuffer := ' ';
Buffer := CONCAT(Buffer ,ReadBuffer); // In ReadBuffer sind die einzelnen Zeichen zu sehen aber im Buffer wird nichts geschrieben
DwWritten := SysFileRead(SysFileOpenNum, ADR(ReadBuffer), LEN(ReadBuffer), pResult:= pResult_1);
21: SysFileClose(SysFileOpenNum);
END_CASE
IF myCount < 22 THEN
myCount := myCount + 1;
END_IF;
END_IF