Definition und Zweck:
Eine FC (Function), zu Deutsch Funktion, ist eine Programmiereinheit in der SPS-Programmierung nach IEC 61131-3. Im Gegensatz zu einem Funktionsbaustein (FB) besitzt eine Funktion keinen eigenen Speicherbereich (sie ist „zustandslos“ oder „stateless“).
Das bedeutet, dass eine Funktion nur mit den Werten arbeitet, die ihr als Eingabeparameter übergeben werden, und ein Ergebnis als Rückgabewert liefert. Sie speichert keine Informationen aus vorherigen Aufrufen. Wenn dieselbe Funktion mehrfach im Programm aufgerufen wird, sind die Aufrufe vollständig unabhängig voneinander.
Merkmale und Anwendungsbeispiele:
- Zustandslos: Hat keinen eigenen Datenspeicher und speichert keine internen Zustände.
- Rückgabewert: Liefert immer ein Ergebnis zurück (kann auch ein komplexer Datentyp sein).
- Wiederverwendbarkeit: Sehr gut wiederverwendbar, da sie keine Seiteneffekte hat und immer dasselbe Ergebnis für die gleichen Eingaben liefert.
- Kapselung: Kapselt eine bestimmte Funktionalität.
- Einfachheit: Relativ einfach zu verstehen und zu testen.
Typische Anwendungen für Funktionen (FC) in der SPS-Programmierung:
- Mathematische Berechnungen: Addition, Multiplikation, Division, Wurzel, Sinus, Cosinus.
- Logische Operationen: UND, ODER, NICHT, XOR.
- Konvertierungen: Umwandlung von Datentypen (z.B. INT zu REAL, Binär zu BCD).
- Skalierungen: Umrechnung von rohen Sensorwerten in physikalische Einheiten.
- Textverarbeitung: Einfache String-Operationen.
- Vergleiche: Größer als, kleiner als, gleich.
Abgrenzung zu Funktionsbausteinen (FB):
Wenn eine Logik interne Zustände speichern muss (z.B. bei Timern, Zählern, Reglern oder Motorsteuerungen), muss ein Funktionsbaustein (FB) verwendet werden. Für reine Berechnungen ohne Gedächtnis ist die Funktion (FC) die richtige Wahl.
Funktionen sind ein wichtiger Baustein der strukturierten Programmierung und tragen zur Übersichtlichkeit und Effizienz von SPS-Programmen bei.
→ Siehe auch: FB (Funktionsbaustein), Baustein, Funktionsaufruf, IEC 61131-3, Datentyp, SPS-Programmierung

