TIA V17: Kann man auf einfache Art mehrere oder alle Elemente eines Arrays mit Defaultwerten belegen

Beiträge
5.779
Reaktionspunkte
1.206
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
im CODESYS Universum kann man Arrays wie folgt deklarieren:
Code:
aiArray01    := ARRAY[1..3] OF INT := [1,5,10];
aiArray02    := ARRAY[1..10] OF INT := [10(1024)]
aiArray03    := ARRAY[1..10] OF INT := [2(4), 5(7), 3(3)]; // Entspricht 4,4,7,7,7,7,7,3,3,3
Gibt es sowas auch in TIA?
 
Kann man sich das nicht durch Versuch selbst beantworten?
Sieht aber so aus als würde das funktionieren. Der Test dauert genauso lange wie den Thread zu erstellen.

Code:
FUNCTION_BLOCK "Block_1"


VAR_INPUT


END_VAR


VAR_OUTPUT


END_VAR


VAR_IN_OUT


END_VAR


VAR
  statArray_0 : Array[0..10] OF Int :=[1,1,1,1,1,1,1,1,1,1];
  statArray_1 : Array[0..10] OF Int :=[11(50)];
  statArray_2 : Array[0..10] OF Int :=[2(4), 5(7), 3(3)];
END_VAR


VAR_TEMP
 
END_VAR


VAR CONSTANT


END_VAR
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Nein. In TIA kann nur jedes Array-Element einzeln mit einem Startwert deklariert bzw. initialisiert werden.
Code:
VAR
   aiArray01    := ARRAY[1..3] of Int;
END_VAR

BEGIN
   aiArray01[1] := 1;
   aiArray01[2] := 5;
   aiArray01[3] := 10;

EDIT sagt: es geht doch, siehe Beiträge #2 und #7

Harald
 
Zuletzt bearbeitet:
Kann man sich das nicht durch Versuch selbst beantworten?
Sieht aber so aus als würde das funktionieren. Der Test dauert genauso lange wie den Thread zu erstellen.

Code:
FUNCTION_BLOCK "Block_1"


VAR_INPUT


END_VAR


VAR_OUTPUT


END_VAR


VAR_IN_OUT


END_VAR


VAR
  statArray_0 : Array[0..10] OF Int :=[1,1,1,1,1,1,1,1,1,1];
  statArray_1 : Array[0..10] OF Int :=[11(50)];
  statArray_2 : Array[0..10] OF Int :=[2(4), 5(7), 3(3)];
END_VAR


VAR_TEMP
 
END_VAR


VAR CONSTANT


END_VAR
Bevor ich den Thread erstellt hatte, habe ich es auch schon probiert, aber keine Lösung gefunden, daher der Thread. Gut, die Info hatte ich unterschlagen.
Ich kenne in TIA allerdings nur die Deklaration in Tabellenform, wie kann man das denn auf Deklaration in Textform umstellen?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
So wie Du Dir das mit der Deklaration denkst geht das nämlich nicht.
Etwas Klugscheißerei:

In TIA kann man auch die klassische Variablendeklaration verwenden:
Extras > Einstellungen > PLC-Programmierung > SCL > Schnittstelle > Voreinstellung für neue Bausteine: "Tabellenansicht" oder "Textuelle Ansicht"
https://www.sps-forum.de/threads/um...-von-klassisch-auf-modern.102961/#post-778514
 
Zuletzt bearbeitet:
VAR
statArray_0 : Array[0..10] OF Int :=[1,1,1,1,1,1,1,1,1,1];
statArray_1 : Array[0..10] OF Int :=[11(50)];
statArray_2 : Array[0..10] OF Int :=[2(4), 5(7), 3(3)];
END_VAR
Das geht so nur in der textuellen Ansicht der Bausteinschnittstelle und in SCL-Quellen.
siehe TIA-Informationssystem > Bausteinschnittstelle in der textuellen Ansicht deklarieren > Deklaration von ARRAY

Harald
 
Das geht so nur in der textuellen Ansicht der Bausteinschnittstelle und in SCL-Quellen.
siehe TIA-Informationssystem > Bausteinschnittstelle in der textuellen Ansicht deklarieren > Deklaration von ARRAY

Harald
In der tabellarischen Ansicht geht es über Startwert.
Kommt dann denke ich auf den Anwendungsfall an.

Ich habe bisher das immer in der Tabelle gemacht da ich die Werte eh individuell vergebe und wenn alles gleich ist einfach per copy paste.
 
Zurück
Oben