Zum Inhalt springen

SPS-Programmierung in der Ausbildung – Funktionsbausteine sinnvoll strukturieren

Aus MOOCsWiki Staging
aiMOOC-Siegel aiMOOC

SPS-Programmierung in der Ausbildung – Funktionsbausteine sinnvoll strukturieren

QR-Code


SPS-Programmierung in der Ausbildung – Funktionsbausteine sinnvoll strukturieren


Einleitung

In diesem aiMOOC lernst Du, SPS-Programme mit Funktionsbausteinen (FB) so zu strukturieren, dass Schnittstellen klar, Logik wiederverwendbar und Diagnosewege kurz bleiben. Zielgruppe ist die Ausbildung in Automatisierungs-, Elektro- und Mechatronikberufen.

Ausbildungsfall: Eine virtuelle Sortierstation transportiert Werkstücke über zwei identische Förderabschnitte. Jeder Abschnitt erhält dieselbe Bausteinlogik, aber eine eigene Instanz. Du beobachtest Signale, simulierst Fehler und begründest Deine Diagnose.

Sicherheitsrahmen: Alle Maschinenabläufe werden zuerst und in diesem Kurs ausschließlich virtuell simuliert. Es gibt keine automatische Live-Ansteuerung realer Ausgänge. Schutzeinrichtungen werden niemals überbrückt oder durch Übungslogik außer Kraft gesetzt. Arbeiten an realen Anlagen erfolgen nur unter geeigneter Fachaufsicht, nach betrieblicher Freigabe und unter Beachtung der betrieblichen Gefährdungsbeurteilung und Sicherheitsvorgaben.


Lerneinheit 1: Vom SPS-Programm zum Baustein

Eine SPS verarbeitet Eingangssignale, führt das Anwenderprogramm aus und bildet daraus Ausgangssignale. Für größere Programme ist entscheidend, die Aufgabe in kleine, klar abgegrenzte Funktionen zu zerlegen.

Merksatz: Ein guter Baustein erledigt eine überschaubare Teilaufgabe und tauscht Daten über eine klar definierte Schnittstelle aus.

Ungeeignet Besser
Direkter Zugriff auf viele globale Variablen im FB Ein- und Ausgänge über die Bausteinschnittstelle
Mehrere unabhängige Maschinenfunktionen in einem FB Ein FB pro klarer Teilaufgabe
Versteckte Querzugriffe auf Instanzdaten Datenfluss über IN, OUT und bei Bedarf IN_OUT
Kopierter Code für jedes Aggregat Ein wiederverwendbarer FB mit mehreren Instanzen


Lerneinheit 2: FB, FC und Instanz

Im TIA-Portal-Beispiel gilt: Ein FC besitzt keinen eigenen zyklischen Datenspeicher. Ein FB kann statische Zustände speichern; die zugehörigen Daten liegen in einer Instanz. Dadurch kann dieselbe Logik mehrfach mit getrennten Zuständen verwendet werden.

Medienhinweis: Das Video „TIA Portal V13 - Funktion (FC) & Funktionsbaustein (FB)“ von SPS&Technik behandelt FC, FB und Schnittstellen. Laut Videobeschreibung ist beim Aufruf eines Bausteins ein Dialogfenster im Video nicht sichtbar; nutze das Video daher als Ergänzung, nicht als alleinige Bedienanleitung.

Element Aufgabe im Ausbildungsfall
IN Anforderungen und Sensorsignale in den FB hineinführen
OUT Zustände, Freigaben, Diagnose und simulierte Befehle ausgeben
IN_OUT Nur verwenden, wenn ein gemeinsamer strukturierter Datensatz bewusst gelesen und geschrieben werden soll
STAT Interne Zustände speichern, zum Beispiel Schrittzustand oder Zeitüberwachung
TEMP Kurzlebige Zwischenwerte nur für den aktuellen Aufruf verwenden


Lerneinheit 3: Schnittstellen zuerst entwerfen

