text: Frage zur Programmierung - Seite 3
  26.05.2008, 13:15 #21
  Es spricht prinzipiell nichts dagegen, sich globale DB zusammenzustellen, die diese Strukturen enthalten. Darauf kann durchaus kreuz und quer zugegriffen werden, diese Struktur ist fest und unveränderlich (außer, der Programmierer, will etwas erweitern). Zugriffe auf die DB können im Programm gefunden werden, solange nicht indirekt adressiert wird. Man muß nicht immer FB nutzen, leider hat Siemens mit den IDB nicht gerade etwas Schönes erschaffen, die hätten sie vor Zugriffen von außen schützen müssen, wie das jede ordentliche Programmiersprache mit lokalen Daten macht.
  Tödlich ist vor allem folgende Konstellation:
  Umkopieren von IDB-Inhalten, besonders noch per indirekter Adressierung und möglichst noch im FB. Um noch einen draufzusetzen, kopiert man das in einen anderen IDB. In den FB dann natürlich Zugriff über die Symbole aus dem Bausteinkopf (wozu die ja schließlich da sind). Auch im Programm werden munter Daten im IDB geschrieben. Jetzt herauszufinden, wer wann die Daten im IDB geschrieben hat, ist fast nicht mehr möglich, bzw. nur mit einem unvertretbarem Zeitaufwand. Wenn jetzt noch einer in einem FB ein paar Variablen einfügt, ist das Chaos perfekt, denn nun paßt im gesamten Programm nichts mehr. Da hilft auch nicht die Bausteinkonsistenz, welche man ja bei den globalen DB noch ganz gut zum "Einschieben" von Daten nutzen kann.
  26.05.2008, 14:38 #22
  Nimms mir nicht übel, aber diese Art ist bei größeren Datengerüsten die eleganteste Art, Deine Daten zu verwalten.
  Du schreibst einen FB oder FC, definierst Dir einfach einen UDT als EA, und definierst Dir eine Variable desselben Typs in einem DB. Anklemmen, fertig. Einfacher gehts nicht.
  Ganz davon abgesehen entspricht es von der Adressierung her ja auch nur dem Zuweisen von Einzelwerten, die zu einer Struktur zusammengefasst wurden.
  26.05.2008, 16:04 #23
  Hallo, kurze Zwischenfrage. Mein Boss will von mir ein paar Bausteine haben. Er hat mir ne Liste gegeben, FB1 soll das machen FB2 soll jenes machen usw.. (S7). Hab aber nur FC programmiert. Ist es möglich, einen FB ohne Instanz-DB-Aufruf zu machen?
  26.05.2008, 16:13 #24
  Ja, aber Du darfst in diesem FB keine IN`s, OUT´s, und STAT´s deklarieren.
  Macht aber irgendwie keinen Sinn....
  sailor (26.05.2008)
  26.05.2008, 16:58 #25
  IN und OUT's gehen sehr wohl noch, alles was er nicht nutzen darf sind die STAT's. Das ganze ist dann nur eine Verschwendung von dem, wofür die FB's eigentlich da sind.
  26.05.2008, 17:08 #26
  Also bei mir gehen IN und OUT's nicht, das wäre auch sehr verwunderlich, da Diese beim FB ja auch Speicherbereiche des IDB's belegen.