SCL: Variabele symbolisch mit absoluter Adresse...

AndreK

Level-1
Beiträge
415
Reaktionspunkte
27
Zuviel Werbung?
-> Hier kostenlos registrieren
Also, ich möchte ein meinem SCL Baustein eine externen Bereich, sagen wir DB150.DBW0 symbolsch benutzen. Also extra nicht als VAR_INPUT oder VAR_IN_OUT. Es handelt sich um einen Baustein den ich so immer wieder benutzen werden, und der einen festen DB erhält.

Wie?
Mein Ansatz ist:
1. Deklarieren der Variable als INT, aber wo? Unter den TEMP Variabelen?
TEST:INT;
2. Zuweisung der absoluten Adresse:
TEST:=DB150.DBW0
Wo wird das durchgeführt...

Ich erhalte bis jetzt die Meldung: Ungültiger Datentyp in der Zeile mit der zuweisung der Absoluten Adresse.

Wie man vieleicht deutlich merkt, programmiere ich noch nicht lange in SCL. Habe zwar schon mit VisualBasic ganze PC Visualisierungen für S5 und S7 mit dem AGLink geschrieben, aber diese Schreibweise liegt mir noch nicht im Blut :rolleyes:. Das PDF "SCL für S7 300/400 Bausteine programmieren" hat mir bisher noch nicht weitergeholfen. Aber ich suche weiter...
 
... dann deklarierst du die Variable im STAT-Bereich. Damit wird zu zu einem Bestandteil deines Instanz-DB's und der Baustein "merkt" sich damit deren Inhalt.

Gruß
LL
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das wäre allerdings auch eine Möglichkeit...

... das ich aus dem FC einen FB mache.

Eigentlich eine gute Idee :) Entspricht zwar nicht ganz meiner Vorstellung, aber durchaus auf lange Sicht praktikabel :ROFLMAO:
 
Entschuldigung, ich hatte bei deinem 1. Beitrag gar nicht FC gelesen, sondern bin direkt von einem FB ausgegangen. Mit einem FC würdest du das so nicht machen können.
 
Wenn du eh immer diesen Bereich vom DB hast (bzw deine Symbolik sich vom Namen nicht ändert) dann sprich doch den bereich symbolisch an also: "Mein_DB".Meine_Daten

godi
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ok, diese Möglichkeit war mir noch nicht bekannt...

... ich dachte es müßte alles deklariert werden. Oder ist das diese Varante wo ich diesen DB vorher als STRUCT anmelde?
 
Hierbei ist aber wichtig, dass der DB und seine symbolische Variable beim compilieren des FC's bekannt sind und (wie Godi schon erwähnt hat) sicht nachträglich NICHT MEHR ÄNDERT. Der SCL-Compiler erzeugt letztlich eine absolute Adresse und die verschiebt sich nur beim neuen compilieren ...!

Gruß
LL
 
Was dann...

... zu extremen Ungereimtheiten führen kann.:twisted:

Ich denke das ich mit dem InstansDB sehr gut leben kann, solange ich nicht in der STAT Zuweisung die Reihenfolge ändere ist ein externer Zugriff auf den Instanz DB schon (für meine Projekte) i.O.

Vieleicht hat ja auch eine einen Kompiler den ich in VisualBasic V6.0 einbinden kann :)
 
Zurück
Oben