Bevor Du Logik programmierst, formulierst Du die Schnittstelle. Für den wiederverwendbaren Baustein FB_Foerderabschnitt genügt eine kleine, sprechende Schnittstelle.

Name Richtung Datentyp Bedeutung
xEnable IN BOOL Abschnitt freigegeben
xStart IN BOOL Transport anfordern
xPartIn IN BOOL Werkstück am Eingang erkannt
xPartOut IN BOOL Werkstück am Ausgang erkannt
xReset IN BOOL Quittierung einer simulierten Störung
tMaxTravel IN TIME Maximale simulierte Transportzeit
xMotorCmd OUT BOOL Simulierter Motorbefehl
xBusy OUT BOOL Transport läuft
xDone OUT BOOL Transport abgeschlossen
xFault OUT BOOL Diagnose meldet Fehler

Strukturregel: Hardwareadressen wie %I oder %Q gehören nicht in den wiederverwendbaren Kern des FB. Die Zuordnung von realen Ein-/Ausgängen erfolgt außerhalb des Bausteins in einer dafür vorgesehenen E/A-Schicht. Im Kurs bleibt diese Zuordnung rein virtuell.


Lerneinheit 4: Eine Logik – mehrere Instanzen

Die virtuelle Sortierstation besitzt zwei Förderabschnitte. Beide rufen denselben FB auf, aber mit getrennten Instanzdaten.

Instanz Eingänge Ausgänge Eigenständiger Zustand
Inst_Foerderer_A B1, B2, Start_A Motor_A, Done_A, Fault_A Ja
Inst_Foerderer_B B2, B3, Start_B Motor_B, Done_B, Fault_B Ja

Prüffrage an Dich: Wenn Förderer A gerade eine Zeitüberwachung laufen hat, darf das den Zustand von Förderer B verändern? Nein. Genau dafür sind getrennte Instanzen wichtig.


Lerneinheit 5: Virtuelle Anlage und Signalverlauf

Die Anlage wird als Simulation gedacht: B1 erkennt das Werkstück am Anfang, B2 am Übergabepunkt, B3 am Ende. Motor_A und Motor_B sind ausschließlich simulierte Ausgabesignale.

Zeitpunkt Start_A B1 B2 Motor_A xBusy_A xDone_A
t0 0 0 0 0 0 0
t1 1 1 0 1 1 0
t2 0 1 0 1 1 0
t3 0 0 1 0 0 1
t4 0 0 1 0 0 0

Interpretation: Der Startimpuls löst den Transport aus. Der FB merkt sich den laufenden Zustand über die Instanz. Sobald B2 das Werkstück erkennt, endet der simulierte Transport und xDone_A wird als Abschlussmeldung gesetzt.


Lerneinheit 6: Diagnose statt Sucharbeit

Ein gut strukturierter FB macht Fehler beobachtbar. Diagnose beginnt am Eingang, führt über Zustand und Zeitüberwachung und endet am Ausgang.

Fehlerbild in der Simulation Beobachtung Wahrscheinlicher Diagnosepfad
Start wird betätigt, Motor bleibt aus xStart ist 1, xEnable ist 0 Freigabekette prüfen
Motor läuft, Werkstück kommt nicht an B2 an xBusy bleibt 1, xPartOut bleibt 0 Signalfolge und Transportzeit prüfen
Nur Instanz B reagiert falsch Instanz A arbeitet korrekt Parameter und Signale von Instanz B prüfen
Beide Instanzen zeigen denselben unerwarteten Zustand Gleicher Fehler an zwei Aufrufen Gemeinsame Logik oder gemeinsame Eingangsdaten prüfen


Lerneinheit 7: Simulation vor Inbetriebnahme

Mit Simulation kannst Du Grenzfälle reproduzieren, ohne eine reale Maschine automatisch anzusteuern. Prüfe Normalablauf, fehlende Sensorantwort, Reset-Verhalten und zwei parallele Instanzen.

