SPS-Programmierung in der Ausbildung – Ein SPS-Projekt versioniert übergeben
SPS-Programmierung in der Ausbildung – Ein SPS-Projekt versioniert übergeben
Einleitung
In diesem aiMOOC übergibst Du ein kleines SPS-Projekt so, dass eine andere Fachkraft den Entwicklungsstand eindeutig nachvollziehen, simulieren, testen und später weiterbearbeiten kann. Im Mittelpunkt stehen drei Übergabeobjekte: Quellcode, Variablenliste und Testnachweise.
Der Kurs richtet sich an Auszubildende in der Automatisierungstechnik, Elektrotechnik, Mechatronik und verwandten Ausbildungsberufen. Die Lerneinheiten sind kurz, praxisnah und herstellerübergreifend angelegt.
Sicherheitsrahmen: Alle Maschinenabläufe werden zuerst in einer virtuellen Anlage oder SPS-Simulation geprüft. Dieser Kurs beschreibt keine automatische Live-Ansteuerung realer Maschinen und keine Umgehung von Schutzeinrichtungen. Reale Arbeiten erfolgen nur unter geeigneter Fachaufsicht, nach betrieblicher Freigabe und gemäß den vor Ort geltenden Arbeits- und Sicherheitsregeln.
Lernziele
Nach dem Kurs kannst Du ein kleines SPS-Projekt so vorbereiten, dass Quellstand, Variablen und Testergebnisse zusammenpassen. Du kannst einen reproduzierbaren Versionsstand kennzeichnen, Signalverläufe aus einer Simulation auswerten, einfache Diagnosefälle bearbeiten und eine Übergabe mit nachvollziehbaren Nachweisen erstellen.
Ausbildungsfall: Virtuelle Förderstation
Du arbeitest an einer virtuellen Förderstation. Ein Werkstück fährt auf einem Band zu einer Prüfposition. Ein Sensor meldet die Ankunft. Das Band hält kurz, danach wird das Werkstück weitertransportiert. Bleibt ein Werkstück zu lange im Sensorbereich, wird eine Störung gesetzt.

Vereinfachter Ablauf:
- Startsignal: Die virtuelle Anlage erhält eine Startfreigabe.
- Förderband: Der virtuelle Motor läuft.
- Sensor: Das Werkstück erreicht die Prüfposition.
- Wartezeit: Das Band stoppt für eine definierte Prüfzeit.
- Weitertransport: Das Band läuft wieder an.
- Diagnose: Ein ungewöhnlich lang belegter Sensor erzeugt eine Störmeldung.
Der Ablauf wird zunächst ausschließlich simuliert. Eine reale Maschine ist für die Bearbeitung des Kurses nicht erforderlich.
Lerneinheit 1: Projektstand verstehen
Eine SPS steuert oder regelt Maschinen und Anlagen auf Basis eines Anwenderprogramms. Für die Ausbildung ist nicht nur entscheidend, dass ein Programm funktioniert. Wichtig ist auch, welcher Stand geprüft wurde und welche Dateien zu diesem Stand gehören.
Ein guter Übergabestand beantwortet kurz drei Fragen:
- Quellcode: Welcher Programmstand wurde freigegeben?
- Variablenliste: Welche Signale und internen Variablen verwendet dieser Stand?
- Testnachweis: Welche Anforderungen wurden mit welchem Ergebnis geprüft?
Lerneinheit 2: Quellcode strukturiert ablegen
Die aktuelle IEC 61131-3 beschreibt unter anderem ST, LD und FBD als Programmiersprachen für programmierbare Steuerungen. SFC dient zur Strukturierung von Abläufen.

Für die Übergabe genügt eine einfache, klare Projektstruktur:
SPS_Foerderstation/ ├── src/ │ ├── PLC_Project/ │ └── export/ ├── docs/ │ ├── variablenliste.csv │ └── README.txt ├── tests/ │ ├── testfaelle.csv │ └── testnachweis.pdf └── CHANGELOG.txt
Merke: Nicht jedes Engineering-System speichert SPS-Projekte vollständig als gut vergleichbare Textdateien. Deshalb werden ein herstellerspezifischer Projektstand und – soweit sinnvoll und unterstützt – textbasierte Exporte gemeinsam abgelegt.
Lerneinheit 3: Variablenliste eindeutig machen
Eine Variablenliste verbindet Programm und Anlage. Gute Namen beschreiben die Funktion und nicht nur eine Adresse.
| Variable | Typ | Bedeutung | Richtung |
|---|---|---|---|
| i_Start | BOOL | Startanforderung | Eingang |
| i_Stop | BOOL | Stoppanforderung | Eingang |
| i_Pruefpos | BOOL | Werkstück an Prüfposition | Eingang |
| q_Band | BOOL | Förderband freigegeben | Ausgang |
| x_Stoerung | BOOL | Diagnosemeldung aktiv | intern |
| t_Pruefzeit | TIME | Dauer der virtuellen Prüfphase | intern |
Die Liste gehört zum gleichen Versionsstand wie der Quellcode. Änderungen an Namen, Datentypen oder Bedeutung werden mitversioniert.
Lerneinheit 4: Signalverläufe prüfen
Signalverläufe helfen Dir zu erkennen, ob ein Ablauf zeitlich plausibel ist.

Beispiel einer virtuellen Prüfung:
| Phase | i_Start | i_Pruefpos | q_Band | x_Stoerung | Erwartung |
|---|---|---|---|---|---|
| Bereit | 0 | 0 | 0 | 0 | Anlage wartet |
| Start | 1 | 0 | 1 | 0 | Band läuft |
| Prüfposition | 1 | 1 | 0 | 0 | Band hält |
| Weiterfahrt | 1 | 0 | 1 | 0 | Band läuft wieder |
| Blockadefall | 1 | 1 | 0 | 1 | Störung nach Zeitüberschreitung |
Diagnosefrage: Wenn im simulierten Blockadefall die Variable i_Pruefpos dauerhaft 1 bleibt, aber x_Stoerung nie 1 wird, liegt der erste Prüfpunkt bei der Zeitüberwachung und deren Aktivierungsbedingung.
Lerneinheit 5: Virtuell steuern und diagnostizieren
In einer Simulation kannst Du Eingänge setzen, Abläufe beobachten und Fehlerfälle reproduzieren, ohne eine reale Maschine automatisch anzusteuern.
Eine zweite Form der virtuellen Inbetriebnahme koppelt eine SPS-Software mit einem 3D-Anlagenmodell. Das folgende Beispiel zeigt eine Produktsortierung mit CODESYS und Factory I/O.
Sicher arbeiten: Schutzeinrichtungen werden nicht überbrückt, deaktiviert oder durch erzwungene Signale umgangen. Eine Simulation ist Lern- und Prüfmittel, kein Ersatz für die vorgeschriebenen Sicherheitsmaßnahmen an realen Maschinen.
Lerneinheit 6: Versionieren
Versionierung soll sichtbar machen, was geändert wurde, warum es geändert wurde und welcher Stand getestet wurde.

Für den Ausbildungsfall reicht ein einfacher Ablauf:
- Änderung: Eine fachlich zusammengehörige Änderung durchführen.
- Prüfung: Projekt kompilieren beziehungsweise prüfen und in der Simulation testen.
- Commit: Änderung mit kurzer, verständlicher Nachricht sichern.
- Testnachweis: Getestete Version oder Commit-ID im Testprotokoll eintragen.
- Release: Übergabestand eindeutig kennzeichnen, zum Beispiel mit einem Versions-Tag.
Beispiel für gute Änderungsnachrichten:
Sensor Prüfposition eindeutig benannt Blockadezeit überwacht Testfall T04 ergänzt Übergabestand v1.0 vorbereitet

Wichtig: Git ist nur ein mögliches Werkzeug. Je nach Engineering-System können herstellerspezifische Versions- oder Vergleichsfunktionen erforderlich sein. Entscheidend ist die nachvollziehbare Zuordnung von Projektstand und Nachweisen.
Lerneinheit 7: Testnachweise erstellen
Ein Testfall enthält mindestens Ausgangslage', Aktion, erwartetes Ergebnis und tatsächliches Ergebnis.
| ID | Prüfung | Erwartung | Ergebnis | Status |
|---|---|---|---|---|
| T01 | Start in Grundstellung | Band läuft | Band läuft | bestanden |
| T02 | Werkstück erreicht Prüfposition | Band stoppt | Band stoppt | bestanden |
| T03 | Prüfzeit endet | Band läuft weiter | Band läuft weiter | bestanden |
| T04 | Sensor bleibt ungewöhnlich lange belegt | Störung wird gesetzt | Störung wird gesetzt | bestanden |
| T05 | Stoppsignal in Bewegung | Band stoppt | Band stoppt | bestanden |
Zu einem sauberen Testnachweis gehört außerdem der getestete Versionsstand. So ist später klar, auf welchen Quellcode sich das Ergebnis bezieht.
Lerneinheit 8: Übergabepaket freigeben
Vor der Übergabe vergleichst Du die drei Kernnachweise:
| Übergabeobjekt | Prüffrage | Beispiel |
|---|---|---|
| Quellcode | Ist der freigegebene Stand eindeutig? | Tag v1.0 |
| Variablenliste | Passt sie zum freigegebenen Stand? | variablenliste.csv |
| Testnachweise | Ist der getestete Stand eingetragen? | v1.0 / Commit-ID |
| Änderungsverlauf | Sind wesentliche Änderungen verständlich? | CHANGELOG.txt |
| Startinformation | Weiß die übernehmende Person, wie simuliert wird? | README.txt |
Übergabekriterium: Ein anderer Auszubildender soll den Stand öffnen, die Variablen verstehen, die Simulation starten und die dokumentierten Tests nachvollziehen können, ohne mündliche Zusatzinformationen zu benötigen.
Gestufte Hilfen und begründetes Feedback
Basisaufgabe: Passenden Versionsstand finden
Auftrag: In einem Testnachweis steht „T04 bestanden“. Im Dokument fehlt aber die Versionsangabe. Bewerte die Übergabe.
Hilfe 1: Frage Dich, ob ein Testergebnis ohne Quellstand reproduzierbar ist.
Hilfe 2: Suche nach einer eindeutigen Verbindung zwischen Test und Programmversion.
Hilfe 3: Ergänze Tag, Versionsnummer oder Commit-ID.
Begründetes Feedback: Die Übergabe ist unvollständig, weil nicht sicher festgestellt werden kann, welcher Quellcode tatsächlich geprüft wurde. Ein Testnachweis wird erst belastbar, wenn er einem eindeutigen Versionsstand zugeordnet ist.
Anwendungsaufgabe: Diagnose mit Signalverlauf
Auftrag: In der Simulation bleibt i_Pruefpos dauerhaft 1. q_Band bleibt 0, x_Stoerung aber ebenfalls 0. Nenne zwei sinnvolle Prüfschritte.
Hilfe 1: Prüfe zuerst die Bedingung, die den Störungstimer startet.
Hilfe 2: Prüfe danach, ob der Timer abläuft und sein Ergebnis ausgewertet wird.
Hilfe 3: Vergleiche Soll-Signalverlauf, Programmlogik und beobachtete Variablen.
Begründetes Feedback: Eine gute Diagnose trennt Ursache, Zeitverhalten und Reaktion. Nur auf den Ausgang q_Band zu schauen, reicht nicht, weil die fehlende Störung auch aus einer nicht gestarteten oder nicht ausgewerteten Zeitüberwachung entstehen kann.
Transferaufgabe: Änderung sicher übergeben
Auftrag: Die virtuelle Prüfzeit soll geändert werden. Plane die kleinste sinnvolle Übergabeänderung.
Hilfe 1: Welche Datei enthält den Wert oder die Logik?
Hilfe 2: Welche Testfälle hängen zeitlich davon ab?
Hilfe 3: Welche Versionsinformation muss aktualisiert werden?
Begründetes Feedback: Eine fachlich saubere Änderung umfasst nicht nur Quellcode. Variablen- oder Parameterdokumentation, betroffene Tests, Änderungsbeschreibung und freigegebener Versionsstand müssen zusammenpassen.
Interaktive Aufgaben
Quiz: Teste Dein Wissen
Welche drei Bestandteile stehen im Zentrum einer nachvollziehbaren SPS-Projektübergabe? (Quellcode Variablenliste und Testnachweise) (!Nur Quellcode und Passwort) (!Nur Schaltplan und Bedienungsanleitung) (!Nur Simulation und Screenshot)
Warum wird im Testnachweis ein eindeutiger Versionsstand eingetragen? (Damit das Testergebnis einem konkreten Quellstand zugeordnet werden kann) (!Damit die SPS schneller läuft) (!Damit Variablennamen automatisch erzeugt werden) (!Damit keine Simulation mehr nötig ist)
Welche Variable beschreibt im Ausbildungsfall den Motorfreigabe-Ausgang? (q_Band) (!i_Start) (!i_Pruefpos) (!x_Stoerung)
Was ist bei Maschinenabläufen im Kurs zuerst vorgesehen? (Simulation des Ablaufs) (!Direkte Live-Ansteuerung) (!Überbrückung der Schutztür) (!Deaktivierung der Sicherheitslogik)
Was sollte eine gute Variablenliste zusätzlich zum Variablennamen enthalten? (Datentyp und Bedeutung) (!Nur die Farbe des Kabels) (!Nur die Dateigröße) (!Nur das Erstellungsdatum)
Was zeigt ein Signalverlauf besonders gut? (Zeitliche Zustandsänderungen) (!Den Kaufpreis der SPS) (!Die Gehäuseabmessungen) (!Die Lizenzkosten des Engineering-Systems)
Welche Aussage zur Versionierung ist richtig? (Änderungen und getestete Stände sollen nachvollziehbar sein) (!Jede Änderung muss denselben Dateinamen behalten) (!Versionsstände ersetzen Testfälle) (!Nur fertige Großprojekte brauchen Versionen)
Was gehört in einen Testfall? (Erwartetes und tatsächliches Ergebnis) (!Nur der Name des Programmierers) (!Nur die Hardwarebestellnummer) (!Nur ein Screenshot ohne Beschreibung)
Wie ist mit Schutzeinrichtungen umzugehen? (Sie bleiben wirksam und werden nicht umgangen) (!Sie werden für Diagnosezwecke grundsätzlich deaktiviert) (!Sie werden durch erzwungene Signale ersetzt) (!Sie sind bei einer Simulation immer bedeutungslos)
Wann ist ein SPS-Projekt gut übergabefähig? (Wenn eine andere Fachkraft Stand Variablen und Tests nachvollziehen kann) (!Wenn nur der Ersteller das Projekt öffnen kann) (!Wenn alle Dateien denselben Zeitstempel haben) (!Wenn keine Testdokumentation vorhanden ist)
Memory
| Quellcode | Programmstand |
| Variablenliste | Signalbeschreibung |
| Testnachweis | Prüfergebnis |
| Commit | gespeicherte Änderung |
| Release | freigegebener Stand |
| Simulation | virtuelle Prüfung |
| Signalverlauf | zeitliche Zustände |
| Diagnose | Fehlersuche |
Drag and Drop
| Ordne die richtigen Begriffe zu. | Thema |
|---|---|
| Quellcode | Programmlogik |
| Variablenliste | Signale und Datentypen |
| Testfall | Soll Ist Vergleich |
| Version | eindeutiger Entwicklungsstand |
| Simulation | gefahrloser virtueller Probelauf |
Kreuzworträtsel
| Version | Wie heißt ein eindeutig gekennzeichneter Entwicklungsstand? |
| Variable | Wie heißt ein benannter Speicherwert im SPS-Programm? |
| Simulation | Wie heißt der virtuelle Probelauf einer Anlage? |
| Diagnose | Wie heißt die systematische Fehlersuche? |
| Quellcode | Wie heißt der programmierte Ursprung eines Softwarestands? |
| Freigabe | Wie heißt die bewusste Bestätigung eines Übergabestands? |
LearningApps
Lückentext
Offene Aufgaben
Leicht
- Variablenliste: Erstelle für die virtuelle Förderstation eine Tabelle mit mindestens acht sinnvollen Variablen und begründe zwei Namensentscheidungen.
- Signalverlauf: Zeichne für Start, Prüfposition und Weiterfahrt einen einfachen Soll-Signalverlauf mit drei digitalen Signalen.
- Testfall: Formuliere zwei Testfälle mit Ausgangslage, Aktion, erwarteten Ergebnis und Prüfkriterium.
- Versionsnummer: Vergleiche zwei mögliche Bezeichnungen für einen freigegebenen Stand und entscheide, welche eindeutiger ist.
Standard
- Diagnose: Analysiere einen simulierten Fehler, bei dem der Sensor belegt bleibt und die Störmeldung nicht erscheint. Dokumentiere Deine Prüfreihenfolge.
- Änderungsprotokoll: Schreibe ein kurzes CHANGELOG für drei aufeinanderfolgende Änderungen am Ausbildungsprojekt.
- Projektstruktur: Entwickle eine übersichtliche Ordnerstruktur für Quellcode, Exporte, Variablenlisten und Testnachweise.
- Simulation: Führe fünf virtuelle Testfälle durch und ergänze zu jedem Fall Sollwert, beobachtetes Ergebnis und Bewertung.
Schwer
- Review: Prüfe ein fremdes SPS-Übergabepaket auf Widersprüche zwischen Quellstand, Variablenliste und Testnachweisen und erstelle eine Mängelliste.
- Regressionstest: Plane nach einer Änderung der Prüfzeit, welche bestehenden Tests erneut ausgeführt werden müssen und begründe Deine Auswahl.
- Traceability: Entwirf ein Schema, das Anforderungen, Variablen, Programmänderungen und Testfälle nachvollziehbar miteinander verknüpft.
- Projektübergabe: Erstelle ein vollständiges Release-Paket für die virtuelle Förderstation und lasse einen Mitschüler den Stand ausschließlich anhand Deiner Dokumentation reproduzieren.


Lernkontrolle
- Fehleranalyse: Ein Test T04 wurde als bestanden dokumentiert, später wird aber ein anderer Programmstand geöffnet. Erkläre, warum dadurch die Aussagekraft des Tests sinkt und wie Du das Problem verhinderst.
- Versionsstrategie: Vergleiche eine Übergabe mit nur einer ZIP-Datei und eine Übergabe mit eindeutigem Release-Stand, Änderungsverlauf und Testreferenz. Beurteile die Wartbarkeit.
- Diagnosestrategie: Leite aus einem widersprüchlichen Signalverlauf eine sinnvolle Prüfreihenfolge ab und begründe, warum Du nicht direkt den Ausgang änderst.
- Änderungsfolgen: Eine Variable wird umbenannt. Zeige, welche Dokumente und Tests dadurch betroffen sein können und warum.
- Sicherheitsbewertung: Ein Team schlägt vor, für einen schnelleren Test eine Schutzeinrichtung softwareseitig zu deaktivieren. Beurteile diesen Vorschlag und nenne eine sichere Alternative für die Ausbildung.
- Transfer: Übertrage das Übergabekonzept auf eine virtuelle Pumpensteuerung oder Ampelsteuerung und nenne die drei wichtigsten Nachweise.
Lernnachweis
Für einen Lernnachweis zu diesem Thema ist wichtig, dass Du:
- einen SPS-Projektstand eindeutig kennzeichnen kannst,
- eine verständliche Variablenliste erstellst,
- Testfälle mit Soll- und Ist-Ergebnis dokumentierst,
- den getesteten Versionsstand im Nachweis referenzierst,
- einen Signalverlauf aus einer Simulation interpretierst,
- einen einfachen Diagnosefall systematisch bearbeitest,
- eine Änderung nachvollziehbar versionierst,
- ein Übergabepaket auf Vollständigkeit prüfst,
- Simulation und reale Inbetriebnahme sicher voneinander abgrenzt,
- begründen kannst, warum Schutzeinrichtungen nicht umgangen werden dürfen.
Fachliche Quellen und Medienrechte
Die fachlichen Kernaussagen wurden mit öffentlich zugänglichen Quellen abgeglichen.
- IEC 61131-3:2025: Programmiersprachen für programmierbare Steuerungen, darunter ST, LD und FBD sowie SFC-Strukturelemente.
- IEC 61131-10:2019: XML-basiertes Austauschformat für IEC-61131-3-Projekte.
- PLCopen Software Construction Guidelines: Regeln, Coding Patterns, Strukturierung und Softwarequalität.
- PLCopen Training Guidelines: Orientierung für qualitätsgesicherte SPS-Ausbildung.
- BGHM – Manipulation von Schutzeinrichtungen verhindern: Schutzeinrichtungen dürfen nicht unwirksam gemacht werden.
- DGUV Information 209-092: Maßnahmen gegen Manipulation von Schutzeinrichtungen.
- Wikipedia – Speicherprogrammierbare Steuerung: Überblick zu Aufbau, Funktion und Programmierung von SPS.
Verwendete Wikimedia-Commons-Medien wurden vor Einbindung auf Dateiname und Lizenz geprüft:
| Medium | Lizenz laut Commons-Dateiseite | Lernfunktion |
|---|---|---|
| Simatic S7-1200.JPG | CC BY-SA 3.0 | SPS-Hardware einordnen |
| S71500.JPG | CC BY 3.0 | modularen Controller erkennen |
| Ladder diagram.png | CC BY-SA 2.5 | Programmlogik visualisieren |
| Digital Signal Square Wave.svg | CC BY-SA 4.0 | Signalflanken und Zeitverlauf |
| Git operations.svg | CC BY 3.0 und GFDL | Versionsoperationen visualisieren |
| Git data flow.png | CC BY-SA 3.0 | Datenfluss bei Versionierung |
| Conveyor belt moves material in a factory.jpg | CC BY 2.0 | Ausbildungsfall Fördertechnik |
Die eingebetteten YouTube-Videos wurden über vorhandene YouTube-Seiten geprüft. Die Rechte verbleiben bei den jeweiligen Rechteinhabern; die Einbindung erfolgt über den YouTube-Player.
OERs zum Thema
Verknüpfte Lernbereiche
aiMOOC-Projekte
MOOCwiki · Deutsch
Nach dem Lernen ist vor dem Lernen
Entdecke direkt den nächsten Lernkurs. Weitere Inhalte erscheinen, wenn Du weiter nach unten scrollst.
Zur MOOCwiki-HauptseiteMediathek
Mediathek wird aus dem Wiki geladen ...
Keine passenden Inhalte gefunden. Bitte ändere Suche oder Filter.
NEWSLernweltNOAH fragen