Arbeits- und Funktionsweise einer SPS

Das Anwenderprogramm wird innerhalb der SPS als eine Liste von Anweisungen abgelegt. Mit welcher Darstellungsart das Programm erstellt wurde, spielt keine Rolle. Das Programm kann z.B. in FUP, KOP, AWL, Graph oder SCL erstellt werden, auf dem Programmiergerät wird das Programm aber nicht in FUP oder KOP gespeichert. Diese "Programmiersprachen" sind eigentlich nur eine andere Darstellungsart die bei der Bearbeitung aus AWL erzeugt werden. Auf dem Programmiergerät liegt das Programm, die Symbole und die Kommentare. Beim Übertragen in die SPS wird aber nur das Programm in einem für die Maschine lesbaren Maschinencode MC7 aus der AWL, SCL oder Graph generiert und in die SPS übertragen. Diese Umwandlung wird durch einen Batch-Compiler realisiert. Dazu kommt die Hardwarekonfiguration, die in die Systemdaten der CPU übertragen wird. Wenn ein Programm aus der CPU ausgelesen wird, für das man keine Projektdateien hat, dann hat man auch keine Symbole oder Kommentare da man aus der SPS nur das Programm und die Systemdaten in das Programmiergerät übertragen kann.

Programmiergerät und CPU
Die Funktionsweise zwischen Programmiergerät und CPU

Zyklische Programmbearbeitung

Das Programm bildet innerhalb der CPU einen Befehlsstapel (Stack). Sie wird von der CPU sequentiell (Zeile für Zeile) und zyklisch (wiederholend) abgearbeitet. Ein Programmzyklus erfolgt in folgenden Schritten:

  1. Schritt 1: Die Zustände der Eingangsbaugruppen werden abgefragt und in den Prozessabbild der Eingänge PAE geschrieben. Während der Programmbearbeitung bleiben sie für je ein Zyklus erhalten, werden quasi eingefroren.
  2. Schritt 2: Zeile für Zeile wird der Befehlsstapel abgearbeitet. Das VKE kann dabei entweder 0 oder 1 sein und sich auch Zeile für Zeile ändern. Entscheidend ist, ob am Ende des Programms das VKE auf 0 oder 1 steht.
  3. Schritt 3: Je nach VKE der einzelnen Netzwerke werden die Ergebnisse in den Prozessabbild der Ausgänge PAA geschrieben und aktualisiert.
  4. Schritt 4: Über den Prozessabbild der Ausgänge werden die Ausgangsbaugruppen aktualisiert.
Programmbearbeitung
Sequentielle und zyklische Programmbearbeitung

Die Zykluszeit für das Programm

Für jede Anweisung wird eine bestimmte Zeit benötigt. Diese Zeit wird als Ausführungszeit pro Anweisung bezeichnet. Je nach Anzahl der Anweisungen errechnet sich dadurch die Programmzykluszeit=Anzahl der Anweisungen x Ausführungszeit. Die Ausführungszeit pro Anweisung beträgt auf heutigen SPS-Systeme ca. 5 µs. Wenn ein Programm 10 Anweisungen enthält, dann dauert der Programmzyklus 50 µs.

Die Zykluszeit wird durch weitere Faktoren beeinflusst. Durch Hinzufügen dieser Faktoren in die Berechnung ergibt sich dadurch eine Gesamtzykluszeit. Zu den weiteren Faktoren zählen unter anderem:

  • Prozessabbild-Aktualisierung
  • Zeitgleiche Prozesse des Betriebssystems, z.B. Timerverwaltung
  • Betriebssystem-Bearbeitungszeit
  • Einschachtelung von Alarmen