SPS
⊞ Arc Studio
VOLTIQ
Mechatroniker-Ausbildung
⚙️
Mechatronik Pro
Rechner & Module
📚
Lernmodus
Karteikarten & Grundlagen
🎤
AP2-Extra
Mündliche Prüfungsvorbereitung
🔌
SPS-Trainer
Speicherprogrammierbare Steuerung
Aktiv
📓
Berichtsheft
Ausbildungsnachweise
🧰
Lerntools
Rechner & Hilfsmittel
🔶
AMPERE
Elektroniker Betriebstechnik
🔩
TORQUE
Industriemechaniker AP1/AP2
🧠
KI-Assistent
Offline Wissensdatenbank
⚙️ Was ist eine SPS?

// Speicherprogrammierbare Steuerung — das Herzstück moderner Automatisierung

Eine SPS (Speicherprogrammierbare Steuerung) ersetzt festverdrahtete Relaisschaltungen durch ein flexibles, programmierbares System. Sie liest Eingänge, verarbeitet das Programm und setzt Ausgänge — in einem zyklischen Ablauf.

Zyklischer Programmablauf

┌──────────────────────────────┐ 1. Eingänge lesen // E0.0 bis E127.7 2. Programm ausführen // OB1, FC, FB... 3. Ausgänge schreiben // A0.0 bis A127.7 └──────────────────────────────┘ Zykluszeit: typisch 1–50 ms

Adressbereiche S7-300/400/1200

E / IEingänge (Eingang) — Sensoren, Taster, Schalter. E0.0 = Byte 0, Bit 0
A / QAusgänge — Schütze, Ventile, Lampen. A0.0 = erstes Ausgangsbit
MMerker — interne Hilfsvariablen, kein physischer Anschluss. M0.0–M255.7
DBDatenbaustein — strukturierte Datenspeicherung. DB1.DBX0.0, DB1.DBW2
TTimer — T0 bis T255 (S7-300). Oder IEC-Timer in TIA Portal
C / ZZähler — C0–C255. Vorwärts, rückwärts oder bidirektional
📦 Bausteintypen
OB 1Organisationsbaustein — Hauptprogramm, wird zyklisch aufgerufen
OB 35Zeitgesteuerter Interrupt — z.B. alle 100ms für Regelaufgaben
FCFunktionsbaustein ohne Gedächtnis — für Berechnungen, kein Instanz-DB
FBFunktionsbaustein MIT Gedächtnis — hat eigenen Instanz-Datenbaustein
DBDatenbaustein — globaler DB oder Instanz-DB eines FB
⚠ Wichtig AP1/AP2: FC hat kein "Gedächtnis" — Werte gehen nach Aufruf verloren. FB + Instanz-DB behält Werte zwischen den Zyklen!
🔌 Hardware S7-1200
Die S7-1200 ist die moderne Einsteiger-SPS von Siemens. Programmierung ausschließlich über TIA Portal. Integrierter Ethernet-Port für PROFINET.
CPU 1211C6 DI / 4 DQ / 2 AI — kleinste S7-1200
CPU 1214C14 DI / 10 DQ / 2 AI — Standard für Ausbildung
SignalbaugruppeSM — erweitert digitale/analoge Ein-/Ausgänge
KommunikationPROFINET, PROFIBUS, AS-i, IO-Link
📊 Kontaktplan (KOP / LAD)

// KOP = Kontaktplan = Ladder Diagram. Jedes Netzwerk hat Kontakte (Eingänge) und Spulen (Ausgänge)

Grundelemente

── ┤ ├ ── Schließer // leitet wenn Bit = 1 (Öffner: ─┤/├─) ──( )── Spule // setzt Ausgangsbit auf 1 ──(S)── Set-Spule // setzt Bit, bleibt gesetzt ──(R)── Reset-Spule// löscht gesetztes Bit ──(P)── Pos. Flanke// 1 Zyklus bei 0→1 ──(N)── Neg. Flanke// 1 Zyklus bei 1→0