Stoppregel: Sobald ein Lernschritt eine reale Maschine, reale Aktoren oder das Ändern von Schutzeinrichtungen betreffen würde, endet die Selbstlernaufgabe. Die weitere Arbeit erfolgt nur im betrieblich freigegebenen Rahmen unter geeigneter Fachaufsicht.


Ausbildungsfall: Virtuelle Sortierstation

Auftrag: Strukturiere die zwei Förderabschnitte mit einem wiederverwendbaren FB. Beide Instanzen sollen dieselbe Schnittstelle haben. Ein Zeitfehler wird simuliert, wenn der Ausgangssensor innerhalb der vorgegebenen Transportzeit nicht kommt.

Virtuelles Werkstück:
B1  ->  Förderer A  ->  B2  ->  Förderer B  ->  B3

Nur Simulation:
Sensorbits -> FB-Instanz -> simulierte Befehle -> Signalbeobachtung


Gestufte Hilfen

Stufe Hilfe
Hilfe 1 Zeichne nur den Signalweg: Sensor -> Eingang -> Zustand -> Ausgang.
Hilfe 2 Prüfe zuerst, welche Werte von Zyklus zu Zyklus erhalten bleiben müssen. Diese gehören beim FB in einen geeigneten Instanzspeicher.
Hilfe 3 Beobachte in dieser Reihenfolge: xEnable, xStart, xPartIn, interner Zustand, Zeitüberwachung, xPartOut, xMotorCmd, xFault.
Hilfe 4 Wenn zwei Instanzen sich gegenseitig beeinflussen, suche nach globalen Querzugriffen oder gemeinsam genutzten Zustandsvariablen.


Basis-, Anwendungs- und Transferaufgaben mit Feedback

Niveau Aufgabe Begründetes Feedback
Basis Ordne xEnable, xStart, xPartOut und xFault einer sinnvollen Schnittstellenrichtung zu. Gut gelöst ist die Aufgabe, wenn Anforderungen und Sensorsignale in den Baustein hineingehen und Status-/Diagnosesignale aus ihm herauskommen. So bleibt der Datenfluss lesbar.
Anwendung Plane zwei Aufrufe desselben FB für Förderer A und B mit getrennten Instanzen. Die Lösung ist fachlich tragfähig, wenn beide Aufrufe dieselbe Logik nutzen, aber Zustände und Zeitüberwachungen getrennt bleiben. So entsteht Wiederverwendung ohne gegenseitige Beeinflussung.
Transfer Ergänze einen dritten virtuellen Förderabschnitt, ohne den FB-Code zu kopieren oder zu verändern. Eine gute Lösung benötigt nur eine weitere Instanz und passende Parameter. Wenn Kernlogik kopiert werden muss, ist die Schnittstelle oder Parametrierung noch nicht allgemein genug.


Steuerungsaufgabe: Was passiert als Nächstes?

Im virtuellen Ablauf ist xEnable_A = 1, xStart_A erhält einen kurzen Impuls, B1 = 1 und B2 = 0. Begründe, warum xMotorCmd_A und xBusy_A aktiv werden sollen. Danach setzt die Simulation B2 = 1. Begründe, warum der Transport beendet und xDone_A gemeldet werden kann.

Feedback: Entscheidend ist nicht das Auswendiglernen einzelner Kontakte, sondern die nachvollziehbare Kette Anforderung -> gespeicherter Zustand -> Rückmeldung -> Abschluss.


Diagnoseaufgabe: Fehler im Signalverlauf

Zeitpunkt xEnable_A xStart_A B1 B2 xMotorCmd_A xFault_A
d0 1 0 0 0 0 0
d1 1 1 1 0 1 0
d2 1 0 1 0 1 0
d3 1 0 0 0 0 1

Auftrag: Formuliere eine Diagnosehypothese. Nutze zuerst die Signalfolge, dann die Zeitüberwachung. Ändere keine Schutzeinrichtung und erzwinge keine realen Ausgänge.

Begründetes Feedback: Die plausibelste Hypothese ist ein fehlendes Ausgangssignal B2 innerhalb der erlaubten virtuellen Transportzeit. Die Diagnose folgt beobachtbaren Signalen und benötigt keinen direkten Eingriff in Hardware.


