SPS-Software modernisieren, ohne die ganze Maschine neu zu programmieren
9 Min. Lesezeit · Vom neexo Engineering-Team · Vejle, Dänemark
Veröffentlicht: 11. Oktober 2026
Wenn eine Maschine zuverlässig produziert, aber jede Softwareänderung Liefertermine gefährdet, ist eine vollständige Neuentwicklung der SPS oft nicht die beste erste Investition. Vergleichen Sie die Kosten der bestehenden Lösung mit den Risiken eines Austauschs. Häufig ist ein klar abgegrenztes Modul mit eindeutiger Schnittstelle und wiederholbaren Tests der sinnvollere Einstieg. Bewährte Abläufe bleiben zunächst erhalten.
Bestehende SPS modernisieren oder vollständig ersetzen?
Die zentrale Frage ist, wie die nächste Softwareänderung verlässlich gelingen kann, ohne die ganze Maschine zu gefährden. Ein schwer wartbares System kostet bei jeder Erweiterung Zeit. Eine vollständige Neuentwicklung ohne Testbasis kann dagegen neue Fehler und Stillstände verursachen. Vergleichen Sie beide Risiken, bevor Sie den Umfang festlegen.
Zuerst sollten Risiken und geschäftliche Ziele geklärt werden, nicht das Alter oder der Stil des SPS-Codes. Wenn Bewegungen, Prozesse und Steuerungshardware bewährt und unterstützt sind, kann eine schrittweise Migration mehr Wert erhalten als ein vollständige Neuentwicklung. Fehlender Support oder nicht mehr überprüfbare kritische Schnittstellen können dagegen eine größere Ablösung erforderlich machen.
Definieren Sie konkrete Verbesserungen: Variantenhandling, Diagnose, Wiederanlauf, Testbarkeit oder Wartbarkeit. Jede braucht einen beobachtbaren Akzeptanztest. Neue Software ohne dokumentierte Ausgangsbasis kann alte Fehler lediglich in einem neuen Programmierstil reproduzieren.
- Bewährte Prozess- und Bewegungslogik zunächst erhalten
- Problemstellen anhand von Verantwortlichkeiten und Schnittstellen eingrenzen
- Hardware-Lebenszyklus und sicherheitsrelevante Änderungen getrennt bewerten
- Keine Einsparungen versprechen, bevor der Ist-Zustand gemessen wurde
Zuerst die Schnittstellen verbessern. Interne Logik nur dann ersetzen, wenn Nutzen und Risiko nachvollziehbar sind, und jede Änderung gegen das dokumentierte Maschinenverhalten testen.
Was muss vor einer Budgetentscheidung geklärt sein?
Lassen Sie Ihr Team zunächst benennen, wo Änderungen wirklich Zeit verlieren: Verstehen des Altprogramms, Variantentests, Inbetriebnahme, Fehlerdiagnose oder Wiederanlauf. Eine kurze Bestandsaufnahme mit drei reproduzierbaren Problemszenarien ist für diese Entscheidung hilfreicher als die Anzahl der Codezeilen.
Verfolgen Sie einen vollständigen Ablauf: von Stopped über Reset und Start bis zur Produktion, dann Stop und Wiederanlauf nach einem Fehler. Welche Funktion besitzt die Befehlszuständigkeit? Welche Signale geben Bewegungen frei? Welche Meldungen sind nur Diagnose und welche sind echte Verriegelungen?
Halten Sie eine überprüfbare Baseline fest: Zustandsverläufe, Zykluszeiten, I/O-Mapping, Variantenszenarien und reproduzierbare Fehler. Ohne diese Grundlage lässt sich nach einem Umbau kaum beweisen, dass das Verhalten unverändert geblieben ist.
- Inventar: Hardware, Software, Motion, HMI und Varianten
- Befehlsgewalt: nur eine maßgebliche Quelle pro Antrieb und Kommando
- Schnittstellen: Requests, Status, Freigaben, Fehler und Zeitgrenzen
- Tests: Produktion, fehlendes Produkt, Stau, Stop, Abort und Recovery
Mit einem Pilotmodul statt der ganzen Maschine beginnen
Ein Pilot braucht ein klares Ergebnis. Beispielsweise meldet die Auslaufstation das tatsächliche Ende ihres Resets, statt dass die Gesamtmaschine dem Bediener zu früh Bereitschaft anzeigt.
Beschreiben Sie vor dem Refactoring einen Schnittstellenvertrag. Wer fordert Start und Stop an? Was bedeutet Ready? Wann wird StateComplete gemeldet? Wie werden Fehler weitergegeben und unter welchen Bedingungen darf Reset ausgeführt werden? Bewährte Funktionsblöcke können zunächst hinter einem schlanken Adapter bestehen bleiben.
Ein Adapter braucht eindeutige Verantwortung. Alte und neue Steuerung dürfen nicht gleichzeitig Befehle an dieselben Aktoren ausgeben. Während eines Übergangs kann man Diagnosewerte passiv vergleichen; die Befehlsgewalt muss dagegen kontrolliert und getestet umgestellt werden.
Wenn der Adapter sämtliche alten BOOL-Signale in einer zweiten Ablaufsteuerung dupliziert, verbessert er die Architektur nicht. Die Schnittstelle soll vereinfachen, nicht neue Parallelzustände schaffen.
- Beispielvertrag: StartRequest, StopRequest, CurrentState, Ready, FaultId, StateComplete
- Rezepte, Positionen und Prozessverriegelungen beim zuständigen Modul belassen
- Zeitannahmen und Wartebedingungen für das HMI sichtbar machen
- Vorherige Softwareversion und geprüften Rollback-Prozess bereitstellen
Beispiel für einen Modulvertrag: von verstreuten Signalen zu prüfbarem Verhalten (illustrativ)
Main meldet Ready, obwohl der Auslauf noch zurücksetzt
- Vereinbarte Schnittstelle
- Auslauf besitzt CurrentState und StateComplete; Main wartet auf Abschluss
- Prüfnachweis
- Main und Auslauf bei Reset aufzeichnen; Idle darf nicht zu früh eintreten
Stop verhält sich je nach Station unterschiedlich
- Vereinbarte Schnittstelle
- Ein eindeutiger Besitzer für StopRequest mit Zustands- und Fehlerrückmeldung
- Prüfnachweis
- Stop aus Execute und bei blockierter Folgestation prüfen
Eine optionale Station blockiert Reset, obwohl sie fehlt
- Vereinbarte Schnittstelle
- Teilnehmende Module sind pro Maschinenvariante explizit definiert
- Prüfnachweis
- Station vorhanden, deaktiviert und nicht eingebaut testen
Erster Fehler geht in Folgealarmen unter
- Vereinbarte Schnittstelle
- Ursprüngliche Fehlerursache erhalten, Quittieren und Wiederanlauf trennen
- Prüfnachweis
- Fehler auslösen; Ursache und wirksame Verriegelungen bei Reset prüfen
| Bisheriges Problem | Vereinbarte Schnittstelle | Prüfnachweis |
|---|---|---|
| Main meldet Ready, obwohl der Auslauf noch zurücksetzt | Auslauf besitzt CurrentState und StateComplete; Main wartet auf Abschluss | Main und Auslauf bei Reset aufzeichnen; Idle darf nicht zu früh eintreten |
| Stop verhält sich je nach Station unterschiedlich | Ein eindeutiger Besitzer für StopRequest mit Zustands- und Fehlerrückmeldung | Stop aus Execute und bei blockierter Folgestation prüfen |
| Eine optionale Station blockiert Reset, obwohl sie fehlt | Teilnehmende Module sind pro Maschinenvariante explizit definiert | Station vorhanden, deaktiviert und nicht eingebaut testen |
| Erster Fehler geht in Folgealarmen unter | Ursprüngliche Fehlerursache erhalten, Quittieren und Wiederanlauf trennen | Fehler auslösen; Ursache und wirksame Verriegelungen bei Reset prüfen |
Wo PackML gemeinsame Zustände verständlicher macht
PackML bietet eine gemeinsame Sprache für Maschinen- und Unit-Zustände, Betriebsarten und Befehle. So können übergeordnete Steuerung, HMI und Module Stopped, Resetting, Idle, Starting, Execute oder Aborting einheitlich interpretieren. Nicht jeder Sensor und jede Achse braucht deshalb ein komplettes PackML-Modell.
Die Grundlagen finden Sie bei OMAC und im ISA-TR88.00.02-2022 Wählen Sie das passende Zustandsmodell und die benötigten Zustände bewusst. Parent/Child-Hierarchie und Adapter sind praktische Architekturentscheidungen, keine Anforderungen an jeden internen Funktionsbaustein.
Bei einer vorhandenen Maschine kann zuerst die externe Zustands-Schnittstelle standardisiert werden. Der Parent wartet beispielsweise in Resetting, bis alle beteiligten Child-Module tatsächlich abgeschlossen haben. Das HMI kann dann zeigen, welche Station noch wartet.
PackML ist keine funktionale Sicherheit. Der Zustand Aborting ersetzt keinen Not-Halt und ein virtueller Test ersetzt weder die Risikobeurteilung noch die physische Prüfung der erforderlichen Sicherheitsfunktionen.
- Bedeutung und Besitzer der Zustände gemeinsam definieren
- Abschlussmeldung aus dem realen Zustand des Child-Moduls ableiten
- Optionale und deaktivierte Stationen beim Warten berücksichtigen
- Sicherheitsfunktionen unabhängig behandeln und validieren
Beispiel: schrittweise Umstellung einer Maschine mit drei Stationen
Stellen Sie sich eine Maschine mit drei Stationen vor. Der Einlauf liefert Teile, die Prozessstation bearbeitet sie und der Auslauf übernimmt sie. Die Anlage funktioniert, aber jede Station verwendet andere Reset- und Fehlersignale. Main zeigt gelegentlich Ready, obwohl der Auslauf seine Wiederherstellung noch nicht abgeschlossen hat.
Im ersten Schritt bleibt die bewährte Prozess- und Motion-Logik unverändert. Ein Zustandsadapter am Auslauf unterscheidet Resetting, Idle und Execute und meldet das tatsächliche Ende von Reset. Die übergeordnete Steuerung wartet auf diese Rückmeldung statt auf ein unscharfes Sammelbit.
Im zweiten Schritt erhält der Einlauf denselben Vertrag. Anschließend werden blockierter Auslauf und fehlendes Teil getestet. Bestehende Prozess- und Bewegungsverriegelungen bleiben bindend, bis eine gesonderte Änderung überprüft wurde.
Erst danach werden doppelte Kommandopfade in Main entfernt. Das HMI zeigt nun beispielsweise Warten auf Auslauf und den lokalen Grund. Dies ist ein Architekturbeispiel, keine dokumentierte Kundencase und kein Nachweis einer Zeitersparnis.
- Vorher: MainReady trotz unfertigem Reset am Auslauf
- Vertrag: Auslauf bleibt in Resetting bis alle Bedingungen erfüllt sind
- Nachher: Main erreicht Idle erst nach Abschluss beteiligter Module
- Nachweis: Zustandswechsel, Freigaben und Alarme im Trace vergleichen
Soll Ihre bestehende Maschinensoftware modernisiert werden?
Wir helfen, stabile SPS- und Motion-Funktionen von schwierigen Schnittstellen zu trennen und einen ersten überprüfbaren Umsetzungsschritt abzugrenzen.
Engineering und Maschinensoftware ansehenWann ist eine Änderung bereit für die Freigabe?
Ein Code-Review und ein erfolgreicher SPS-Build sind notwendig, beweisen aber kein korrektes Maschinenverhalten. Legen Sie deshalb einen kleinen Regressionstest mit normalen Abläufen und gezielten Fehlerszenarien an.
Wo sinnvoll, läuft die echte Steuerungslogik gegen ein virtuelles Maschinenmodell, einen Testumgebung oder einen geeigneten Controller-Prüfstand. Dort lassen sich Handshakes, Zeiten und Recovery wiederholen. Grenzen der Simulation müssen explizit sein: Mechanik, Prozessphysik, Feldbuszeiten, reale Antriebe und Sicherheitsfunktionen können sich anders verhalten.
Geben Sie einen Abschnitt erst frei, wenn die vereinbarten Kriterien erfüllt, neue HMI-Meldungen verständlich und ein versionierter Rückweg vorhanden sind. Halten Sie Softwarestand, Szenario, Soll- und Ist-Verhalten und offene Punkte fest. Relevante Prüfungen werden später an der realen Maschine wiederholt.
- Standardablauf: Stop, Reset, Start, Produktion, Stop
- Interlocks: fehlendes Teil, Stau, blockierte Folgestation
- Recovery: Fehler während Stop oder Reset anderer Module
- Varianten: optionales Modul aktiv, inaktiv oder nicht verfügbar
- Abnahme: kritisches Verhalten erhalten, Sicherheitsfunktionen nicht umgangen
Ein Stufenplan mit überprüfbaren Ergebnissen
Beginnen Sie mit einer kurzen Bestands- und Risikoanalyse. Das Ergebnis ist kein pauschaler Komplettrewrite, sondern eine Liste der Schnittstellen, Risiken, möglichen Pilotmodule und nachvollziehbaren Erfolgsbedingungen. Definieren Sie ausdrücklich, was unverändert bleibt.
Im ersten Umsetzungsschritt führen Sie gemeinsame Diagnosen und einen Modulvertrag ein. Danach modernisieren Sie eine zweite Station einschließlich HMI-Diagnose. Erst wenn diese Bausteine nachweislich funktionieren, reduzieren Sie doppelte Logik im Supervisor und ergänzen automatisierte Regressionstests.
Schätzen Sie nach Modulgrenzen und Integrationsrisiken, nicht nach Anzahl der Codezeilen. Eine dokumentierte Maschine mit Testsystem unterscheidet sich grundlegend von einer nicht dokumentierten Anlage mit kritischen Abhängigkeiten. Solche Annahmen gehören in ein transparentes Angebot.
Ein guter Abschluss macht spätere Änderungen besser beschreibbar, testbar und rückrollbar. Er bedeutet nicht, dass die gesamte Bestandsmaschine über Nacht vollständig modular wird.
- Lieferobjekt 1: Architektur- und Risikokarte mit Pilotmodul
- Lieferobjekt 2: verbindlicher Zustands-, Befehls- und Fehlervertrag
- Lieferobjekt 3: Regressionsergebnisse, HMI-Diagnose und Rollback
- Lieferobjekt 4: priorisierter Plan für spätere Module
Schrittweise Modernisierung in drei Etappen
- 1AufnehmenSchnittstellen, Versionen, Varianten, Fehlerabläufe und vorhandene Testdaten erfassen.
- 2PilotierenEinen abgegrenzten Modulvertrag einführen; bewährte Prozesslogik erhalten.
- 3Prüfen und erweiternVerhalten vergleichen, Recovery und Rückkehr zur Vorversion testen, nächstes Modul wählen.
Fragen an Ihr Engineering-Team und externe Partner
Ein Engineering-Partner sollte die Grenzen klar benennen: Was bleibt? Was wird geändert? Wer besitzt Befehle und Verriegelungen? Wie verhalten sich Fehler und Varianten? Und wie wird eine misslungene Freigabe wieder zurückgenommen?
Ein belastbares Angebot nennt ein Pilotmodul, die betroffenen SPS- und Runtimeversionen, Akzeptanztests und Tätigkeiten, die eine Sicherheitsprüfung oder Maschinenstillstand erfordern. Trennen Sie einen bekannten Festpreisabschnitt von Risiken, die erst nach der Analyse geschätzt werden können.
Wenn die Abläufe funktionieren, aber die Module schwer miteinander kooperieren, kann eine schrittweise Migration sinnvoll sein. Ist kritische Hardware hingegen nicht mehr unterstützt oder sind Schnittstellen nicht mehr beherrschbar, kann die Bewertung zu einem umfassenderen Ersatz führen.
- Welches Modul verursacht ein wiederkehrendes, abgegrenztes Problem?
- Können Sie die bisherige Steuerungslogik bauen, versionieren und testen?
- Welche Messung belegt gleichwertiges Verhalten an der echten Maschine?
- Wer zeichnet Freigabe, Rollback und sicherheitsrelevante Änderungen ab?
Häufig gestellte Fragen
Müssen wir für PackML das gesamte SPS-Programm neu schreiben?
Nein. Oft können gemeinsame Zustands-Schnittstellen zuerst um bewährte Logik gelegt werden. Welche Bausteine intern angepasst werden müssen, entscheidet sich nach Vertrags- und Testdefinition.
Können wir die bestehende B&R-, Beckhoff- oder Siemens-SPS behalten?
Häufig ja, abhängig von Firmware, Bibliotheken, Hardwarelebenszyklus und Testbarkeit. Entscheidend ist die konkrete Maschinenarchitektur, nicht allein der Hersteller.
Ersetzt virtuelle Inbetriebnahme die physische FAT?
Nein. Sie ermöglicht wiederholbare Tests ausgewählten Verhaltens, ersetzt aber weder die physische Abnahme noch Risikobeurteilung und Validierung der Sicherheitsfunktionen.
Sollten alle Module auf einmal umgestellt werden?
Beginnen Sie möglichst mit einem abgrenzbaren Modul und messbaren Kriterien. Erst bei belegtem Erfolg sollten weitere Module folgen.
Als Nächstes
Bevor Sie eine komplette Neuentwicklung beauftragen, wählen Sie ein Modul mit wiederkehrenden Problemen. Dokumentieren Sie den aktuellen Fehler oder Zeitverlust, das Verhalten, das erhalten bleiben muss, und den Test, der die Verbesserung belegt. Daraus entsteht ein sinnvoller erster Projektumfang.
Mit neexo über Maschinensoftware sprechen