Step 7 UDT in SCL einbinden

DasRallum

Level-1
Beiträge
20
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Da ich hier schon einige Themen durchgelesen habe und mich nichts wirklich erleuchtet hat, muss ich wohl doch nachfragen.

Ich habe einen UDT erstellt in welchem ein Array of Struct zu finden ist. Diesen Rufe in in einem DB mehrmals auf.

Nun möchte ich im SCL einen FB schreiben, bei dem ich den Pointer auf einen Datenbereich als IN_OUT Variable übergebe, wie aus der AWL-Programierung bekannt.

Abschießend möchte ich Indirekt auf das Array im übergeben Datenbereich zugreifen.

Ich stelle den UDT mal Beispielhaft dar.

Beispiel UDT:
Datensatz : Array [1..3] of Struct
Struct
Daten of INT
Daten_OK of BOOL
End_Struct


Code:
VAR_IN
    Nummer : INT;
END_VAR

VAR_IN_OUT
    UDT : UDT123;
End_VAR

VAR_OUT
    Ausgang: BOOL;
END_VAR

BEGIN

     Ausgang := UDT.Datensatz[Nummer].Daten_OK;

Kann es sein, dass ich die Struktur des UDT nochmal separat übergeben muss? Oder kann man in so einem Fall gar nicht indirekt adressieren?
 
So ähnlich hatte ich das an einem Input, sollte gehen.
Allerdings hatte ich einen Unterschied:

Als Input definiert:

Def_ModulStruct : ARRAY[1..32] OF "Modul"; //Structur mit Moduldefinition im Modul-DB

Im DB defininert:

ModulSend ARRAY[1..32] of "Modul"

Im FB konnte ich dann folgenden Aufrug machen:

Offset_Modul := Def_ModulStruct.ID;


Das sollte auch am INOUT möglich sein, wobei es da ja immer irgendwelche feinen Unterschiede gibt. :)

Aber ich würde das allemal nicht UDT im Bausteinkopf nennen, möglicherweise ist das in Step7 ein reservierter Begriff.
 
Zurück
Oben