Reihenschaltung = AND

E0.0 E0.1 A0.0 ──┤ ├───┤ ├───( )── // A0.0 = E0.0 AND E0.1

Parallelschaltung = OR

E0.0 A0.0 ──┤ ├──┬──────( )── E0.1 ──┤ ├──┘ // A0.0 = E0.0 OR E0.1

Selbsthaltung (Motorsteuerung)

E0.0 E0.1 A0.0 ──┤ ├──┤/├──┬──────( )── A0.0 ──┤ ├───────┘ // E0.0 = START, E0.1 = STOP (Öffner!) // A0.0 hält sich selbst → Selbsthaltung
💡 NOT-AUS-Kreis IMMER mit Öffner verdrahten! Ruhestromprinzip: Kabelbruch → sicher abschalten.

Flankenauswertung

E0.0 M0.0 M0.1 ──┤ ├───(P)──────────( )── // M0.1 = 1 für genau EINEN Zyklus // wenn E0.0 von 0 auf 1 wechselt
🔤 SCL / Structured Text
// Äquivalent zur obigen Selbsthaltung: IF "Start" OR "Motor_läuft" THEN IF NOT "Stop" THEN "Motor_läuft" := TRUE; END_IF; END_IF; // Einfachere Schreibweise: "Motor_läuft" := ("Start" OR "Motor_läuft") AND NOT "Stop";
In TIA Portal: Variablennamen in Anführungszeichen wenn aus Global-DB oder IO. Lokale Variablen ohne Anführungszeichen.
⏱ IEC Timer (TIA Portal)

// In TIA Portal: IEC-Timer als Instanz-FB. Nicht mehr T0..T255 wie S7-300 Classic!

TON — Einschaltverzögerung

// KOP Symbol: ┌──────TON──────┐ E0.0 ─┤IN Q├─── A0.0 T#5S ─┤PT ET├─── MW10 └───────────────┘ // IN=1 → nach 5s → Q=1 // IN=0 → sofort Q=0, ET=0 // ET = verstrichene Zeit

TOF — Ausschaltverzögerung

// IN=1 → sofort Q=1 // IN=0 → nach PT → Q=0 // Anwendung: Nachlaufzeit Lüfter

TP — Impulsgebter

// IN 0→1 → Q=1 für genau PT // Erneutes IN während Impuls: ignoriert // Anwendung: Impuls mit fester Länge

TONR — Akkumulierender Timer

// Summiert Einschaltzeiten // R=1 → Timer zurücksetzen // Anwendung: Betriebsstundenzähler
Zeitformat: T#1s500ms oder T#5S oder T#1M30S. Intern gespeichert als TIME (32-bit, Millisekunden).
🔢 IEC Zähler

CTU — Vorwärtszähler

┌──────CTU──────┐ E0.0 ─┤CU Q├─── A0.0 E0.1 ─┤R CV├─── MW20 10 ─┤PV └───────────────┘ // CU: positive Flanke → zählt hoch // PV: Vorgabewert (hier: 10) // Q=1 wenn CV >= PV // R=1 → CV=0 (Reset)

CTD — Rückwärtszähler

// CD: positive Flanke → zählt runter // LOAD: CV = PV laden // Q=1 wenn CV <= 0

CTUD — Bidirektionaler Zähler

