SPS-Programmierung in der Ausbildung – Datentypen und Wertebereiche beachten
SPS-Programmierung in der Ausbildung – Datentypen und Wertebereiche beachten
Einleitung
Eine SPS verarbeitet Signale, speichert Werte und steuert Abläufe. Schon die Wahl eines falschen Datentyps kann dazu führen, dass Zählerstände nicht mehr darstellbar sind oder Berechnungen unerwartete Ergebnisse liefern.
Kurzbeschreibung: Boolesche Werte, Zahlen und Überlauf. Du arbeitest mit kurzen Lerneinheiten, einer virtuellen Förderanlage, Signalverläufen sowie Steuerungs- und Diagnoseaufgaben.
Ausbildungsziel: Du kannst passende Datentypen auswählen, Wertebereiche prüfen, einen möglichen Überlauf erkennen und Schutzmaßnahmen im Programm begründen.
Sicherheitsrahmen: Alle Maschinenabläufe werden zunächst simuliert. Dieser Kurs veranlasst keine automatische Live-Ansteuerung realer Anlagen. Schutzeinrichtungen dürfen niemals umgangen oder softwareseitig unwirksam gemacht werden. Arbeiten an realen Maschinen erfolgen nur unter geeigneter Fachaufsicht und nach betrieblicher Freigabe.
Lernpfad in kurzen Einheiten
| Einheit | Schwerpunkt | Richtzeit |
|---|---|---|
| 1 | BOOL und binäre Signale | 8 Minuten |
| 2 | Ganzzahlen und Wertebereiche | 10 Minuten |
| 3 | Überlauf und Typumwandlung | 10 Minuten |
| 4 | Signalverläufe und Flanken | 8 Minuten |
| 5 | Virtuelle Förderanlage | 12 Minuten |
| 6 | Diagnose und Transfer | 12 Minuten |
Ausbildungsfall: Virtuelle Verpackungsstation
Du programmierst eine simulierte Verpackungsstation. Ein Förderband transportiert Kartons an einem Sensor vorbei. Pro Schicht sollen bis zu 300 Kartons gezählt werden.

| Signal | Bedeutung | Geeigneter Grundtyp |
|---|---|---|
| Start | Anlage im Simulationsmodell starten | BOOL |
| Sensor_Karton | Karton erkannt | BOOL |
| Reset | Zähler zurücksetzen | BOOL |
| Motor | virtueller Fördermotor EIN oder AUS | BOOL |
| Stueckzahl | gezählte Kartons | UINT |
| Overflow_Warnung | Grenzwertverletzung erkannt | BOOL |
Kernproblem: Würdest Du für Stueckzahl einen USINT verwenden, wäre bei 255 Schluss. Der Sollwert 300 passt nicht in diesen Wertebereich. Für den Ausbildungsfall ist UINT mit 0 bis 65.535 deutlich geeigneter.
Lerneinheit 1: BOOL – zwei logische Zustände

Ein BOOL beschreibt einen binären Zustand: FALSE oder TRUE. In einer SPS kann ein BOOL beispielsweise Sensor aktiv, Taster gedrückt oder Motorfreigabe gesetzt bedeuten.
Merke: Ein physikalisches Eingangssignal und der gespeicherte BOOL-Wert sind nicht dasselbe. Die SPS interpretiert den Eingang entsprechend Hardware, Verdrahtung und Konfiguration.
Lerneinheit 2: Ganzzahlen und Wertebereiche
Für Ganzzahlen sind Vorzeichen und Bitbreite entscheidend.
| Datentyp | Breite | Wertebereich | Typische Verwendung |
|---|---|---|---|
| SINT | 8 Bit | -128 bis 127 | kleine Werte mit Vorzeichen |
| USINT | 8 Bit | 0 bis 255 | kleine nichtnegative Zähler |
| INT | 16 Bit | -32.768 bis 32.767 | Standard-Ganzzahlen mit Vorzeichen |
| UINT | 16 Bit | 0 bis 65.535 | nichtnegative Zähler |
| DINT | 32 Bit | -2.147.483.648 bis 2.147.483.647 | große vorzeichenbehaftete Werte |
| UDINT | 32 Bit | 0 bis 4.294.967.295 | große nichtnegative Werte |
Für einen n-Bit-Wert gilt bei unsigned: 0 bis 2^n − 1. Bei Zweierkomplement mit Vorzeichen gilt: −2^(n−1) bis 2^(n−1) − 1.
Wichtig: Welche Typen tatsächlich verfügbar sind und wie Konvertierungen behandelt werden, hängt auch von Steuerung und Programmiersystem ab. Prüfe deshalb die Dokumentation der verwendeten Zielplattform.

