Programmstruktur
Wenn man von Programmstrukturen spricht, dann meint man im Grunde das Anwenderprogramm (SPS-Programm), mit dem die Steuerung realisiert wird. In der CPU gibt es ein weiteres Programm, das Betriebssystem. Beide Programme, das Betriebssystem und das Anwenderprogramm werden benötigt, um eine Steuerung zu realisieren.
Betriebssystem
Das Betriebssystem ist fest in der CPU verankert und kann nicht geändert werden. Lediglich durch einige Parametereinstellungen lässt sich das Verhalten der CPU beeinflussen. Das Betriebssystem organisiert alle Funktionen und Abläufe, die nichts mit dem Anwenderprogramm zu tun haben. Dazu gehören der Neustart und Wiederanlauf der CPU, Aktualisierung des PAE und PAA, Kommunikation mit angeschlossenen Programmiergeräten und sonstigen Kommunikationsgeräten, z.B. Kommunikationsprozessor, Starten des Anwenderprogramms, Starten von Systemfunktionsbausteinen, Erkennen von Fehlern und Speicherbereiche verwalten.
Das Anwenderprogramm
Mit dem Anwenderprogramm wird die Steuerungsaufgabe realisiert und es enthält alle für den Steuerungsablauf notwendigen Befehle und Funktionen. Es besteht aus Codebausteinen und hat eine ganz bestimmte Struktur und ein SPS-Programmierer sollte sie kennen. In jedem Codebaustein wird eine Teilaufgabe einer Steuerung realisiert. Der wichtigste Codebaustein ist dabei der Organisationsbaustein OB1. Wenn das Betriebssystem das Anwenderprogramm startet, dann wird im Grunde OB1 gestartet und zyklisch abgearbeitet. Ist das Programm zu Ende, wird von vorne wieder begonnen. Je nachdem, wie das Programm im OB1 abgelegt ist, unterscheidet man zwischen drei Arten von Programmstrukturen:
- Lineares Programm
- Gegliedertes Programm
- Strukturiertes Progamm
Lineares Programm
Von einem linearem Programm spricht man, wenn das gesamte Programm direkt im OB1 erstellt wurde und die CPU nur den OB1 abarbeitet. Dabei werden die Anweisungen von oben nach unten abgearbeitet und die Programmabarbeitung beginnt wieder von vorne.
Gegliedertes Programm
Ein gegliedertes Programm ist eine Programmstruktur, in der das Programm in ein oder mehreren Funktionen oder Funktionsbausteinen abgelegt ist. Dabei ruft das Betriebssystem den OB1 auf. OB1 ruft wiederum weitere Bausteine (Funktionen, Funktionsbausteine) nach einer vorher festgelegten Reihenfolge auf. Jedes aufgerufene Baustein übernimmt dabei eine Teilaufgabe. Diese Methode hat gegenüber dem linearen Programm den Vorteil, dass eine Steuerungsaufgabe in mehrere Teillösungen zerlegt werden kann. Dies wahrt die Übersichtlichkeit über das Programm und bei Fehlern und Änderungen muss man sich nur auf diesen Teil des Programms konzentrieren.
Strukturiertes Programm
Ein strukturiertes Programm ist im Grunde wie ein gegliedertes Programm. Der einzige Unterschied besteht darin, dass bei einem strukturieren Programm ein Funktionsbaustein mehrfach aufgerufen und bei jedem Aufruf mit anderen Parametern versehen werden kann. Daher benötigt man für ein strukturiertes Programm parametrierbare Funktionsbausteine. Denn nur sie können beim Aufruf jeweils unterschiedliche Datenbausteine aufrufen, die wiederum verschiedene Aktualparameter enthalten können