Fachliche Leitlinien

Die aktuelle IEC 61131-3 beschreibt unter anderem Strukturierter Text, Kontaktplan und Funktionsbausteindiagramm als SPS-Programmiersprachen. Für SIMATIC S7-1200/1500 empfiehlt Siemens eine modulare Programmstruktur, gekapselte Teilaufgaben, Datenübergabe über Bausteinschnittstellen und getrennte Instanzen für mehrfach genutzte FBs. Für sicherheitsbezogene Steuerungsfunktionen gelten zusätzliche Anforderungen; Standardlogik darf Sicherheitsfunktionen nicht unkontrolliert überstimmen.


Quellen und Medienrechte

Quelle oder Medium Prüfung und Nutzung
IEC 61131-3:2025 Offizielle IEC-Seite; fachliche Grundlage zu SPS-Programmiersprachen.
Siemens Programming Guideline for S7-1200/1500 Offizielle Siemens-Publikation; Grundlage für Wiederverwendung, Schnittstellen und Instanzen.
IFA Report 1/2025 DGUV/IFA; Grundlage für den Hinweis zur Trennung, Spezifikation und Validierung sicherheitsbezogener Steuerungsfunktionen.
Speicherprogrammierbare Steuerung Wikipedia als Überblick zu Aufbau, Arbeitsweise, Sensoren und Aktoren.
Programmable logic controller.jpg Wikimedia Commons; freie Datei, CC BY-SA 3.0/GFDL gemäß Dateiseite.
PLC Block Diagram.jpg Wikimedia Commons; CC BY-SA 4.0.
Simatic S7-1200.JPG Wikimedia Commons; CC BY-SA 3.0 gemäß Dateiseite.
S71500.JPG Wikimedia Commons; CC BY 3.0.
BeispielFUP.svg Wikimedia Commons; CC BY-SA 4.0.
Ladder VirPLC.jpg Wikimedia Commons; CC BY-SA 4.0.
TIA Portal V13 - Funktion FC & Funktionsbaustein FB Öffentliches YouTube-Video von SPS&Technik; eingebettet, nicht kopiert.
Simulation S7 300 mit PLCSIM im TIA Portal Öffentliches YouTube-Video von sps4you; eingebettet, nicht kopiert.
Simulation S7 1500 mit PLCSIM Advanced und TIA Portal Öffentliches YouTube-Video von sps4you; eingebettet, nicht kopiert.


Interaktive Aufgaben


Quiz: Teste Dein Wissen

Warum eignet sich ein Funktionsbaustein für wiederkehrende Maschinenmodule? (Weil dieselbe Logik mit getrennten Instanzen mehrfach genutzt werden kann) (!Weil jeder Funktionsbaustein nur einmal aufgerufen werden darf) (!Weil er alle Hardwareadressen global speichern muss) (!Weil er ohne Schnittstelle arbeitet)




Welche Information gehört typischerweise an einen Eingang des Förderbausteins? (Eine Freigabe oder ein Sensorsignal) (!Eine interne Instanzverwaltung des Programmiersystems) (!Eine versteckte globale Fehlernummer) (!Eine fest verdrahtete reale Ausgangsadresse)




Wozu dient eine getrennte Instanz eines Funktionsbausteins? (Sie hält den Zustand eines konkreten Aufrufs getrennt) (!Sie ersetzt jede Bausteinschnittstelle) (!Sie verbindet automatisch alle Förderer miteinander) (!Sie schaltet Schutzeinrichtungen ab)




Welche Struktur verbessert die Wiederverwendbarkeit eines Bausteins? (Datenaustausch über klar definierte Schnittstellen) (!Direkte Querzugriffe auf fremde Instanzdaten) (!Viele projektfeste Hardwareadressen im Baustein) (!Kopieren des Bausteincodes für jede Maschine)




