Der FB (Funktionsbaustein) im TIA Portal

Um was geht es hier?

Hier soll der Baustein FB erklärt werden. Sein vollständiger Name ist Funktionsbaustein. Um das Programm übersichtlicher zu gestalten eignen sich weitere Bausteine. Einer von ihnen ist dieser. Etwas detailliertere Informationen gibt es hier bei Siemens. Es beginnt ab Seite 29.

Download zum TIA-Portal Projekt (TIA 15.1) des Video-Tutorials: 

 Download TIA Portal Beispielprogramm zum FB vs. Fc

Allgemeines zum FB (Funktionsbaustein) im TIA Portal

Du erinnerst dich bestimmt noch an die FC. Diese ist ein reiner Codebaustein. Sie besitzt kein Gedächtnis. Dies bedeutet, es können keine Werte gespeichert werden. Hierbei unterscheidet sich der FB zur FC. Der FB hat ein Gedächtnis. Mit ihm können Werte gespeichert werden. Auch der FB muss zum Ausführen aufgerufen werden. Zu jedem Aufruf gehört nun aber ein eigener Datenbaustein. Dieser wird I-DB (Instanzdatenbaustein) genannt. In ihm befinden sich die im FB gespeicherten Werte. Er ist quasi der Datenhalter des FB. 

Die Schnittstelle eines FB (Funktionsbaustein) im TIA Portal

Die Schnittstelle unterscheidet sich leicht von der der FC. Hier existiert zusätzlich der Bereich Static. Der Rest der Variablen ist identisch zu der der FC. Lediglich in der Speicherung unterscheidet sie sich noch. Sie ist im folgendem Bild dargestellt.

Die Schnittstelle des FB (Funktionsbaustein) im TIA Portal

Wie auch bei der FC gelten die Variablen der Schnittstelle nur innerhalb des Bausteins. Wie bereits bekannt lässt sich der Input nur lesen. Der Output lässt sich nur schreiben. Die InOut Variablen lassen sich lesen und schreiben. Temp ist eine temporäre Variable. Diese gilt nie über den Baustein hinaus. Constant sind Konstanten, welche immer den selben Wert haben. Die Variable Static wird über den Zyklus hinaus gespeichert. Speicherst du sie irgendwo im Baustein, so hast du ihren Wert auch noch beim nächsten Zyklus. Diese Daten werden in einem DB (Datenbaustein) gespeichert. Gehört der Datenbaustein zu einem FB, so nennt man ihn Instanzdatenbaustein. Dieser wird beim Aufruf des Bausteins automatisch angelegt. Wichtig ist für jeden Aufruf einen neuen I-DB anzulegen. Bei mehrfacher Benutzung eines I-DB entsteht Datensalat.

Ergänzend möchte ich noch erwähnen. Einen Datenbaustein kannst du immer anlegen. Es ist dir immer möglich hierin Daten zu speichern. Anwendung findet er z.B. beim Speichern des Status eines Bauteils.

Der Aufruf eines FB (Funktionsbaustein) im TIA Portal

Ich möchte dir hier den Aufruf zeigen. Er unterscheidet sich leicht von der FC. Zusätzlich wird hier nämlich noch auf den I-DB verwiesen. Bitte schaue dir Bild 1 aus dem Abschnitt Schnittstelle nochmal an. Ich hatte hier in jeder Rubrik eine Variable angelegt. Sie ist jeweils vom Datentyp Bool. Bitte erstelle auch einen FB. Lege die Schnittstelle gleich an. Öffne nun den OB1. Klicke hier auf das Symbol "??". Trage den Namen deines Bausteins ein und drücke Enter. Anschließend geht ein Fenster auf und du darfst den Namen des I-DB festlegen. Danach sieht der Aufruf wie folgt aus.

Der Aufruf eines FB (Funktionsbaustein) im TIA Portal

Der I-DB heißt bei mir Baustein_1_DB. Wie du siehst hast du auch die Input-, Output- und InOut-Variablen am Bausteinaufruf mit dran. Dies ist analog zur FC. Zusätzlich ist nun dieser Baustein_1_DB bei Programmbausteine zu finden. Wir  öffnen ihn mal.

Instanz-DB (Instanzdatenbaustein) eines FB (Funktionsbaustein) im TIA Portal

Du findest die Variablen aus der Schnittstelle hier wieder. Bitte lese und schreibe diese Werte nicht hierüber. Benötigst du eine Variable außerhalb des Bausteins, so beschreibe oder lese sie immer über Input bzw. Output. Machst du es über den DB kann dies zu Datensalat führen. Grundsätzlich ist es möglich. Ich beobachte z.B. gerne den DB um Fehler zu finden.

Abschließend möchte ich noch eine Anmerkung loswerden. Bitte überlege dir immer, ob du einen FB brauchst. Viele Programmierer benutzen ihm immer, da er viele Funktionen bietet. Natürlich kostet dies auch erhöhte Rechenkapazitäten. Bitte benutze ihn nur bei Bedarf. Ist ein FC ausreichend, so benutze bitte ihn. Dies spart wertvolle Ressourcen, welche du vll. anderweitig brauchst.

 

Ein Video zum FB im Vergleich zum FC: