TIA DB any in DB struct innerhalb eines FB kopieren

Magni

Level-2
Beiträge
313
Reaktionspunkte
18
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin,

ich habe einen FB angelegt. Den möchte ich extern mit einem DB verschalten der durch einen anderen FB erstellt wurde. Dazu habe ich am Input ein DB any angelegt. Nun möchte ich auf mehrere Elemente des externen DB zugreifen. Dazu müsste ich doch den DB any in eine Struktur innerhalb des FB kopieren. Doch wie mache ich das? Mit Move funktioniert das ja nicht.

Gruß Heiko
 
Du kannst an der FB Schnittstelle einen DB_Any erstellen.
So toll ist das natürlich nicht Instanzdaten in einen fremden
FB zu verarbeiten, ich nutze das höchstens, wenn ich TO Objekte
übergeben möchte.

Kannst du nicht einen Datentypen erstellen, diese Daten Global
speichern und dann diese Datentypen an der Schnittstelle beider
Bausteine heranführen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Du kannst an der FB Schnittstelle einen DB_Any erstellen.
So toll ist das natürlich nicht Instanzdaten in einen fremden
FB zu verarbeiten, ich nutze das höchstens, wenn ich TO Objekte
übergeben möchte.

Kannst du nicht einen Datentypen erstellen, diese Daten Global
speichern und dann diese Datentypen an der Schnittstelle beider
Bausteine heranführen.

Das habe ich gemacht. Aber wie bekomme ich den DB in die Struktur geladen? DB SPS.JPG
 
#DB Niveau wir der DB_ANY sein

dann halt mit DB_ANY_TO_VARIANT einen Variant daraus gebaut.
prüfen ob der DB auch vom type Niveau ist TypeOf
und mit VariantGet nach #DB Niveau in kopieren
 
Danke für die Ideensammlung. Aber das alles scheint mir für dieses kleine Programm viel zu aufwendig und ich bin leider an die ach so tolle "Standartsoftware" gebunden. Ich werde es einfach direkt adressieren. Ist zwas mehr Schreibaufwand, aber was solls.

Grüße Heiko
 
hättest Du mal etwas genauer erklärt was du willst , gäbe es vielleicht einfache Lösungen.
bei deiner Beschreibung bin ich mal davon ausgegangen das Du den DB mit einem anderen FB oder was auch immer zur Laufzeit erstellst.
Solltest Du aber mit von einem anderen FB erzeugt , den Instanz DB meinen, solltest Du sowas erst gar nicht machen , wie RS schon anmerkte .
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Okay... vielleicht sollte ich es noch einmal etwas genauer erklären.

Ich will einen FB erstelllen. Dieser soll aus mehreren (Instanz-)Status_DBs (zB. Ventilzustand) einen Bitzustand erhalten und dann verarbeiten. Dazu dachte ich einfach die StatusDB_nummer als Input zu verschalten und den entsprechenden DB dann in einer Struktur zu zerpflücken um auf das einzelne DBX zuzugreifen. Aber anscheinend geht das nicht so einfach. Leider bin ich an diverse Bausteine gebunden. So dass ich mitunter gezwungen bin nicht sauber zu arbeiten.

Ich hoffe es ist jetzt einfacher zu verstehen.

Bildliches Beispiel: Behälterfunktionen mit 8 Ventilen. Diesen Behälter gibt es mehrfach. Daher ein FB.

Gruß Heiko
 
Moin,
einfachste Lösung wäre die Instanz-DBs nicht einzeln zu führen, sondern als ein DB mit einem Array of Instanzdaten. Dann kann man deinem neuen FB eben dieses Array übergeben und du könntest dort sauber mit einer Schleife auf die interessanten Bits zugreifen. Wenn es aber unbedingt einzelne DBs mit einzelnen Nummern sein müssen, dann wirst du um Peek und Poke nicht drum herum kommen.
 
Wenn doch der Status DB schon von einem Datentype abgeleitet ist , oder nur der Teil der weitergeben wird (Ventil) in eine Datentype (Struktur ) vorliegt, kann ich doch an meinem FB ein IN oder IN/OUT
von dem DatenType anlegen, und entsprechen beschalten.
dann kann man wenigstens Symbolisch Programmieren ohne Peek und Poke
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn doch der Status DB schon von einem Datentype abgeleitet ist , oder nur der Teil der weitergeben wird (Ventil) in eine Datentype (Struktur ) vorliegt, kann ich doch an meinem FB ein IN oder IN/OUT
von dem DatenType anlegen, und entsprechen beschalten.
dann kann man wenigstens Symbolisch Programmieren ohne Peek und Poke

So sehe ich das auch, wie in Beitrag #2 schon erwähnt.
 
Zurück
Oben