Initialisierung ARRAY OF STRING - TwinCAT 3 (STRING TO CSV)

maxgutier

Level-1
Beiträge
14
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Tag,

ich bin ein Programmier-anfänger und habe folgendes Problem: Ich möchte aus einem STRING einen CSV Field mit TwinCAT 3 schreiben und speichern, und dafür verwende ich den von Beckhoff geschriebenen Code in folgenden Link ( https://infosys.beckhoff.com/index.php?content=../content/1031/tcplclibutilities/html/TcPlcLibUtilities_CSV_Sample.htm&id= ).
Wenn ich versuche, den Code zu kompilieren, bekomme ich einige Fehlermeldungen, da wo ich den Array deklarieren will:
Code:
PROGRAM Data_ST

VAR

MAX_CSV_ROWS        :UDINT        :=100;
MAX_CSV_COLUMNS        :UDINT        :=5;
MAX_CSV_FIELD_LENGTH:UDINT        :=100;

[/COLOR][COLOR=#ff0000]database[/COLOR][COLOR=#000000]: ARRAY[0.[/COLOR][COLOR=#ff0000].MAX_CSV_ROWS[/COLOR][COLOR=#000000], 0.[/COLOR][COLOR=#ff0000].MAX_CSV_COLUMNS[/COLOR][COLOR=#000000]] OF STRING([/COLOR][COLOR=#ff0000]MAX_CSV_FIELD_LENGTH[/COLOR][COLOR=#000000]) := 
    [/COLOR][COLOR=#ff0000]'0_0',[/COLOR][COLOR=#000000] '0_1', '0_2', '0_3', '0_4', '0_5',
    '1_0', '1_1', '1_2', '1_3', '1_4', '1_5',
    '2_0', '2_1', '2_2', '2_3', '2_4', '2_5',
    '3_0', '3_1', '3_2', '3_3', '3_4', '3_5',
    '4_0', '4_1', '4_2', '4_3', '4_4', '4_5',
    '5_0', '5_1', '5_2', '5_3', '5_4', '5_5';

END_VAR
[/COLOR]


Das ist für mich sehr merkwürdig, da wie oben gesagt, dieser Code von Beckhoff direkt geschrieben wurde, und ich gar nichts daran geändert habe.

Vielen Dank im Voraus!
 
Ich habe inzwischen gemerkt, dass ich die Variabeln MAX_CSV_COLUMNS, MAX_CSV_ROWS und MAX_CSV_FIELD_LENGTH, als VAR CONSTANT deklarieren muss:

Code:
VAR CONSTANT
    MAX_CSV_ROWS        :UDINT        :=100;
    MAX_CSV_COLUMNS        :UDINT        :=5;
    MAX_CSV_FIELD_LENGTH:UDINT        :=100;        
END_VAR

Nicht desto trotz, bekomme ich trotzdem bei dem database, und die '0_0' folgende fehler:
  • Error 5 ';' expected instead of ','
  • Error 6 Cannot convert type 'STRING(INT#3)' to type 'ARRAY [0..MAX_CSV_ROWS, 0..MAX_CSV_COLUMNS] OF STRING(MAX_CSV_FIELD_LENGTH)'


 
Zuviel Werbung?
-> Hier kostenlos registrieren
Der Code ist wahrscheinlich für TC2 geschrieben. In TC3 musst Du die Initialwerte des Arrays in Eckklammern setzen.
Code:
[COLOR=#ff0000]database[/COLOR][COLOR=#000000]: ARRAY[0.[/COLOR][COLOR=#ff0000].MAX_CSV_ROWS[/COLOR][COLOR=#000000], 0.[/COLOR][COLOR=#ff0000].MAX_CSV_COLUMNS[/COLOR][COLOR=#000000]] OF STRING([/COLOR][COLOR=#ff0000]MAX_CSV_FIELD_LENGTH[/COLOR][COLOR=#000000]) := 
    [/COLOR][COLOR=#ff0000]['0_0',[/COLOR][COLOR=#000000] '0_1', '0_2', '0_3', '0_4', '0_5',
    '1_0', '1_1', '1_2', '1_3', '1_4', '1_5',
    '2_0', '2_1', '2_2', '2_3', '2_4', '2_5',
    '3_0', '3_1', '3_2', '3_3', '3_4', '3_5',
    '4_0', '4_1', '4_2', '4_3', '4_4', '4_5',
    '5_0', '5_1', '5_2', '5_3', '5_4', '5_5'];

[/COLOR]
 
Zurück
Oben