TIA Siemens FB-Aufruf mit Datentyp Block_FB

stefan_shs

Member
Beiträge
24
Punkte Reaktionen
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin moin erstmal,
ich hoffe ich habe das passende Thema im Forum nicht übersehen!

Ziel:
Versuch einen FB nicht mit Multi-Instanzen sondern mit Array[x..y] of "passenderDatenTyp" (Block_FB bzw. alternativem Datentyp) aufzurufen.



Bisheriges Vorgehen:

1. Aufruf eines FB mit Einzel-Instanz … DB-Name und DB-Nummer händisch vergeben … OK

Siehe Anhang: „0001 Aufruf FB mit Einzel-Instanz.png“ 0001 Aufruf FB mit Einzel-Instanz.png

2. Aufruf eines FB mit Multi-Instanz
im Bausteinkopf wird ein neuer Datentyp (des aufgerufenen FB´s) angelegt, in diesem Fall der Datentyp „FB8889 – Test“.
Dieser Datentyp wird von Siemens als Block_FB bezeichnet.

Siehe Anhang: „0002 Aufruf FB mit Multi-Instanz.png“ 0002 Aufruf FB mit Multi-Instanz.png

3. Aus den im Bausteinkopf hinterlegten statischen Daten habe ich als Versuch eine Datentyp erzeugt,

Siehe Anhang: „0003 Datentyp.png“ & „0004 Datentyp.png“ 0003 Datentyp.png 0005 DB mit Datentyp.png

4. und mit diesem Typ einen DB angelegt

Siehe Anhang: „0005 DB mit Datentyp.png“

5. Der Aufruf des FB mit diesem selbst generierten Datentyp allerdings scheitert ….
da der selbst erstellte Datentyp als Block_UDT deklariert ist, der FB aber einen Block_FB erwartet

Siehe Anhang: „0006 Aufruf mit eigenem Datentyp.png“ 0006 Aufruf mit eigenem Datentyp.png


Das Verhalten zeigt sich mit optimierten und nicht optimierten Bausteinen … sowohl FB's als auch DB's.


Nun zu meiner Frage:

Ist es überhaupt möglich den Datentyp Block_FB nachzubilden?

Und wenn diese Frage mit „ja“ beantwortet wird, wie sieht dieser Datentyp aus, bzw. wo finde ich für das Vorgehen beim Erstellen dieses Datentyps eine Anleitung :) ?




In eigener Sache:
Bevor Fragen auftauchen wieso weshalb warum

ich diesen Weg beschreiten möchte ….


Bei mehrmaligem Aufruf des FB´s in unterschiedlichen Bausteinen liegen die Daten verstreut in den jeweiligen IDB´s, DAS weiß ich, möchte es aber vermeiden.
Ein mehrmaliger Aufruf des FB´s in einem einzigen Baustein ist zwar möglich (die Daten würden dann alle in dem IDB liegen),
aber manchmal so nicht gewünscht.


genutzte Software:
TIA V16


Euch allen einen schönen Tag und bleibt gesund.
 

Anhänge

  • 0004 Datentyp.png
    0004 Datentyp.png
    9,5 KB · Aufrufe: 11

ioStart

Well-known member
Beiträge
157
Punkte Reaktionen
21
du kannst ja den gewünschten UDT erstellen und in einem DB als Array verwenden. Der jeweilige Datensatz kann dann in jeder Instanz des Block_FB als InOut-Variable an seiner Bausteinschnittstelle übergeben werden. Dadurch ist es auch einfacher, die Remanents zu verwalten und bei einer Änderung des UDTs den DB vorher mit seinen Momentanwerten zu sichern
 
OP
S

stefan_shs

Member
Beiträge
24
Punkte Reaktionen
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo ioStart,

dank für deine Antwort.

Es war eigentlich die grundsätzliche Frage ob sich der Block_FB nachbilden lässt (als eigenständiger Datentyp), dann wäre beim Aufruf des FB der "Umweg" über den Instanz-DB zzgl. des UDT (UDT als Datenübergabe) nicht nötig.

Grüße
 
Oben