FC und FB

FC (Funktion) und FB (Funktionsbaustein)

Funktionen und Funktionsbausteine, benötigt man um sein Programm sauber zu strukturieren und für andere Programmierer übersichtlicher zu gestalten. Des weiteren lass sich dadurch schneller und effektiver eventuell Fehler in der Programmierung finden. Ein kleines Beispiel.

Alle FC bzw. FB müssen im OB1 (Main) aufgerufen werden. Sonst werden diese nicht vom Programm der SPS abgearbeitet.

Zum Aufrufen des Bausteines im OB1, werden dies einfach in den OB reingezogen und das Tia Portal erstellt automatisch den Aufruf.

Was ist der unterschied von den Funktion (FC) und dem Funktionsbaustein (FB)?

Die Funktionen können sich Daten nur kurz speichern, um genau zu seien 1 Zyklus lang. Danach verlieren Sie die gespeicherten Daten.

Funktionsbausteine im Gegenzug, können durch den eigenen Instanz Datenbaustein (wird durch den Aufruf erzeugt), mehre Daten speichern.

Beide Bausteine kann man als Wiederverwendbar programmieren. 

In den oberen Bild erkennt man den Unterschied beider Bausteine.

Im rechten Bild zu erkennen ist im FB eine Static Variable (Langzeitspeicher), im linken Bild beim FC fehlt diese.

Um die Bausteine Wiederverwendbar zu gestalten, muss man in der Bausteinschnittstelle die Ein-, Ausgänge sowie benötigte Zwischenspeicher angeben.

Input sind die Eingangsparameter, Output  die Ausgangsparameter, InOut sind Durchgangsparameter, Static sind statische Lokaldaten (Langzeitspeicher diese werden im Instanz Datenbaustein des FB abgelegt) und Temp sind temporäre Lokaldaten (werden nur 1 Zyklus lang gespeichert).

Durch das nutzen der Bausteinschnittstelle, vergibt man keine absoluten Adressen (z.B. E0.0 oder A0.0), somit kann man den Baustein in unterschiedlichen Projekten mehrfach benutzen und  vergibt die absoluten Adressen erst beim Aufruf des Bausteins. Er ist dadurch auch Bibliotheksfähig. Das macht Sinn, wenn man z.B. mehrere Ablaufsteuerung mit dem selben Programm hat. Somit schreib man das Programm nur 1 mal. 

Wie im oberen Bild zu erkennen, werden erst bei dem Aufruf die absoluten Adressen an den Baustein geschalten.

Ob man einen FC  oder FB verwendet hängt immer davon ab , was man machen möchte. Sollen Daten gespeichert werden verwendet man einen FB, brauche ich keinen Speicher so nimmt man einen FC da er weniger Speicher benötig als ein FB (Funktionsbaustein).