Continuous Function Chart
# Continuous Function Chart

Der Continuous Function Chart (CFC; deutsch Signalflussplan) ist eine Programmiersprache für speicherprogrammierbare Steuerung (SPS). Obwohl sie keine der in der IEC 61131-3-Norm definierten Sprachen ist, stellt sie eine gängige Erweiterung von IEC-Programmierumgebungen dar.

Ihr Hauptanwendungsgebiet liegt vor allem in der Prozessleittechnik, weil sich die dort auftretenden, komplexen Steuerungs- und Regelungsaufgaben sehr gut in CFC abbilden lassen.

## CFC Programmieren

CFC ist eine graphische Programmiersprache, in der Funktionsblöcke miteinander verschaltet werden, anstatt eine Abfolge von textuellen Befehlen einzugeben wie bei klassischen Programmiersprachen. Als Vorbild sind dabei Schaltpläne aus der Hardwareentwicklung zu sehen. Diese Darstellung eines Programms kommt Entwicklern von Steuerungssoftware entgegen, deren technischer Hintergrund typischerweise eher aus der Elektrotechnik stammt.

CFC kann als eine Erweiterung der Funktionsbaustein-Sprache betrachtet werden, in der keine strikte zeilenweise Abarbeitung von links oben nach rechts unten erzwungen wird, die Funktionsblöcke frei positionierbar sind und der Programmierer mehr Möglichkeiten zur Verknüpfung von Ein- und Ausgängen hat. Die Reihenfolge der Abarbeitung der Bausteine wird über eine Nummerierung festgelegt.

Die einzelnen Funktionsblöcke sind selbst oft in anderen SPS-Sprachen wie AWL oder Strukturierter Text verfasst und können vom Hersteller des Automatisierungssystems als Standardbausteine mitgeliefert oder vom Anwender selbst verfasst werden.

Viele Prozessleitsysteme verfügen auch über eine Visualisierung. Deshalb sind bei Bausteinen, die mit dem Benutzer der Anlage kommunizieren (Bedienung und/oder Anzeige von Zuständen), oft schon Faceplates (Visualisierungs-Bilder) integriert, die auf kompatiblen Visualisierungssystemen komfortabel weiterverwendet werden können.

Durch den höheren Abstraktionsgrad sind die übersetzten Programme bei CFC um einiges umfangreicher als bei hardwarenäheren Sprachen wie AWL. Dies kann bei komplexen Programmen unter Umständen zu Problemen mit dem in der Steuerung verfügbaren Arbeitsspeicher oder der Zykluszeit führen und die Verwendung einer leistungsfähigeren (teureren) Steuerung notwendig machen.

