DB IN Parameter beschreiben

WinniePooh

Level-1
Beiträge
102
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Liebe SPS Gemeinde,

nun erstmal mein Ziel: Ich möchte ein FB schreiben der auf DB zugreifen kann, aber welche man von außen einbezieht.

Habe gesehen, dass man bei INPUT Parametern Variablen mit dem Datentyp DB_BLOCK einbinden kann.

Heißt das für mich, ich kann den DB Baustein auslesen?? Wenn ja wie??

Kann ich den Baustein dann dementsprechend auch beschreiben??

Danke für eure Hilfe...

MFG
 
DB_BLOCK bedeutet nur, dass du von aussen zum beispiel DB100 dranschreiben kannst
und im FB dann AUF DB_BLOCK verwenden kannst.

nicht mehr und nicht weniger.

solltest du noch hilfe brauchen dazu, versuch die magische taste (F1) oder frag jemanden der erfahrung hat.
 
Das Beispiel von Siemens ist mir bekannt aber ist denke ich mal nicht, dass was ich meine...

Ich möchte einen eigenständigen FB haben der auf globalen DB zugreift. Der DB ist aber noch nicht erstellt.
Dieser kann im nachhinein erstellt werden somit ich nicht unbedingt im FB Programm vom DB nummer nicht abhängig.

Sondern dann muss ich nur in dem DB die Struktur einpflegen (besser: mein FB erstellt auch eine Struktur für den DB, wie er auszusehen hat), und
den erstellten DB mit den FB verbinden.

Im Programm des FB's würde ich dann nur auf den IN Parameter schreiben unabhängig vom DB Block.

Ist das möglich??

Frage an EliteGurke

sozuagen kann ich den DB beschreiben und lesen ohne den DB anzugeben ausser den Parameter???
 
Hallo,
warum willst du so etwas machen (mal unabhängig ob es geht oder nicht) ?
Was spricht dagegen, diese Daten in der Instanz des FB's abzulegen und dort zu be-/verarbeiten ?

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Allererst soll es ein globaler DB sein um mit Versch. FB/FC auf Ihn zuzugreifen.

Somit kann ich für unterschiedliche Projekte wo ich den FB Baustein einsetze einen DB Baustein kurz erstellen, anstatt
den DB Baustein erstellen und noch im FB die Parameter zu verändern.

Ich weiß dass nun die Überlegung kommt, ein Instanzbaustein würde auch reichen. (Geht nicht wegen den vielen anderen Bausteinen die auf Ihn zugreifen)...
Oder einen globalen DB mit dem FB zusammen kopieren. Das ist auch jetzt der Fall ...
aber wenn man es fremd voneinander programmieren könnte wäre es schöner oder?? :)
 
1.Du könntest im FB die Struct als INOUT anlegen und auch in deinem DB diese Struct anlegen. Dann außen an den FB(INOUT-Parameter diese Struct), Das das ein Any-Pointer ist, sollte man sich den auch dynamisch entsprechend vor dem FB-Aufruf zusammenbauen können. (hab ich noch nie probiert, muss also erst einmal getestet werden.)

2. Du legst gleich einen Any-Pointer als INOUT an den FB und biegst dir den entsprechend zurecht. Im FB kopierst du die Daten vom INOUT auf eine Statisch angelegte Struct (wie im DB). Am Ende des FB kopierst du das wieder zurück.

Siehe zu dem Thema auf jeden Fall die FAQ des Forums --> Pointer, --> Any. Das ganze ist, gerade in einem FB, nicht ganz trivial.
Ich glaube aber, hier im Forum gibt es dazu auch schon einige Themen. Suche doch mal nach "Any", "Any-Pointer".
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Nutzen kannst du das so:

Anhang anzeigen 18147

Schön ist es nicht, aber es funktioniert.

so wie das aussieht ist dieser Weg viel leichter als ralle es vorgeschlagen hat...

bei deinem weg kann man so wie ich es sehe den DB beschreiben. das heißt dann für mich
ich mache den db XX auf, lese die daten ins temp... verändere Sie da (wenn es sein muss) ... und schreibe die temp daten wieder ins db....

ist das so richtig wie ich es verstanden habe....
 
Es geht so, hat aber den Nachteil, dass du alle DB-Variablen nur absolut und nicht symbolisch nutzen kannst. Ob dir das dann wirklich hilft ...?
Der Vorschlag von Ralle, es als Struktur zu übergeben, würde es dir ermöglichen, die Struktur-Inhalte auch symbolisch nutzen zu können - was für ein mögliches Debuggen ja ganz nett sein kann ...

Gruß
Larry
 
könnt ihr mir das etwas genauer (bildhafter ) erklären...
Ich bin neu in dieser Materie...
In der Schule bringen Sie nicht einen bei mit Pointer, Any's zu programmieren...

Wo ist genau der Unterschied zwischen Absolut und Symbolisch??
Meiner Meinung Absolut: E0.0, Symbolisch in der Symboltabelle= "HILFE" (Operand: E0.0)....

oder ist das Falsch...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
deine absolut / symbolisch definition ist erstmal richtig.

für solche fälle verwenden wir normalerweise UDTs, aber geht so auch:

erstmal im DB die struktur anlegen:
DB_Struct.jpg

anschließend im FB die struktur anlegen, einfach copy / paste aus dem DB:
FB_Struct.jpg

jetzt noch den FB von außen mit dem Struct vom DB beschalten:
CALL_FB.jpg

fertig.

um das ganze einfacher zu händeln, einfach dem DB ein symbol geben,
dann taucht der auch in der variablenliste auf.
 
Zuletzt bearbeitet:
Zurück
Oben