Was ist bei einer Diagnose zuerst sinnvoll? (Beobachtbare Eingänge und Freigaben prüfen) (!Sofort den gesamten Baustein neu schreiben) (!Schutzeinrichtungen überbrücken) (!Reale Ausgänge ohne Freigabe erzwingen)




Was zeigt xBusy im Ausbildungsfall an? (Der virtuelle Transport läuft) (!Die reale Maschine ist freigegeben) (!Die Sicherheitsfunktion ist validiert) (!Der Baustein ist urheberrechtlich geschützt)




Wann soll im Ausbildungsfall xFault gesetzt werden? (Wenn die erwartete Rückmeldung innerhalb der simulierten Zeit ausbleibt) (!Bei jedem Startimpuls) (!Sobald der Baustein eine Instanz besitzt) (!Immer wenn B2 ein Signal liefert)




Warum werden Hardwareadressen aus dem wiederverwendbaren Kernbaustein herausgehalten? (Damit der Baustein leichter in anderen Modulen verwendet werden kann) (!Damit keine Eingangssignale mehr nötig sind) (!Damit jede Instanz dieselben Ausgänge zwingend teilt) (!Damit die Simulation reale Aktoren automatisch ansteuert)




Was ist im Kurs der richtige erste Schritt vor einer realen Inbetriebnahme? (Die Abläufe und Fehlerfälle virtuell testen) (!Schutzeinrichtungen deaktivieren) (!Ausgänge direkt erzwingen) (!Ohne Freigabe an der Maschine testen)




Welche Aussage beschreibt gutes Transferdenken? (Ein dritter Förderer wird durch eine weitere Instanz und passende Parameter ergänzt) (!Ein dritter Förderer erfordert immer eine vollständige Kopie des Programms) (!Ein dritter Förderer muss die Instanzdaten von Förderer A mitbenutzen) (!Ein dritter Förderer benötigt keine Schnittstelle)





Memory

Funktionsbaustein Wiederverwendbare zustandsbehaftete Logik
Instanz Eigener Speicher eines Bausteinaufrufs
Schnittstelle Definierter Datenaustausch
Eingang Information in den Baustein
Ausgang Information aus dem Baustein
Simulation Virtueller Test ohne Live-Ansteuerung
Diagnose Systematische Fehlersuche anhand von Signalen





Drag and Drop

Ordne die richtigen Begriffe zu. Thema
Freigabe Eingangsschnittstelle
Motorbefehl Ausgangsschnittstelle
Schrittzustand Instanzspeicher
Zeitüberschreitung Diagnose
Förderer B Zweite Bausteininstanz




...


Kreuzworträtsel

Funktionsbaustein Welcher Bausteintyp kann zustandsbehaftete wiederverwendbare Logik kapseln?
Instanzdatenbaustein Wie heißt der Speicherbereich einer konkreten FB-Instanz im Siemens-Kontext?
Schnittstelle Wie heißt die definierte Grenze für den Datenaustausch eines Bausteins?
Simulation Wie heißt das virtuelle Erproben eines Maschinenablaufs?
Diagnose Wie heißt die systematische Suche nach der Ursache eines Fehlers?
Wiederverwendung Wie heißt das erneute Nutzen derselben Logik in mehreren Aufrufen?





LearningApps


Lückentext

Vervollständige den Text.
Ein

kapselt eine klar abgegrenzte Teilaufgabe. Eine konkrete Verwendung eines FB heißt

. Zustandsdaten einer Instanz bleiben im passenden

getrennt. Ein wiederverwendbarer Baustein tauscht Daten bevorzugt über seine

aus. Eine fehlende erwartete Rückmeldung kann über eine Zeitüberwachung als

erkannt werden. Vor realen Arbeiten wird der Ablauf zuerst in einer

geprüft. Schutzeinrichtungen dürfen dabei niemals

werden. Reale Arbeiten benötigen geeignete Fachaufsicht und betriebliche

.




Offene Aufgaben


