Step 7 Strukturzugriff in SCL

pantau86

Level-2
Beiträge
24
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

habe folgenden UDT geschrieben:

TYPE "Wegetabelle_BOOL_2"
STRUCT
T1 : STRUCT
Belegt_Links : BOOL ;
Belegt_Rechts : BOOL ;
auf_T1PK01 : BOOL ;
auf_E9 : BOOL ;
END_STRUCT ;
T1b : STRUCT
Belegt_Links : BOOL ; //
Belegt_Rechts : BOOL ;
auf_T3 : BOOL ;
auf_T4 : BOOL ;
auf_T1bPK01 : BOOL ;
END_STRUCT ;
T2b : STRUCT
Belegt_Links : BOOL ;
Belegt_Rechts_Reserve : BOOL ;
auf_T2bPk01 : BOOL ;
Reserve : BOOL ;
END_STRUCT ;
END_TYPE

Diesen habe ich dann im "VAR_INPUT" Bereich aufgerufen:

VAR_INPUT
Freigabe_Wege: Wegetabelle_BOOL_2;
END_VAR

Wie kann ich jetzt im SCL-Programm z.b. auf die Bool-Variable "Belegt_Links" zurgreifen? Ich habe es einmal so versucht:

Freigabe_Wege.T1.Belegt_Links :=1;

Hierbei bekomme ich aber immer die Fehlermeldung:

"Fehlender oder ungültiger Bezeichner"
 
Naja, mit ":=" versuchts du eine Variable Input zu beschreiben. Daher wohl dein Fehler. Eine Abfrage wäre ein einfaches "=".

Wenn du dein Struct beschreiben möchtest, mach ein Static, Temp, Output oder InOut daraus.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Naja, mit ":=" versuchts du eine Variable Input zu beschreiben. Daher wohl dein Fehler. Eine Abfrage wäre ein einfaches "=".

Wenn du dein Struct beschreiben möchtest, mach ein Static, Temp, Output oder InOut daraus.

Hallo,

wenn ich das hier mache, funktioniert es immer noch nicht:

Temp_Bool := Freigabe_Wege.T1.Belegt_Links;
 
Das Schreiben auf die INPUT-Variable ist tatsächlich ein Fehler, doch darauf bezieht sich die Fehlermeldung (noch) nicht - die würde anders lauten ala "ungültige/unzulässige Zuweisung".

Welches Step7/SCL benutzt Du? TIA V...?
Bei TIA müßtest Du ein # vor den Bezeichner schreiben: #Freigabe_Wege.T1.Belegt_Links
Möglicherweise ist auch der Bezeichner T1 nicht zulässig - versuche mal "T1x".

Harald
 
T1 ist nicht erlaubt, schreib mal TT1, dann geht es.
Der SCL-Compiler ist leider ganz schön dumm und bringt oft nicht wirklich hilfreiche Fehlermeldungen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
PS: in deiner Struct fehlt ein END_STRUCT (evtl. ja nur ein Schreibfehler).

Code:
[COLOR=#333333]TYPE "Wegetabelle_BOOL_2"[/COLOR]    
    STRUCT  
    TT1 : STRUCT 
            Belegt_Links : BOOL ; 
            Belegt_Rechts : BOOL ; 
            auf_T1PK01 : BOOL ; 
            auf_E9 : BOOL ; 
        END_STRUCT ; 
    T1b : STRUCT 
            Belegt_Links : BOOL ; //
            Belegt_Rechts : BOOL ; 
            auf_T3 : BOOL ; 
            auf_T4 : BOOL ; 
            auf_T1bPK01 : BOOL ; 
        END_STRUCT ; 
    T2b : STRUCT 
            Belegt_Links : BOOL ; 
            Belegt_Rechts_Reserve : BOOL ; 
            auf_T2bPk01 : BOOL ; 
            Reserve : BOOL ; 
        END_STRUCT ; 
    END_STRUCT ; 
END_TYPE
 
Vielen Dank für die nützlichen Tips. Das mit dem TT1 hat funktioniert. Hätte nicht gedacht, dass der Compiler so blöd ist. Es handelte sich im Step7 V5.5
 
Zurück
Oben