Die CPU
Das Herzstück einer SPS ist die CPU. Oft wird der Begriff synonym mit SPS verwendet und bedeutet ausgeschrieben Central Processing Unit. In der CPU wird das SPS-Programm sequentiell und zyklisch abgearbeitet sowie alle logischen Funktionen ausgeführt. Je nach Anforderungen und Aufgaben gibt es sie in den verschiedensten Ausführungen. Die CPU besitzt eine Verbindungsschnittstelle zum PC/Programmiergerät und idealerweise ist sie kommunikationsfähig. Das Aussehen einer CPU für Steuerungsaufgaben unterscheidet sich natürlich gravierend von einem CPU auf herkömmlichen Computern. Nähere Informationen über Computer mit Begriffserklärungen in einem Lexikon gibt es auf Computerwissen Online.
Der Aufbau einer SPS
Innerhalb der CPU laufen die verschiedensten Vorgänge ab und für diese Vorgänge sind verschiedene Systembereiche untergebracht. Auf dem Bild ist der Aufbau einer SPS schematisch dargestellt.
Zu den Systembereichen einer CPU gehören:
- Steuerwerk
- Rechenwerk
- Speicher
- Prozessabbild der Eingänge (PAE)
- Prozessabbild der Ausgänge (PAA)
- Adressregister
- Akkumulator (Akku)
- Zeiten
- Zähler
- Merker
Steuerwerk
Das Steuerwerk dient zur Koordinierung des gesamten Ablaufs in der CPU. Dazu gehören die Koordinierung der internen Operationen sowie der Datentransport. Die Programmanweisungen werden Zeile für Zeile aus dem Arbeitsspeicher gelesen und ausgeführt. Die Abarbeitung erfolgt in vier Stufen. Zuerst wird der Befehl ausgelesen, danach wird der Befehl entschlüsselt. Als nächstes werden die Zustände der Eingangsoperanden ausgelesen und in den Prozessabbild der Eingänge PAE geschrieben und zum Schluss wird der Befehl unter Einbeziehung weiterer Werte aus Zeiten, Zähler und Merker ausgeführt. Diese Stufen werden auch als Fetch, Decode, Fetch Oprands und Execute bezeichnet. Als letzten Schritt wird noch ein Befehlszähler aktualisiert und der Zyklus beginnt von vorne. Das Ergebnis der Programmbearbeitung wird in den Prozessabbild der Ausgänge PAA geschrieben über den wiederum die Ausgangsoperanden neu beschrieben werden. Für die Abarbeitung befindet sich auf dem Steuerwerk das Befehlsregister und Befehlsdecoder. Das Befehlsregister dient dazu, die Programmbefehle zwischenzuspeichern während sie entschlüsselt und ausgeführt werden. Der Befehlsdecoder entschlüsselt die Befehle in einen von der CPU lesbaren Code. Das Steuerwerk ist über die Busverbindung mit den anderen Systembereichen wie Rechenwerk, Zeiten, Zähler etc. verbunden. Direkt nach dem Anlegen der Netzspannung werden die nichtremanenten Zähler, Zeiten und Merker sowie die Akku's und Prozessabbild der Ein- und Ausgänge zurückgesetzt (auf Null).
Rechenwerk
Die eigentliche Durchführung der Operationen erfolgt im Rechenwerk. Im Rechenwerk befindet sich dafür die Arithmetisch Logische Einheit, auch ALU genannt, die Abkürzung aus dem englischen Begriff Arithmetic Logic Unit. Zum Rechenwerk gehören auch die Akkumulatoren, auch wenn sie in der Abbildung als separate Systembereiche dargestellt sind. Die Durchführung erfolgt in der Regel nach folgendem Schema. Der erste Wert wird ausgelesen und in Akku 1 geschrieben. Als nächstes wird der Inhalt von Akku 1 in Akku 2 verschoben und der nächste Wert wird in Akku 1 geschrieben. Die Rechenoperation wird durchgeführt und das Ergebnis wird in Akku 1 geschrieben. Es können sowohl Bit, Byte oder Wortoperationen durchgeführt werden. Da hier auch Daten abgelegt werden, können die Akkumulatoren auch als Teil des Datenregisters bezeichnet werden.
Speicher
Der Speicherbereich einer CPU wird in mehrere Bereiche aufgeteilt und jeder Speicherbereich erfüllt eine Aufgabe. Einerseits muss das Betriebssystem auf einem Speicher untergebracht werden. Dieser sorgt dafür, dass das Programm in der Reihenfolge abgearbeitet wird wie es soll. Dann entstehen durch jedes Projekt Konfigurationsdaten der Hardware, ein Anwenderprogramm sowie die Symboltabelle und evtl. noch Kommentare. Das Anwenderprogramm besteht aus Steuerungsbefehlen und Steuerungsdaten, die in Codebausteinen und Datenbausteinen untergebracht sind. Für diese Daten wird ebenfalls ein Speicherbereich auf der CPU benötigt. Daher existieren auf einer CPU der Systemspeicher, Ladespeicher und Arbeitsspeicher.
ROM, bzw. Flash-ROM
Das ist ein Read Only Memory Speicher. Hierauf befindet sich das Betriebssystem der CPU und wird vom Hersteller festgelegt. Read Only deshalb, weil der Speicher nicht gelöscht oder geändert werden kann. Auf die Daten kann nur lesend zugegriffen werden und bei Spannungsausfall bleiben die Daten erhalten.
Ladespeicher (EEPROM)
Über die Schnittstelle zum Programmiergerät werden die gesamten Projektdaten inkl. der Hardwarekonfiguration, Codebausteine, Datenbausteine, Systemdatenbausteine etc. zunächst in den Ladespeicher EEPROM geladen. EEPROM ist die Abkürzung für Electrical Erasable Programmable ROM und bedeutet elektrisch löschbarer programmierbarer ROM. Der Ladespeicher kann durch sogenannten Flash EPROM Memory Cards erweitert werden. EPROM ist die Abkürzung für Erasable Programmable ROM und bedeutet in etwa löschbarer, programmierbarer Festwertspeicher. Die Daten bleiben auch bei Spannungsausfall erhalten.
RAM
Random Access Memory. RAM wird auch als Hauptspeicher oder Arbeitsspeicher bezeichnet. Das ist ein flüchtiger Speicher und bei Spannungsausfall geht der Inhalt verloren. Es ist als ein Schreib- Lesespeicher konzipiert. Man kann sowohl lesend als auch schreibend auf den Speicher zugreifen. Random Access bedeutet sowas wie wahlfreier Zugriff, da die Zugriffszeiten beim Lesen und Schreiben gleich sind. Vom Ladespeicher werden die ablaufrelevanten Teile des Programms in den Arbeitsspeicher geladen. Dazu zählen insbesondere die Codebausteine und Datenbausteine.
Systemspeicher
Im Systemspeicher werden die Zustände der Eingänge und Ausgänge über den Prozessabbild der Eingänge und Ausgänge (PAE und PAA), Zeiten, Zähler, Merker und der Lokaldatenstack gespeichert. Diese Informationen braucht die CPU, damit er weiß mit wem er was machen soll.
Zeiten, Zähler und Merker
Auch für diese Systembereiche werden Speicherbereiche benötigt, in denen das Steuerwerk die Daten entsprechend den Datentypen ablegt. Merker sind interne Ausgänge, in die Zwischenergebnisse gespeichert werden. Auf sie kann lesend und schreibend zugegriffen werden. Ein Teil der Merker sind nicht flüchtig und behalten bei Spannungsausfall ihre Daten.
Prozessabbild der Eingänge und Ausgänge
Die Zustände der Eingänge und Ausgänge werden in den Speicherbereichen PAE und PAA gespeichert. Auf diese Daten wird während der Programmbearbeitung zugegriffen.
Akkumulatoren
Eine CPU besitzt je nach Typ 2-4 Akkumulatoren. Diese dienen als Zwischenspeicher während der Rechenoperationen durch das Rechenwerk (ALU).
Adressregister
Bei der registerindirekten Adressierung dienen diese Speicherbereiche zur Aufnahme der Basisadresse. Anweisungen mit Adressregistern (AR1, AR2) verändern den Statusbit nicht und werden immer unabhängig von Bedingungen ausgeführt.
Programmierschnittstelle (MPI)
Heutige CPU's besitzen eine MPI-Schnittstelle, um die Verbindung zum Programmiergerät/PC herzustellen. MPI bedeutet Multi Point Interface. So kann das Programm in die CPU übertragen werden. Sie dient gleichzeitig zum Anschluss von weiteren mehrpunktfähigen Baugruppen oder Bedien- und Beobachtungsgeräten.
Bussystem (Rückwandbus)
Über die MPI-Schnittstelle zum Programmiergerät werden die Projektdaten in die CPU übertragen. Die Daten werden über einen Kommunikationsteil in der CPU empfangen. Der Kommunikationsteil ist auch zuständig für die Kommunikation mit kommunikationsfähigen Baugruppen, z.B. dem Kommunikationsprozessor, Funktionsmodule wie schnelle Zähler etc. und die Kommunikation mit der dezentralen Peripherie (Profibus DP). Auf dem Rückwand der Baugruppen ist eine Schnittstelle. Über Busverbinder werden die Baugruppen miteinander verbunden. Der Rückwandbus wird unterteilt in K-Bus und P-Bus. Der K-Bus ist ein Kommunikationsbus und ist optimiert für große Datenmengen. Hierüber läuft die Kommunikation. Der P-Bus ist ein Peripheriebus. Hierüber läuft der Datenverkehr zwischen der CPU und den Baugruppen, wobei den Datenverkehr nur die CPU initiiert. Sie ist sozusagen ein Mono-Master-Bus.
Schlüsselschalter
Auf den CPU's befindet sich ein Betriebsartenschalter bzw. ein Schlüsselschalter für die verschiedenen Betriebsarten. Damit kann man die Programmbearbeitung starten, stoppen etc. Sie können folgende Stellung einnehmen:
- MRES: Memory Reset. Bedeutet Speicher löschen. Die CPU wird urgelöscht.
- STOP: Programmbearbeitung wird gestoppt.
- RUN: Programm wird bearbeitet und dabei kann nur lesend auf das Programm zugegriffen werden.
- RUN-P: Programm wird bearbeitet und der Zugriff kann sowohl schreibend als auch lesend erfolgen.
Statusanzeigen (LED's)
Über die Statusanzeigen werden die Betriebsart und die Betriebszustände angezeigt. Sie haben folgende Bedeutung:
- SF: Sammelfehler. Ein interner Fehler in der CPU oder in einer diagnosefähigen Baugruppe.
- BAF: Batteriefehler. Entweder ist die Batterie leer oder nicht vorhanden.
- DC5V: Die Anzeige für die interne Versorgungsspannung von 5V.
- FRCE: Force (Zwangssteuern). Mindestens ein Eingang oder Ausgang ist zwangsgesteuert.
- RUN: Anzeige leuchtet im RUN-Modus und blinkt beim Anlauf.
- STOP: Im STOP-Modus ständig leuchtend. Ansonsten blinkt die Anzeige langsam wenn Urlöschen angefordert wurde oder Urlöschen durch Stecken einer Memory Card erforderlich wurde. Blinkt schnell, wenn Urlöschen durchgeführt wird.