Lerneinheit 3: Überlauf verstehen
Ein arithmetischer Überlauf entsteht, wenn ein Ergebnis außerhalb des darstellbaren Wertebereichs liegt.
Beispiel: Ein USINT kann maximal 255 darstellen. Das mathematische Ergebnis 255 + 1 ist 256 und damit außerhalb des USINT-Bereichs.
Nicht verallgemeinern: Das konkrete Laufzeitverhalten bei einem Überlauf kann von Zielsystem, Operation und Sprache abhängen. Verlasse Dich nicht auf ein angenommenes Zurückspringen, Begrenzen oder Stoppen.
Robuste Strategie: Wertebereich vor der Operation prüfen, ausreichend großen Datentyp wählen, Konvertierungen bewusst durchführen und Grenzfälle in der Simulation testen.
IF RisingEdge THEN
IF Zaehler_8bit < USINT#255 THEN
Zaehler_8bit := Zaehler_8bit + USINT#1;
ELSE
Overflow_Warnung := TRUE;
END_IF;
END_IF;
Der Code ist als IEC-61131-3-nahe Lernskizze gedacht. Syntax und verfügbare Typen sind am verwendeten System zu prüfen.
Lerneinheit 4: Signalverläufe und Flanken
Bei Stückzählungen sollte ein Karton nicht in jedem SPS-Zyklus erneut gezählt werden. Häufig wird deshalb die positive Flanke des Sensors ausgewertet.

| Zeitpunkt | Sensor_Karton | Positive Flanke | Stueckzahl |
|---|---|---|---|
| t0 | FALSE | nein | 0 |
| t1 | TRUE | ja | 1 |
| t2 | TRUE | nein | 1 |
| t3 | FALSE | nein | 1 |
| t4 | TRUE | ja | 2 |
| t5 | FALSE | nein | 2 |
Diagnosefrage: Wenn ein Sensor drei SPS-Zyklen lang TRUE bleibt, darf ein flankengesteuerter Stückzähler deshalb nicht dreimal erhöhen.
Lerneinheit 5: Virtuelle Anlage sicher simulieren
Die virtuelle Anlage besitzt Förderband, Kartonsensor, Start, Reset und Zähler. Sie bleibt von realen Feldgeräten getrennt.

