Definition und Funktion:
Der Programmspeicher ist ein spezieller Typ von Speicher in einer speicherprogrammierbaren Steuerung (SPS), in dem das Anwenderprogramm (also die gesamte Steuerungslogik und die Anweisungen, die die SPS ausführen soll) abgelegt ist. Dieser Speicher ist in der Regel nichtflüchtig (non-volatile), was bedeutet, dass sein Inhalt auch bei einem Spannungsausfall oder nach dem Abschalten der SPS erhalten bleibt.
Der Programmspeicher ist entscheidend für die Funktionalität der SPS, da er die Anweisungen enthält, die den Betrieb der Maschine oder Anlage definieren.
Typen von Programmspeichern:
- Flash-Speicher: Die heute am häufigsten verwendete Technologie. Programme werden in Flash-Speichern gespeichert, die elektrisch löschbar und programmierbar sind und ihren Inhalt ohne externe Energieversorgung behalten.
- EEPROM (Electrically Erasable Programmable Read-Only Memory): Ähnlich wie Flash, aber oft für kleinere Speicherbereiche.
- Batteriegepuffertes RAM (SRAM): Bei älteren SPSen oder für bestimmte Anwendungen wurde RAM verwendet, das durch eine Batterie gepuffert wurde, um den Inhalt bei Stromausfall zu erhalten. Dies erfordert jedoch regelmäßigen Batteriewechsel.
Relevanz in der Automatisierung:
Die Größe und Art des Programmspeichers sind wichtige Kriterien bei der Auswahl einer SPS:
- Maximale Programmkomplexität: Die Größe des Programmspeichers bestimmt, wie komplex und umfangreich das SPS-Programm sein kann. Große Anlagen mit vielen Funktionen, Achsen oder Datenpunkten erfordern mehr Programmspeicher.
- Datensicherung: Da der Programmspeicher nichtflüchtig ist, bleibt das Programm auf der SPS erhalten. Dennoch ist ein Backup des Programms auf einem externen Medium (PC, Server) unerlässlich.
- Firmware-Speicher: Auch die Firmware (das Betriebssystem) der SPS ist in einem nichtflüchtigen Speicher abgelegt, oft in einem separaten Bereich des Flash-Speichers.
- Performance: Die Geschwindigkeit des Programmspeichers kann die Zykluszeit der SPS beeinflussen, obwohl der Arbeitsspeicher (RAM) für die aktuelle Verarbeitung wichtiger ist.
Im Gegensatz zum Programmspeicher gibt es den Arbeitsspeicher (RAM), der flüchtig ist und für die Zwischenspeicherung von Variablenwerten während der Programmausführung dient (Prozessabbild, Merker, Datenbausteine).
→ Siehe auch: Speicher, SPS, Firmware, Remanenz, Zykluszeit, Arbeitsspeicher

