Zum Inhalt springen

SPS-Programmierung in der Ausbildung – Datentypen und Wertebereiche beachten

Aus MOOCsWiki Staging
aiMOOC-Siegel aiMOOC

SPS-Programmierung in der Ausbildung – Datentypen und Wertebereiche beachten

QR-Code



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.

  1. Simulation: Programme und Grenzfälle zuerst ohne reale Aktorik testen.
  2. Fachaufsicht: Reale Arbeiten nur unter geeigneter fachlicher Aufsicht durchführen.
  3. Betriebliche Freigabe: Erst nach Freigabe mit realer Anlage arbeiten.
  4. Schutzeinrichtung: Schutzfunktionen weder elektrisch noch mechanisch noch softwareseitig umgehen.
  5. 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:

  1. Siemens – Reference Manual / Vergleichstabelle: Bitbreiten und Wertebereiche elementarer Ganzzahltypen.
  2. Siemens – Programming Guideline S7-1200/1500: elementare Datentypen und Typunterstützung.
  3. Beckhoff – Data types: Bedeutung und Speicherbedarf von Datentypen.
  4. Beckhoff – Type conversion operators: implizite und explizite Typkonvertierung.
  5. Wikipedia – Integer Datentyp: Wertebereiche vorzeichenbehafteter und vorzeichenloser Ganzzahlen.
  6. Wikipedia – Arithmetischer Überlauf: Begriff und Beispiele.
  7. 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

Vervollständige den Text.
Ein BOOL kennt die logischen Werte TRUE und

.
Ein USINT kann maximal den Wert

darstellen.
Ein INT besitzt üblicherweise eine Breite von

Bit.
Für eine nichtnegative Stückzahl bis 300 ist aus den behandelten Typen

passend.
Liegt ein Rechenergebnis außerhalb des darstellbaren Bereichs, spricht man von

.
Für die einmalige Erfassung eines Sensorsignals kann die positive

ausgewertet werden.
Vor einer verengenden Typumwandlung muss der

geprüft werden.
Reale Arbeiten an Maschinen erfordern geeignete

und betriebliche Freigabe.




Offene Aufgaben


Leicht

  1. Datentypen-Steckbrief: Gestalte für BOOL, USINT, INT und UINT je eine kleine Karte mit Zweck, Wertebereich und einem SPS-Beispiel.
  2. Signalverlauf: Zeichne für einen Kartonsensor einen Verlauf aus FALSE und TRUE und markiere jede positive Flanke.
  3. Fehlersuche: Erkläre in fünf Sätzen, warum USINT für 300 Kartons ungeeignet ist.
  4. Medienanalyse: Wähle eines der eingebundenen Commons-Medien und erkläre, welche Lerninformation es besonders gut sichtbar macht.


Standard

  1. Virtuelle Förderanlage: Baue den beschriebenen Ablauf in einer freigegebenen SPS-Simulation nach und dokumentiere Start, Sensor, Motor und Stückzahl.
  2. Grenzwerttest: Erstelle Testfälle für die Werte 0, 254, 255, 256 und 300 und begründe das erwartete Verhalten der gewählten Datentypen.
  3. Diagnoseprotokoll: Dokumentiere systematisch einen simulierten Fehler, bei dem der Zähler an einer Typgrenze auffällig wird.
  4. Erklärvideo: Produziere ein kurzes Lernvideo, in dem Du den Unterschied zwischen signed und unsigned an einem eigenen Beispiel erklärst.


Schwer

  1. Robuste Zählfunktion: Entwirf eine Funktion, die vor jeder Addition den zulässigen Bereich prüft und bei einer Grenzverletzung eine Diagnose setzt.
  2. Typkonvertierung: Entwickle drei Testfälle für eine verengende Umwandlung von DINT nach USINT und begründe, wann eine Konvertierung zulässig ist.
  3. Transferfall: Plane eine Zählanwendung mit Korrekturwerten, Ausschussteilen und Schichtsumme. Leite daraus geeignete Datentypen ab.
  4. Sicheres Inbetriebnahmekonzept: Erstelle einen Ablauf von Simulation über Review und betriebliche Freigabe bis zur beaufsichtigten realen Prüfung, ohne Schutzfunktionen zu umgehen.




Text bearbeiten Bild einfügen Video einbetten Interaktive Aufgaben erstellen



Lernkontrolle

  1. 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.
  2. Signaldiagnose: Ein Sensor bleibt fünf Zyklen TRUE, der Zähler erhöht fünfmal. Analysiere die Ursache und entwickle eine bessere Auswertung.
  3. Grenzfall analysieren: Ein Zahlenwert liegt kurz vor dem Maximalwert seines Datentyps. Beschreibe, welche Prüfungen vor einer Addition nötig sind.
  4. Konvertierung bewerten: Ein DINT-Wert soll in USINT gespeichert werden. Entwickle eine Entscheidungsregel, wann die Konvertierung sicher ist.
  5. Fehlersuchstrategie: Entwirf eine Reihenfolge aus Signalprüfung, Deklarationsprüfung, Wertebereichsprüfung und Programmlogik und begründe die Reihenfolge.
  6. 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:

  1. BOOL sicher für binäre Zustände einsetzt.
  2. Ganzzahltypen nach Vorzeichen und Wertebereich unterscheidest.
  3. Wertebereiche vor Rechenoperationen und Konvertierungen prüfst.
  4. Überlauf als mögliche Fehlerursache diagnostizierst.
  5. Flankenerkennung für einmalige Ereigniszählung begründen kannst.
  6. Simulation gezielt für Grenz- und Diagnosefälle nutzt.
  7. 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-Hauptseite

Mediathek

Inhalte werden geladen ...

Mediathek wird aus dem Wiki geladen ...