Simulationsfolge:
| Schritt | Aktion | Erwartung |
|---|---|---|
| A | Start auf TRUE | virtueller Motor läuft |
| B | Sensor von FALSE auf TRUE | Zähler steigt genau einmal |
| C | Sensor bleibt TRUE | Zähler bleibt unverändert |
| D | Sensor FALSE und erneut TRUE | nächster Zählimpuls |
| E | Zählergrenze gezielt anfahren | Grenzfall wird erkannt |
| F | Reset auslösen | Zähler geht kontrolliert auf Startwert |
Für die Übung wird ein Grenzwächter verwendet: Die Simulation blockiert eine unzulässige Erhöhung und setzt Overflow_Warnung. Damit wird kein herstellerspezifisches reales Überlaufverhalten vorausgesetzt.
Das deutschsprachige Video zeigt eine SPS-Simulation mit PLCSIM. Nutze solche Umgebungen für Lernversuche, bevor überhaupt ein realer Anlagenbezug hergestellt wird.
Lerneinheit 6: Datentypen bewusst auswählen
Stelle vor jeder Deklaration drei Fragen:
| Prüffrage | Beispiel |
|---|---|
| Welche Werte sind fachlich möglich? | 0 bis 300 Kartons |
| Können negative Werte auftreten? | bei reiner Stückzählung nein |
| Welche Zwischenwerte können Berechnungen erzeugen? | Summe, Differenz oder Skalierung kann größer sein als der Endwert |
Faustregel: Wähle den Datentyp nicht nur für den aktuellen Wert, sondern für den gesamten vorgesehenen Betriebs- und Rechenbereich.
Das Video behandelt elementare SPS-Datentypen wie BOOL, INT, REAL und TIME im Kontext von IEC 61131-3.
Diagnosefall: 255 ist nicht 300
Ein Auszubildender deklariert Stueckzahl als USINT. In der Simulation werden Kartons fehlerfrei erkannt. Ab dem Bereich um 255 treten jedoch auffällige Zählergebnisse auf.
Auftrag: Finde zuerst die Ursache, ohne den Datentyp sofort zu ändern.
| Prüfschritt | Beobachtung | Schlussfolgerung |
|---|---|---|
| Sensor beobachten | jede positive Flanke ist vorhanden | Sensorik im Modell plausibel |
| Zählerwert beobachten | Problem tritt an der Typgrenze auf | Wertebereich untersuchen |
| Deklaration prüfen | USINT | maximal 255 |
| Sollanforderung prüfen | bis 300 Kartons | Datentyp ungeeignet |
Gestufte Hilfen
| Stufe | Hilfe |
|---|---|
| Hilfe 1 | Vergleiche Sollwert und maximalen Wert des verwendeten Datentyps. |
| Hilfe 2 | Prüfe, ob ein vorzeichenloser 8-Bit-Typ 300 darstellen kann. |
| Hilfe 3 | Wähle einen Typ, der 0 bis 300 sicher umfasst, und ergänze eine Grenzprüfung. |
Basis-, Anwendungs- und Transferaufgaben mit Feedback
Basisaufgabe: Wähle für einen Zähler von 0 bis 300 zwischen USINT, UINT und SINT.
Begründetes Feedback: UINT ist passend, weil USINT nur bis 255 reicht und SINT bereits bei 127 endet. UINT bietet ausreichend Reserve und bildet die nichtnegative Größe sinnvoll ab.
Anwendungsaufgabe: Entwirf eine Prüfung, die eine Zählererhöhung nur dann zulässt, wenn der nächste Wert gültig bleibt.
Begründetes Feedback: Eine Prüfung vor der Addition verhindert, dass erst nach einer fehlerhaften Operation reagiert wird. Zusätzlich sollte eine Diagnosevariable gesetzt werden.
Transferaufgabe: Eine Korrekturfunktion darf die Stückzahl temporär verringern. Entscheide, ob UINT weiterhin genügt.
Begründetes Feedback: Wenn negative Zwischenwerte fachlich ausgeschlossen werden, kann UINT bleiben und die Subtraktion muss gegen Unterlauf abgesichert sein. Sind negative Korrekturwerte ausdrücklich Teil des Modells, ist ein vorzeichenbehafteter Typ sinnvoller. Entscheidend ist der spezifizierte Wertebereich, nicht Gewohnheit.
Typumwandlungen
Eine Umwandlung von einem größeren in einen kleineren Wertebereich kann Informationen verlieren. Deshalb muss vor einer sogenannten verengenden Konvertierung geprüft werden, ob der Quellwert in den Zielbereich passt.
Beispiel: DINT 300 lässt sich mathematisch nicht als USINT abbilden, weil USINT nur bis 255 reicht.
Praxisregel: Explizite Typumwandlungen sind leichter zu prüfen und zu dokumentieren als unbeabsichtigte implizite Konvertierungen.
Sicherheit bei realen Anlagen
Die Lernaufgaben bleiben zunächst in der Simulation.
- Simulation: Programme und Grenzfälle zuerst ohne reale Aktorik testen.
- Fachaufsicht: Reale Arbeiten nur unter geeigneter fachlicher Aufsicht durchführen.
- Betriebliche Freigabe: Erst nach Freigabe mit realer Anlage arbeiten.
- Schutzeinrichtung: Schutzfunktionen weder elektrisch noch mechanisch noch softwareseitig umgehen.
- Diagnose: Fehlerursachen systematisch prüfen statt Sicherheitsfunktionen zu deaktivieren.
Die BGHM weist darauf hin, dass das Umgehen oder Unwirksammachen von Schutzeinrichtungen ein erhebliches Unfallrisiko darstellt.
Quellen und Medienrechte
Fachquellen:
- Siemens – Reference Manual / Vergleichstabelle: Bitbreiten und Wertebereiche elementarer Ganzzahltypen.
- Siemens – Programming Guideline S7-1200/1500: elementare Datentypen und Typunterstützung.
- Beckhoff – Data types: Bedeutung und Speicherbedarf von Datentypen.
- Beckhoff – Type conversion operators: implizite und explizite Typkonvertierung.
- Wikipedia – Integer Datentyp: Wertebereiche vorzeichenbehafteter und vorzeichenloser Ganzzahlen.
- Wikipedia – Arithmetischer Überlauf: Begriff und Beispiele.
- BGHM – Manipulation von Schutzeinrichtungen verhindern: sicherer Umgang mit Maschinenschutz.
Medienrechte geprüft, Stand 07.10.2026:
| Medium | Quelle | Lizenz beziehungsweise Einbettung |
|---|---|---|
| Simatic S7-1200.JPG | Wikimedia Commons | CC BY-SA 3.0 oder GFDL |
| Conveyor belt moves material in a factory.jpg | Wikimedia Commons | CC BY 2.0 |
| Digital Signal Square Wave.svg | Wikimedia Commons | CC BY-SA 4.0 |
| Binary counter.gif | Wikimedia Commons | CC BY-SA 4.0 |
| Binary ripple counter timing diagram.jpg | Wikimedia Commons | CC BY-SA |
| Ladder logic diagram.jpg | Wikimedia Commons | CC BY-SA 4.0 |
Die YouTube-Videos werden nur über den offiziellen Player eingebettet. Urheberrechte verbleiben bei den jeweiligen Rechteinhabern. YouTube unterstützt das Einbetten von Videos, sofern der jeweilige Uploader die Einbettung nicht deaktiviert hat: YouTube-Hilfe – Videos und Playlists einbetten.
Interaktive Aufgaben
Quiz: Teste Dein Wissen
Welche beiden logischen Werte kann ein BOOL annehmen? (TRUE und FALSE) (!Null bis 255) (!Minus 128 bis 127) (!Beliebige Dezimalwerte)
Welcher Maximalwert gehört zu USINT? (255) (!127) (!32767) (!65535)
Welcher Maximalwert gehört zu INT? (32767) (!255) (!65535) (!2147483647)
Welcher Datentyp ist für einen nichtnegativen Zähler bis 300 aus der Auswahl am passendsten? (UINT) (!USINT) (!SINT) (!BOOL)
Wann liegt ein arithmetischer Überlauf vor? (Wenn ein Rechenergebnis außerhalb des Wertebereichs liegt) (!Wenn ein Sensor TRUE meldet) (!Wenn ein Programm kompiliert) (!Wenn eine Variable umbenannt wird)
Warum sollte eine verengende Typumwandlung vorab geprüft werden? (Weil der Quellwert außerhalb des Zielbereichs liegen kann) (!Weil BOOL immer 16 Bit benötigt) (!Weil jede Umwandlung einen Motor startet) (!Weil UINT negative Werte erzwingt)
Was wird bei einer positiven Flankenauswertung erkannt? (Der Wechsel von FALSE nach TRUE) (!Jeder Zyklus mit TRUE) (!Der Wechsel von TRUE nach FALSE) (!Ein analoger Spitzenwert)
Welche Reaktion ist bei einer drohenden Wertebereichsüberschreitung sinnvoll? (Grenze vor der Operation prüfen und Diagnose setzen) (!Schutzeinrichtung deaktivieren) (!Datentyp ignorieren) (!Zählerstand zufällig zurücksetzen)
Wie sollen neue Maschinenabläufe in diesem Kurs zuerst erprobt werden? (In einer Simulation ohne reale Aktorik) (!Direkt an der laufenden Maschine) (!Mit überbrückter Schutztür) (!Ohne Diagnose)
Was gilt für reale Arbeiten an Maschinen? (Nur unter geeigneter Fachaufsicht und betrieblicher Freigabe) (!Schutzfunktionen dürfen für Tests abgeschaltet werden) (!Eine Simulation ist grundsätzlich verboten) (!Der Datentyp ersetzt die Gefährdungsbeurteilung)
Memory
| BOOL | TRUE oder FALSE |
| USINT | Vorzeichenlose kleine Ganzzahl |
| INT | Vorzeichenbehaftete Ganzzahl |
| UINT | Vorzeichenlose 16-Bit-Ganzzahl |
| Überlauf | Ergebnis außerhalb des Wertebereichs |
| Flanke | Zustandswechsel eines Binärsignals |
Drag and Drop
| Ordne die richtigen Begriffe zu. | Thema |
|---|---|
| BOOL | Binärer Zustand |
| UINT | Vorzeichenlose Ganzzahl |
| INT | Vorzeichenbehaftete Ganzzahl |
| REAL | Gleitkommazahl |
| Overflow | Wertebereichsüberschreitung |
Kreuzworträtsel
| Flanke | Welcher Zustandswechsel wird häufig zum einmaligen Zählen eines Werkstücks genutzt? |
| Integer | Wie heißt eine ganzzahlige Datenart allgemein? |
| Simulation | Wo sollen Maschinenabläufe zuerst getestet werden? |
| Diagnose | Wie nennt man die systematische Suche nach einer Fehlerursache? |
| Datentyp | Was legt unter anderem Interpretation und Wertebereich einer Variablen fest? |
| Ueberlauf | Wie heißt eine Überschreitung des darstellbaren Zahlenbereichs? |
LearningApps
Lückentext
Offene Aufgaben
Leicht
- Datentypen-Steckbrief: Gestalte für BOOL, USINT, INT und UINT je eine kleine Karte mit Zweck, Wertebereich und einem SPS-Beispiel.
- Signalverlauf: Zeichne für einen Kartonsensor einen Verlauf aus FALSE und TRUE und markiere jede positive Flanke.
- Fehlersuche: Erkläre in fünf Sätzen, warum USINT für 300 Kartons ungeeignet ist.
- Medienanalyse: Wähle eines der eingebundenen Commons-Medien und erkläre, welche Lerninformation es besonders gut sichtbar macht.
Standard
- Virtuelle Förderanlage: Baue den beschriebenen Ablauf in einer freigegebenen SPS-Simulation nach und dokumentiere Start, Sensor, Motor und Stückzahl.
- Grenzwerttest: Erstelle Testfälle für die Werte 0, 254, 255, 256 und 300 und begründe das erwartete Verhalten der gewählten Datentypen.
- Diagnoseprotokoll: Dokumentiere systematisch einen simulierten Fehler, bei dem der Zähler an einer Typgrenze auffällig wird.
- Erklärvideo: Produziere ein kurzes Lernvideo, in dem Du den Unterschied zwischen signed und unsigned an einem eigenen Beispiel erklärst.
Schwer
- Robuste Zählfunktion: Entwirf eine Funktion, die vor jeder Addition den zulässigen Bereich prüft und bei einer Grenzverletzung eine Diagnose setzt.
- Typkonvertierung: Entwickle drei Testfälle für eine verengende Umwandlung von DINT nach USINT und begründe, wann eine Konvertierung zulässig ist.
- Transferfall: Plane eine Zählanwendung mit Korrekturwerten, Ausschussteilen und Schichtsumme. Leite daraus geeignete Datentypen ab.
- Sicheres Inbetriebnahmekonzept: Erstelle einen Ablauf von Simulation über Review und betriebliche Freigabe bis zur beaufsichtigten realen Prüfung, ohne Schutzfunktionen zu umgehen.


