SPS Programmiersprachen FUP, KOP, AWL und SCL zur SPS Programmierung einer Siemens Steuerung
Christian Preis
zuletzt aktualisiert: 25. Mai 2024
Bei der SPS-Programmierung gibt es verschiedene Programmiersprachen. Für OB, FC und FB gibt es für SPS’n der 1500er Baureihe von Siemens die folgenden Programmiersprachen:
- KOP (Kontaktplan)
- FUP (Funktionsplan)
- AWL (Anweisungsliste)
- SCL (Structed Control Language)
Die speicherprogrammierbare Steuerung der 1200er Baureihe enthält hingegen nicht die Programmiersprache AWL. Bei FB’s hat man zusätzlich noch weitere Programmiersprachen zur Auswahl.
- CEM (Cause-Effect-Matrix)
- GRAPH (Programmierung von Schrittketten)
Die Programmiersprache CEM ist recht neu und wurde mit dem Step 7 TIA Portal V17 eingefügt. Die verwendete CPU muss auch einen bestimmten Firmware-Stand haben um CEM verwenden zu können.
GRAPH-Schrittketten kann man nur mit 1500er Steuerungen programmieren. Eine Schrittkette kann für eine Ablaufsteuerung verwendet werden. Im Folgenden konzentrieren wir uns auf die oberen vier genannten Programmiersprachen.
SPS Programmierung in KOP (Kontaktplan)
KOP ist eine grafische Programmiersprache. Die Darstellung ist ähnlich wie bei einem Stromlaufplan. Ein KOP-Netzwerk wird von links nach rechts gelesen. Am linken Rand befindet sich die “Stromschiene”. Von dort aus wird die Verknüpfungslogik aufgebaut. Die Kontakte können als Schließer- und Öffner-Kontakte in die Verknüpfungslogik eingebaut werden. Um eine UND-Logik zu erstellen, müssen einfach zwei Schließer-Kontakte hintereinandergeschaltet werden. Für eine ODER-Logik muss eine Parallelschaltung aufgebaut werden. In Bild 1 unten ist der Funktionsbaustein “Test_FB” mit einer Berechnungslogik mit der Programmiersprache KOP dargestellt. Man kann die Programmiersprache, unter bestimmten Voraussetzungen von FUP nach KOP und umgedreht, umschalten.

Bild 1: FB mit der Programmiersprache KOP
SPS Programmierung in FUP (Funktionsplan)
Auch FUP ist eine grafische Programmiersprache. Die Darstellung ist aber digitalen Schaltkreisen nachempfunden. Auch bei FUP wird die Verknüpfungslogik von links nach rechts aufgebaut. Im Bild unten ist der gleiche Programmteil aus dem FB abgebildet wie oben mit der Programmiersprache KOP. Wie man sieht, bekommt man mit FUP ein Netzwerk weniger dargestellt als mit KOP. KOP hat also den Vorteil, dass bei kleiner bis mittlerer Verknüpfungslogik die Darstellung kleiner bzw. besser ist. Bei mittlerer bis großer Verknüpfungslogik hingegen hat man den Nachteil, dass das Netzwerk sehr breit wird. In diesem Fall ist FUP von der Darstellung von Vorteil.

Bild 2: FB mit der Programmiersprache FUP
SPS Programmierung in AWL (Anweisungsliste)
AWL ist eine textbasierte Programmiersprache. AWL wird mittlerweile nicht mehr allzu häufig eingesetzt. Es ist eher ein Überbleibsel aus dem TIA-Vorgänger, dem Simatic Manager. AWL wird zum Großteil durch SCL ersetzt. Trotzdem hat AWL für bestimmte Anwendungen seine Vorteile. Im Bild unten ist der Beispiel FB in AWL dargestellt. Man sieht auf den ersten Blick, dass AWL für eine solche Anwendung nicht so übersichtlich ist, wie die beiden grafischen Programmiersprachen. Bei AWL muss für die Programmlogik häufig mit Sprüngen gearbeitet werden. In den Kommentaren zu den einzelnen Programmzeilen ist genau beschrieben, was welche Zeile macht.

Bild 3: FB mit der Programmiersprache AWL
Wenn Du die Logik oben nachstellen möchtest, muss die Mnemonik auf Deutsch eingestellt werden. Wird dies nicht gemacht, muss anstelle von U (und) ein A (and) verwendet werden und das SPBN muss gegen JCN geändert werden. Wenn die Mnemonik auf Deutsch gestellt wird ändert sich auch die Absolutadresse. Aus I und Q wird E und A (Eingang und Ausgang). Die Mnemonik stellt man in den Einstellungen ein s. Bild. Die Einstellungen sind im Menü “Extras” zu finden.

Bild 4: Einstellung der Mnemonik
SPS Programmierung in SCL (Structured Control Language) (Analog zu Strukturierter Text bei IEC 61131-3)
Auch SCL ist eine textbasierte Programmiersprache. Sie orientiert sich an der Hochsprache PASCAL. SCL basiert auf der DIN EN-61131-3. In dieser Norm werden Programmiersprachen für die SPS-Programmierung festgelegt. SCL erfüllt den PLCopen Basis Level der Sprache ST (Strukturierter Text), die in der Norm definiert ist. Im Bild unten ist der Beispiel FB in SCL programmiert. Wie man sieht, ist hier die Übersichtlichkeit wieder deutlich besser gegenüber AWL. Trotzdem eignen sich für das Beispiel eher die grafischen Programmiersprachen.

Bild 4: FB mit der Programmiersprache SCL
Zusammenfassung SPS Programmiersprachen
Wie man am Beispiel gesehen hat, haben alle Programmiersprachen ihre Vor- und Nachteile. Allgemein kann man aber sagen, dass die Programmiersprache SCL sehr gut für komplexere in sich geschlossene Bausteine geeignet ist. Wohingegen die Sprache FUP und KOP eher für einfachere Anwendungen und für die Anwenderprogrammierung geeignet ist. Dies ist z.B. auch in der Automobil- oder Pharma-Branche üblich bzw. Vorschrift. Dort werden in aller Regel einige Bausteine für bestimmte Anwendungen zur Verfügung gestellt. Diese Bausteine werden auch Standard-Bausteine genannt und sind auf Funktion getestet. Diese Bausteine sind üblicherweise in SCL programmiert. Der Programmierer der Anlage bedient sich dann dieser Bausteine. Er darf aber in aller Regel nur in den Sprachen FUP oder KOP arbeiten, damit das Programm übersichtlich bleibt. Das ist für den Service und die Instandhaltung bei der Fehlersuche oder bei kleineren Änderungen von besonderer Bedeutung.

Christian Preis
Gründer edcon-academy seit 15 Jahren in der Automatisierungstechnik.
Beitrag teilen!