Hi Robert
die steht in den Eigenschaften des DB
aber vermutlich willst du das im Programm heraus finden. Das gibt es nicht. Wozu auch?
Ich hatte das bei der Übernahme von Programmen aus Step7 V5 auch schon manches Problem. Bis ich letztlich dahinter gekommen bin, dass es viel einfacher geht und das ganze Gehampel mit ANY und Adressregistern unnötig ist. Leider gibt es kein Patentrezept für alle Fälle. Und ein paar Lücken gibt es auch noch. Vielleicht löst die V13 die offenen Punkte. Die Hoffnung stirbt zu letzt.
In AWL schreibt man wie bei der 300/400 L DBLG -- oder so ähnlich -- das gibt es aber nicht auf der 1200. Die 1500 kann das, liefert aber "falsche" Werte. Also richtig falsch sind sie nicht, aber brauchbar sind sie auch nicht. Der Wert der da kommt ist unterschiedlich zu dem aus den Bausteineigenschaften.
Auf 1200 und 1500 gibt es Optimierte und Standard Bausteine. Das gilt sowohl für die DB als auch für FC/FB und OB. Faustregel: optimiert ist schneller, meist auch kleiner, aber nicht immer. Richtig blöd ist es wenn man mischt. Man sollte alles optimiert machen. Aber dummerweise klappen dann die Tricks aus der Vergangenheit (AT ANY Adressregister) nicht mehr. D.h. manchmal muss man eben doch Standard. Und dann vermischt es sich :-( So richtig schlimm wird es wenn man in Static eines FB eine Instanz eines anderen FB hat. Der eine Optimiert, der andere Standard.
Darüber hinaus kann man für jedes Element im FB angeben, ob es RETAIN , NON_RETAIN oder SET_IN_IDB ist. "Hergottsakrament ... wos is ets dees". Wie schon in Zeiten von Step7 V5 kann man am DB angeben, ob dieser RETAIN sein soll oder nicht. Soweit so schlecht, denn das galt ja immer für den gesamten DB und war damit eigentlich gar nicht nach IEC61131. Wie hat S. bloß das Siegel bekommen? Egal. Im TIA-Portal hat man sich nun eines besseren belehrn lassen und wie von der Norm vorgedacht die RETAIN Eigenschaft einzeln an die Elemente im FB/DB definiert. Aber Siemens wird seine Vergangenheit nicht los, und hat demnach drei Möglichkeiten. Für die optimierten Teile gilt die Einzeldefinition nach Norm, für die standard Teile die bisherige Definition nach Step7 V5.
Für die nach standard definierten Elemente eines FB und seines daraus entstehenden DB bekommst du auch Adressen angezeigt und kannst (bei der 1500) mit Adressregister und ANY und AT und ... den ganzen Schmarrn halt ... zugreifen. Und L DBLG liefert die Größe des Standard Bereichs eines DB. Für die Optimierten geht das alles nicht. Und deswegen verrät L DBLG diese Größe nicht. Und auf der 1200 gibt es gar keine Möglichkeit, denn was würdest du damit machen wollen? Das geht ja auch nicht
'n schön' Tach auch
HB