einfacher Datenblock lässt sich nicht erstellen

FrankTheTank

Level-1
Beiträge
41
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo allerseits!

Ich schon wieder.
Ich würde gerne einen ganz normalen Datenblock anlegen, in dem ein paar Boolsche Variablen stehen (keinen Instanz-DB).
Ich nutze den Simatic Manager V5.1 SP2 und arbeite in SCL.
Laut der mir zur Verfügung stehenden Literatur sollte das folgendermaßen funktionieren:

Code:
DATA_BLOCK DB63
meineVariable01 : BOOL;
meineVariable02 : BOOL;
...
BEGIN
END_DATA_BLOCK
Nun meckert er:
Fehler in Baustein DB63.
Symbol meineVariable01 nicht in Symboltabelle gefunden.
Typkonflikt für meineVariable01.
Syntaxfehler bei Bool.


Ich will aber garkeine Symboltabelle verwenden! Ich will nur, dass meine FBs auf "DB63.meineVariable01" zugreifen können.
Langsam komm ich mir dumm vor. Es scheitert nicht an Algorithmen oderso sondern an den einfachsten Dingern... :)

mfg,
Frank
 
Code:
*
DATA_BLOCK DB444

//Vereinbarungsteil
STRUCT
    test : BOOL; //Standardanfangswert übernehmen
    test1: INT := 12; //Anfangswert setzen
END_STRUCT
    
//Zuweisungsteil
BEGIN
    test := true;
END_DATA_BLOCK
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke, funktioniert!

Kann mir evtl. noch kurz jemand erklären, warum diese STRUCT Umgebung benötigt wird?
Ich kenne STRUCTs aus C, C++ als Konglomerat von verschiedenen zusammengehörenden Variablen und glaube, auch schon in SCL solche Teile gesehen zu haben.
Aber warum muss ich eine einzelne boolsche Variable extra ein ein Struct reintun damit es funktioniert?
 
Danke, funktioniert!

Kann mir evtl. noch kurz jemand erklären, warum diese STRUCT Umgebung benötigt wird?
Ich kenne STRUCTs aus C, C++ als Konglomerat von verschiedenen zusammengehörenden Variablen und glaube, auch schon in SCL solche Teile gesehen zu haben.
Aber warum muss ich eine einzelne boolsche Variable extra ein ein Struct reintun damit es funktioniert?

weil der datenbaustein an sich ein struct ist. das muß deklariert werden.
es ist darüber hinaus noch mgl. struct im struct anzulegen z.b. so:

Code:
*
DATA_BLOCK DB444

//Vereinbarungsteil
STRUCT
    test : BOOL; //Standardanfangswert übernehmen
    test1: INT := 12; //Anfangswert setzen
    test2 : STRUCT 
        eins : INT;
        zwei : INT;
        drei : INT;    
    END_STRUCT;
END_STRUCT
    
//Zuweisungsteil
BEGIN
    test := true;
    test2.eins := 1;
    test2.zwei := 2;
    test2.drei := 3;
END_DATA_BLOCK

damit ist es mgl. daten sauber zu strukturieren und dabei eindeutige bezeichner für untergruppen mehrfach zu verwenden ... schöner als ein index am ende...
 
Zurück
Oben