Lernkontrolle
- Datentypwahl begründen: Eine Anlage zählt maximal 240 Teile, soll später aber auf 600 erweitert werden. Wähle einen Datentyp und begründe Deine Reserve.
- Signaldiagnose: Ein Sensor bleibt fünf Zyklen TRUE, der Zähler erhöht fünfmal. Analysiere die Ursache und entwickle eine bessere Auswertung.
- Grenzfall analysieren: Ein Zahlenwert liegt kurz vor dem Maximalwert seines Datentyps. Beschreibe, welche Prüfungen vor einer Addition nötig sind.
- Konvertierung bewerten: Ein DINT-Wert soll in USINT gespeichert werden. Entwickle eine Entscheidungsregel, wann die Konvertierung sicher ist.
- Fehlersuchstrategie: Entwirf eine Reihenfolge aus Signalprüfung, Deklarationsprüfung, Wertebereichsprüfung und Programmlogik und begründe die Reihenfolge.
- Sicherheit transferieren: Erkläre, warum ein erfolgreiches Simulationsergebnis keine betriebliche Freigabe und keine Fachaufsicht für reale Arbeiten ersetzt.
Lernnachweis
Für einen Lernnachweis solltest Du zeigen, dass Du:
- BOOL sicher für binäre Zustände einsetzt.
- Ganzzahltypen nach Vorzeichen und Wertebereich unterscheidest.
- Wertebereiche vor Rechenoperationen und Konvertierungen prüfst.
- Überlauf als mögliche Fehlerursache diagnostizierst.
- Flankenerkennung für einmalige Ereigniszählung begründen kannst.
- Simulation gezielt für Grenz- und Diagnosefälle nutzt.
- Sicherheitsregeln bei realen Anlagen einhältst und Schutzeinrichtungen nicht umgehst.
OERs zum Thema
Verknüpfte Lernbereiche
aiMOOC-Projekte
Schulfach+


aiMOOCs


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 fragenInhalt melden · Hinweise zu Fehlern, Quellen, Medienrechten oder Dubletten