// CU: vorwärts, CD: rückwärts // QU=1 wenn CV>=PV (oben) // QD=1 wenn CV<=0 (unten)
📊 Datentypen S7/TIA
BOOL1 Bit — TRUE/FALSE. Für Eingänge, Ausgänge, Merker
BYTE8 Bit — 0..255. z.B. EB0 = Eingangsbyte 0 (E0.0..E0.7)
WORD16 Bit (unsigned) — 0..65535. z.B. MW10 = Merkerwort 10
DWORD32 Bit (unsigned) — 0..4.294.967.295. z.B. MD20
INT16 Bit (signed) — -32768..+32767. Für Rechenwerte
DINT32 Bit (signed) — ±2 Milliarden. Für große Zähler
REAL32 Bit Gleitkomma — ±1.18×10⁻³⁸ .. ±3.4×10³⁸. Für analoge Werte
TIME32 Bit — Zeitwert in ms. T#1s500ms = 1500ms intern
STRINGZeichenkette — max. 254 Zeichen. Für HMI-Texte
STRUCTZusammengesetzer Datentyp — Bündel aus verschiedenen Typen
📐 Adressierung
// Bit-Adressierung: E0.0 // Eingang Byte 0, Bit 0 A1.5 // Ausgang Byte 1, Bit 5 M5.3 // Merker Byte 5, Bit 3 // Byte/Word/DWord: EB0 // Eingangsbyte 0 (E0.0..E0.7) AW4 // Ausgangswort 4 (AB4+AB5) MD10 // Merkerdoppelwort ab M10 // Datenbaustein: DB1.DBX0.0 // DB1, Byte 0, Bit 0 DB1.DBW2 // DB1, Wort ab Byte 2 DB1.DBD4 // DB1, DWord ab Byte 4
In TIA Portal mit symbolischer Adressierung: Variablennamen statt Adressen → besser lesbar und wartbar!
🔢 Zahlensysteme
// Dezimal: 42 // Hexadezimal: 16#2A // Binär: 2#00101010 // Oktal: 8#52 // BCD (Binary Coded Decimal): // Jede Ziffer einzeln als 4-Bit // 42 in BCD = 0100 0010
💻 TIA Portal Workflow

// Totally Integrated Automation Portal — Siemens Entwicklungsumgebung für S7-1200/1500

Typischer Projektablauf

1. Neues Projekt erstellen 2. Hardware konfigurieren (CPU auswählen) 3. IO-Belegung festlegen (Variablentabelle) 4. Bausteine erstellen (OB1, FC, FB, DB) 5. Programm schreiben (KOP, FUP, SCL) 6. Übersetzen (Compile — Fehler prüfen) 7. Laden in SPS (Download) 8. Testen (Online → Beobachten)

Wichtige Shortcuts TIA Portal

F5Übersetzen (Compile) — Fehler prüfen
Strg+LLaden in Gerät (Download)
Strg+KOnline verbinden / trennen
F1Hilfe zum markierten Element
Strg+ZRückgängig
🔍 Diagnose & Fehlersuche
Online & DiagnoseCPU-Zustand, Fehlerpuffer, Zykluszeit anzeigen
BeobachtungstabelleVariablen live beobachten und forcen
Programm-StatusKOP live: grün = leitet, grau = sperrt
STOP-UrsacheIm Diagnosepuffer: OB nicht gefunden, Zugriffsfehler, HW-Fehler
ForcenEingang/Ausgang zwingen — NUR zu Testzwecken!
⚠ Beim Forcen von Ausgängen: Maschine kann sich unerwartet bewegen! Sicherheitsbereich freihalten!
🔗 PROFINET Grundlagen
IO-ControllerSPS — steuert alle IO-Devices
IO-DeviceFeldgerät: ET200, Antrieb, HMI
GerätennameEindeutiger Name je Device — muss vergeben werden!
Update-ZeitZykluszeit der PROFINET-Kommunikation (1–512ms)
DCPDiscovery and Config Protocol — Gerätename vergeben
🎯 KOP-Trainer

// Interaktive Aufgaben — Eingänge schalten, Ausgang vorhersagen

Aufgaben
Highscore
❓ SPS-Quiz

// 20 Fragen zu S7, TIA Portal, KOP, Timer, Zähler — wie in der IHK AP1

Fragen
20
Bestehen
≥ 50%
🏆 Letzte Ergebnisse
🖥 SPS-Simulator

// Schreibe SCL-ähnliche Bedingungen — der Simulator wertet sie aus

Netzwerke (je Zeile eine Bedingung)
// Eingänge (E0.0–E0.7) schalten:
// Ausgangszustände: