Probleme mit einem Array

Hitschkock

Level-2
Beiträge
260
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin moin Zusammen

Ich finde meinen Fehler nicht!


Geht nicht!
ReceivedData: ARRAY [1..39] OF BYTE:= 0,0,0,0,0 ,0,0,0,0,0, 0,0,0,0,0 ,0,0,0,0,0 ,0,0,0,0,0 ,0,0,0,0,0 ,0,0,0,0,0 ,0,0,0,0 ;

Geht nicht!
FOR f:=1 TO 39 DO
ReceivedData: ARRAY [1..f] OF BYTE:= 0;
END_FOR;

Geht auch nicht!
ReceivedData: ARRAY [1..39] OF BYTE :=39(0);

der Fehler der immer kommt "" Fehler 4024 Erwarte ';',':=' oder '(' vor ':' ""

was mache ich falsch?
 
Moin moin Zusammen

Ich finde meinen Fehler nicht!


Geht nicht!
ReceivedData: ARRAY [1..39] OF BYTE:= 0,0,0,0,0 ,0,0,0,0,0, 0,0,0,0,0 ,0,0,0,0,0 ,0,0,0,0,0 ,0,0,0,0,0 ,0,0,0,0,0 ,0,0,0,0 ;

Geht nicht!
FOR f:=1 TO 39 DO
ReceivedData: ARRAY [1..f] OF BYTE:= 0;
END_FOR;

Geht auch nicht!
ReceivedData: ARRAY [1..39] OF BYTE :=39(0);

der Fehler der immer kommt "" Fehler 4024 Erwarte ';',':=' oder '(' vor ':' ""

was mache ich falsch?

Für die Vorbelegung von Arrays, such mal in der Hilfe von Codesys.

Sollt so gehen!

Code:
FOR f:=1 TO 39 DO
   ReceivedData[f]:= 0;
END_FOR;
 
Du hast die Deklaration des Array in die For-Schleife eingetragen, das geht natürlich nicht.
In der For-Schleife wird einzeln auf jedes Element zugegriffen und 0 hineingeschrieben.

Was du suchst ist die Vorbelegung des Array bei der Deklaration, wie gesagt, schau mal in die Hilfe, das weiß ich nicht aus dem Stehgreif.

Die For-Schleife läuft ja im Programm! Vorteil, man kann bei Bedarf, das Array zu einem beliebigen Zeitpunkt auf 0 setzen, auch mitten im Programmablauf.
 
wenn ich das richtig sehe habe ich das ARRAY im Programmteil Angelegt und nicht verändert, wegen dem ':' . richtig?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
das ist eine Variablen-Deklaration :
ReceivedData: ARRAY [1..39] OF BYTE ;

und das ist Programm-Code :
FOR f:=1 TO 39 DO
;
END_FOR;

und das ist Mischmasch - würde aber als Deklaration funktionieren, wenn "f" eine Konstante mit einem sinnvollen Wert ist :
ReceivedData: ARRAY [1..f] OF BYTE ;
Gruß
LL
 
Hallo,

sollte im Declare-Teil aber funktionieren, NICHT in der Codesection:

rcD : ARRAY[1..39] OF BYTE := 39(0);

Viele Grüße
 
Hallo,

sollte im Declare-Teil aber funktionieren, NICHT in der Codesection:

rcD : ARRAY[1..39] OF BYTE := 39(0);

Viele Grüße

Schliesse mich dem an, ich würde zusätzlich noch global die 39 durch eine Literal Konstante ersetzen, dann kann ich später, wenn ich mal ein längeres Array bräuchte an genau einer Stelle ändern, das erspart langes Suchen und vermeidet Fehler.
 
Zurück
Oben