TIA Array zur Laufzeit erstellen

Mephisto

Level-2
Beiträge
242
Reaktionspunkte
12
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo!

Ist es mölich, ein Array erst zur Laufzeit zu definieren? Ich möchte ein Array ein einem SCL-FB verwenden. Das Array soll aber keine Fixe Größe und/oder Datentyp haben sondern ich möchte sowohl Länge als auch Datentyp ändern können. Geht das überhaupt?

Vielen Dank schon jetzt für die Antworten!

mfg mephisto
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Du kannst allerdings deiner Funktion oder deinem FB ein variabel langes Array übergeben (mit Array
[*] of Bool - geht nur im TIA ab Firmware 2.0 bei 15xx und im FB nur als In/Out; in FC als In/Out sowie In und Out und optimiert müssen die Bausteine natürlich sein) und dann mit den Funktionen UPPER_BOUND und LOWER_BOUND arbeiten. Vielleicht hilft dir das schon weiter.
 
Zuletzt bearbeitet:
Das mit dem Array
[*] ist mir noch ein spanisches Dorf. Schön, dass ich - wenn ich das Array lesen will - Ober- und Untergrenze auslesen kann, aber wo definiere ich die?
Wie definiere ich überhaupt einen Arrayeintrag bei Array
[*]?
 
Das ist eigentlich nur für die Übergabe von variabel langen Arrays.
Beispielsweise willst du eine Funktion schreiben die dir gesetzte Bits in einem beliebig langen Bool-Array zählt - dafür wäre die Übergabe mit Array
[*] als bspw. Input da.
Return wäre dann ein Int mit der Anzahl gesetzter Bits.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
in deiner Umgebung würdest du das ungefähr so aufrufen, zum Beispiel (weis nicht genau ob die Syntax so stimmt)

for i = 1 to 10 step 1
array. := xyz
i := i+1

Die Syntax sollte aber ein geübter STler noch mal prüfen ;) habe mit for ... noch nicht viel zu tun gehabt bislang
Aber es ist ja auch nur ein Bespiel.

vielleicht kann man das auch in den Variablen noch festlegen:
y=int // Arraygrenze
MyArray = Array of ....[0..y]
 
Also noch einmal von vorne, da hier anscheinend ein Mißverständnis entstanden ist :
Eine SPS kann NICHT dynamisch (zur Laufzeit) Array's erzeugen.
Es lassen sich in Bausteinen zwar Array's erzeugen, bei denen für die Array-Grenzen Platzhalter-Variablen eingesetzt werden - die Variablen sind aber KONSTANTEN ...!

Es geht nur das, was Howard schreibt - nämlich einem Baustein unterschiedliche Array's übergeben (die dann natürlich auch unterschiedliche Größen haben können). Erzeugt worden sind aber alle diese Array's schon beim Compilieren ...

Gruß
Larry
 
Zurück
Oben