Step 7 SCL Schleife bei Step 7 mit Variablen im Indize

nik20099

Level-2
Beiträge
71
Reaktionspunkte
4
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin Leute,

vielleicht ist das für den einen oder anderen eine einfach Sache.

Ich möchte gerne in 2 Verschachtelten For Schleifen auf Variablen Zugreifen. Die Variable Besteht aus:

Array of Struct und in der Struct ist ein Array of Bool.

Das Array ist ja kein Problem und kann einfach im Aufruf durch die Zählvariable ersetzt werden. Aber wie sieht das mit der Struct aus? Kann man da irgendwas machen?


Im Anhang ist ein Bild vom DB und ein Bild von der For Schleife mit meiner Idee.



Danke für eure Hilfe.
 

Anhänge

  • DB.jpg
    DB.jpg
    120,2 KB · Aufrufe: 96
  • SCL.jpg
    SCL.jpg
    45,2 KB · Aufrufe: 126
Zuviel Werbung?
-> Hier kostenlos registrieren
Nein. Es geht darum wie ich die Struct mit der Variable der Schleife hochzählen kann.

Sprich das ich im Endeffect folgendes habe:

FOR i := 0 TO 46 BY 1 DO --> i== 1


FOR j := 0 TO 16 BY 1 DO --> j == 1


Param := "SFB53_DATA".Steckplatz."Param_" && j && "[1]"; --> Param := "SFB53_DATA".Steckplatz[1]."Param_1[1];



END_FOR;


END_FOR;


-----------------------------------------------------------------------------------------


FOR i := 0 TO 46 BY 1 DO --> i== 1


FOR j := 0 TO 16 BY 1 DO --> j == 2


Param := "SFB53_DATA".Steckplatz."Param_" && j && "[1]"; --> Param := "SFB53_DATA".Steckplatz[1]."Param_2[1];



END_FOR;


END_FOR;


----------------------------------------------------------------------------------------


FOR i := 0 TO 46 BY 1 DO --> i== 1


FOR j := 0 TO 16 BY 1 DO --> j == 3


Param := "SFB53_DATA".Steckplatz."Param_" && j && "[1]"; --> Param := "SFB53_DATA".Steckplatz[1]."Param_3[1];



END_FOR;


END_FOR;
 
Unabhängig von deinen Indexzugriffen wird dein Baustein nicht fnktionieren.
Die verschachtelten Schleifen werden in einem Zyklus durchlaufen.
Du rufst also den SFB53 zigfach in einem Zyklus auf.
Das funktioniert so nicht.
 
Der SFB53 wird nachher bedingt in einer IF schleife aufgerufen.
Das ganze ist nur um die Hardware in meiner Maschine Optional Parametrieren kann. Der Baustein wird also nur bei der Inbetriebnahme durchlaufen und wenn dann Eventuell mal was angepasst werden muss. Es ist nicht was immer Aktiv ist.
 
Moin nik20099,

das schreit m.E. nach einem zweidimensionalen Array:

Code:
Array[0..46,0..1]
STRUCT

oder habe ich was übersehen?

VG

MFreiberger
 
Moin

Oke und wie kann ich in einem DB ein Array of Array of Array anlegen :)


Ich habe zum Verständnis bis zu 64 Teilnemner und jeder hat 16 Parameter und dort brauch in 2 Bool Variablem

Steckplatz[Array[0..63] of Array[0..15] of Array [0..1] of Bool



Jemand eine Idee dafür?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin nik20099,

vielleicht ein dreidimensionales Array (es gehen bis zu sechs Dimensionen)???


TIA:

Code:
Array[0..63,0..15,0..1] of bool

Simatic Manager

Code:
Array[0..63,0..15,0..1]
BOOL

VG

MFreiberger
 
Du kannst eine Array of UDT1 (Datentyp) anlegen, die ein Array of UDT 2 enthält, dieses kann wiederum eine Array of UDT3 enthalten ...
Kommt wirklich auf die Anwendung an, je nachdem, was besser lesbar und selbsterklärender ist. 3-dimensianales Array geht, ist aber oft verwirrend, wenn man es dann im Programm verwendet, weil nicht mehr selbsterklärend durch die Benennung.
 
Zurück
Oben