Leicht

  1. Schnittstelle: Zeichne für FB_Foerderabschnitt nur die Ein- und Ausgänge und begründe jede Richtung.
  2. Signalverlauf: Übertrage den Normalablauf t0 bis t4 in ein eigenes Zeitdiagramm.
  3. Simulation: Variiere in einer Papier- oder Softwaresimulation das Signal B2 und beschreibe die Auswirkungen auf xBusy und xDone.
  4. Diagnose: Formuliere drei Beobachtungen, die Du vor einer Änderung am Programm prüfen würdest.


Standard

  1. Funktionsbaustein: Entwirf eine Zustandsfolge für Bereit, Transport und Störung, ohne reale Hardwareadressen zu verwenden.
  2. Instanz: Plane drei Förderabschnitte mit demselben FB und dokumentiere, welche Parameter pro Instanz unterschiedlich sind.
  3. Testfall: Erstelle eine Testtabelle mit Normalfall, fehlendem Sensorsignal und Reset-Fall samt erwartetem Ergebnis.
  4. Fehlersuche: Analysiere den Diagnoseverlauf d0 bis d3 und begründe eine Reihenfolge für Deine Prüfschritte.


Schwer

  1. Wiederverwendbarkeit: Überarbeite einen fiktiven Baustein mit globalen Querzugriffen zu einer klaren Schnittstellenarchitektur.
  2. Modularisierung: Entwickle ein Konzept, wie Förderer, Zylinder und Meldeleuchte in getrennten Modulen zusammenarbeiten, ohne ihre internen Daten gegenseitig zu verändern.
  3. Transfer: Übertrage das Strukturprinzip auf eine virtuelle Pumpenstation und definiere eine allgemeine Schnittstelle für zwei Pumpeninstanzen.
  4. Code-Review: Entwickle eine Prüfliste für Lesbarkeit, Schnittstellen, Instanztrennung, Diagnose und sicheren Simulationsbetrieb und wende sie auf Deinen Entwurf an.




Text bearbeiten Bild einfügen Video einbetten Interaktive Aufgaben erstellen



Lernkontrolle

  1. Architekturvergleich: Vergleiche eine Lösung mit kopiertem Code und eine Lösung mit einem mehrfach instanziierten FB. Bewerte Wartbarkeit, Fehlerrisiko und Diagnoseaufwand.
  2. Schnittstellenentwurf: Entscheide für einen virtuellen Zylinder, welche Signale IN, OUT oder interner Zustand sein sollen, und begründe Deine Auswahl.
  3. Diagnosestrategie: Entwickle aus einem gegebenen Fehlerbild eine Prüfreihenfolge vom Eingang über den internen Zustand bis zum Ausgang.
  4. Transferleistung: Übertrage den Förderbaustein auf ein anderes Aggregat und benenne, welche Teile allgemein bleiben und welche Parameter verändert werden.
  5. Teststrategie: Entwirf einen Simulationstest, der zeigt, dass zwei Instanzen voneinander unabhängig sind.
  6. Sicherheitsbewertung: Erkläre, warum eine funktionierende Standardsimulation keine Freigabe für eine reale Sicherheitsfunktion ersetzt.




Lernnachweis

Für einen Lernnachweis solltest Du zeigen, dass Du:

  1. einen Funktionsbaustein in eine klar abgegrenzte Teilaufgabe zerlegen kannst,
  2. eine nachvollziehbare Schnittstelle mit passenden Ein- und Ausgängen entwerfen kannst,
  3. denselben FB mit mehreren unabhängigen Instanzen einsetzen kannst,
  4. Signalverläufe lesen und daraus Diagnosehypothesen ableiten kannst,
  5. Normal-, Fehler- und Reset-Fälle in einer Simulation testen und dokumentieren kannst,
  6. zwischen Standardlogik, Diagnose und sicherheitsbezogenen Funktionen unterscheiden kannst,
  7. begründen kannst, warum reale Inbetriebnahme Fachaufsicht und betriebliche Freigabe benötigt.




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-Hauptseite

Mediathek

Inhalte werden geladen ...

Mediathek wird aus dem Wiki geladen ...