Lektion 1.2 Aufbau und Funktionsweise einer SPS

Aufbau und Funktionsweise einer SPS


Wenn du den ersten Teil des Kurses bereits gesehen hast, dann weißt du bereits grob, was eine SPS ist, aber was steckt eigentlich in so einer Steuerung drin?

Genau das möchte ich dir in den nächsten paar Minuten in einer leicht verständlichen Form zeigen.

Was ist in einer SPS
 
 
 
 

Übersicht der Prozesse


Das Kernstück einer SPS ist die CPU (zentrale Rechen- und Steuereinheit eines Computers) und innerhalb dieser CPU laufen verschiedenste Prozesse ab.
Im Bild siehst du in leicht vereinfachter Form den schematischen Aufbau der wichtigsten Systembereiche einer CPU.

Dieser Aufbau beinhaltet das Steuer und Rechenwerk den Speicher, Merker, Zeiten und Zähler, Akku Funktionen, Adressregister und die Prozessabbilder der Ein- und Ausgänge.
 
 

Speicherbereiche und PG/PC Interface


Beim Programmieren einer SPS entstehen Konfigurationsdaten wie die verwendete Hardware und natürlich das Anwenderprogramm.

Damit auch die CPU diese Informationen bekommt werden diese Daten über ein sogenanntes PG/PC Interface (Programmiergerät - PC Schnittstelle) vom Laptop in den Ladespeicher der SPS übertragen.


Der Ladespeicher einer SPS

Der Ladespeicher einer SPS ist nichts weiter als eine Siemens Memory Card (MMC).
Ein Vorteil dieser Speicherkarte ist, dass nach einem Spannungsausfall die Daten im Speicher erhalten bleiben. Auf einen weiteren Vorteil gehe ich noch im Laufe der Lektion ein.

Achtung:

Auch wenn die MMC wie jede handelsübliche Speicherkarte aussieht, ist sie vom Hersteller speziell vorformatiert und darf nicht in einem Windows Rechner gesteckt werden.
 
 

SPS Betriebssystem


Das Betriebssystem einer speicher programmierbaren Steuerung liegt natürlich in einem nicht veränderbaren Speicherbereich (ROM-Speicher).
Eine Hauptaufgabe des Betriebssystems ist, den relevanten Programmcode vom Ladespeicher (MMC), in den Arbeitsspeicher zu kopieren.

Warum wird der Programmcode vom Ladespeicher in den Arbeitsspeicher kopiert?

Zum einen könne die Daten aus dem Arbeitsspeicher schneller abgerufen werden, was den CPU Zyklus viel dynamischer werden lässt, und zum anderen können dadurch Programmänderungen im laufenden Betrieb vorgenommen werden, weil die Änderungen zuerst in den Ladespeicher eingehen und erst von da aus in den Arbeitsspeicher kopiert werden.
 
 

System und Remanenzspeicher


 

Systemspeicher

Im sogenannten Systemspeicher liegen die im Programm verwendeten Operanden.
Zu den Operanden Zählen Ein- und Ausgänge und auch Merker, Zeiten und Zähler




Remanenzspeicher


Der nächste wichtige Speicherbereich ist der Remanenzspeicher wobei Remanenz bzw. Remanent bleibend oder zurückbleibend bedeutet. Für uns heißt es das Merker, Zeiten, Zähler Funktionen und Daten Variablen über ein Spannungsausfall hinweg ihren Wert behalten können.
 
 

Merker - Zeiten - Zähler


Merker


Merker sind kleine Speicherplätze, in denen Zwischenergebnisse gespeichert werden können.
Dabei kann ein Merker als Bit, Byte, Word oder DWord schreibend und lesend verwendet werden, ohne direkten Einflüssen von außen zu unterstehen.
Auch ist es möglich Merker remanent zu setzten damit diese ihren gespeicherten Wert auch bei einem Neuanlauf behalten.

Zeiten und Zähler


Bei Zeiten und Zähler wird wie der Namen schon vermuten lässt ein Zeitwert oder ein Zählwert gespeichert auf den auch schreibend und lesend zugegriffen werden kann.
 
 

Akkumulatoren oder Akkus

Ein SPS Akku oder Akkumulator ist ein Zwischenspeicher für Rechenoperationen und auch Lade und Transfer Operationen.
Der eigentliche Rechenvorgang an sich wird aber einem eigenen Rechenwerk auch ALU genannt durchgeführt.

Ohne diese Akkumulatoren wäre es notwendig jedes einzelne Ergebnis einer Berechnung (logische Grundverknüpfung, Additionen, Divisionen etc.) im Hauptspeicher abzulegen und von da aus wieder in die CPU zu laden, was einen sehr langsamen Zugriff bedeuten würde.

Die gängigsten SPSen besitzen 2 Akkus aber es gibt auch CPU Typen mit 4 Akkus.
 
 

Adressregister

Die Adressregister einer SPS sind Speicherbereich mit deren Hilfe Operanden (Eingänge, Ausgänge, Merker, Datenbaustein Variablen usw.) zur Laufzeit verändert werden können.
Mit zur Laufzeit ist gemeint das z.B. die Adresse eines Eingangs ohne Programmiergerät im SPS Programm verändert werden kann.

Die Adressregister waren besonders in den Zeiten vor dem TIA Portal und den 1200er/1500er CPUs wichtig, weil sie zu diesem Zeitpunkt eine der wenigen Möglichkeiten war Adressbereiche indirekt zu adressieren.
 
 

Das Steuerwerk

Das Steuerwerk regelt den ganzen Ablauf einer CPU.
Das bedeutet, dass das Steuerwerk für den internen Datentransport mittels eines Bussystems und für die Verarbeitung einzelner Operation verantwortlich ist.
Sprich jede einzelne Zeile des Programms, wird aus dem Arbeitsspeicher gelesen -> entschlüsselt und entsprechend verarbeitet.
 
 

Ein SPS Zyklus

Auch wenn das Thema SPS Zyklus schon im ersten Teil erläutert wurde, möchte ich hier trotzdem nochmal darauf eingehen.

Zu Beginn werden die aktuell anliegenden Zustände der Eingänge in das PAE (Peripherie Abbild der Eingänge) geladen.
Im Anschluss wird unter Berücksichtigung von Merker, Zeiten, Zählern usw. das SPS Anwenderprogramm abgearbeitet.

Je nachdem was programmiert wurde, wird im Anschluss das PAA (Peripherie Abbild der Ausgänge) auf die tatsächlichen Ausgänge kopiert und der Zyklus beginnt von vorne.
 
So nun weißt du, was in so einer SPS drin steckt und ich freue mich schon dich im nächsten Teil wieder zu sehen
 

4 Comments

  1. buddelmeyer@berdingbeton.de sagt:

    Moin.
    Was Bedeutet Indirekte Adressierung?

    • Rene sagt:

      Grüß dich,

      dazu muss ich ein klein wenig ausholen.
      Nehmen wir an das du eine Lichtschranke mit der Adresse E10.7 im SPS Programm verwendest wobei das E für einen Eingang steht, die 10 für die Byte Adresse und die 7 für die Bit Adresse.
      Das wäre eine direkte Adresse da diese nicht verändert wird.
      (Sollte dir, das noch nichts sagen findest du hier ein kleines Video von mir Bit – Byte – Word – Dword – Adressierungen)

      Bei einer der vielen Möglichkeiten der indirekten Adressierung wäre es so das die Zahl 10 und 7 durch Variablen ausgetauscht (E[ByteVariable].[BitVariable] werden, sodass diese im Programm verändert werden können.
      Zum Beispiel könntest du mit einer Wiederholfunktion so die einzelnen Bits in einem Byte hoch zählen, wenn diese ein 1 Signal haben.

      Da es aber zig Möglichkeiten gibt, wie indirekt adressiert werden kann mach ich dazu eine eigene kleine Serie.
      Ich hoffe, dass es bis dahin aber trotzdem halbwegs verständlich herübergekommen ist ;).

      mit freundlichen Grüßen
      Rene

  2. m.jakubeczy@gmail.com sagt:

    Hi, wie weit werden meine Kenntnise, wenn ich alle deine Kurse lerne? Lg, Monika

    • Rene sagt:

      Schönen guten Morgen Monika,

      mit den aktuellen Kursen vermittle ich die Grundlagen der SPS Programmierung. Das heißt, dass du danach einfache Aufgaben lösen und programmieren kannst.
      Klar gibt es danach immer noch sehr viel zu lernen, aber der erste Schritt ist immer der Anfang des ganzen :).

      Nach sehr vielen Jahren in der Programmierung lerne auch ich noch dazu ;).

      Lg René

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.