Frage zur Programmierung

Zuviel Werbung?
-> Hier kostenlos registrieren
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.
 
@Markus
ich glaube dass ist dann richtig pervers...

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.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo, kurze Zwischenfrage. Mein Boss :sw13: 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?
 
Hallo, kurze Zwischenfrage. Mein Boss :sw13: 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?
Ja, aber Du darfst in diesem FB keine IN`s, OUT´s, und STAT´s deklarieren.

dann geht es mit
Code:
UC FB1
Macht aber irgendwie keinen Sinn....

.
 
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.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
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.

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.
Außerdem könnte ich die IN- OUT's ja mit dem UC- Aufruf ohnehin nicht beschalten.:rolleyes:

.
 
Ich nehme alles zurück und behaubte das gegenteil.
Ich hätte schwören können, das die in/out's keinen idb brauchen.
Ist trotzdem ein wenig daneben.
 
Zurück
Oben