Elektrokettenzug SPS-Steuerung programmieren (S7-1200 KOP & SCL)
SPS-Programmierung für Elektroseilzug-Steuerung (S7-1200 Praxis) Dieser Beitrag beschreibt die Programmierung einer Elektroseilzug-Steuerung mit der Siemens S7-1200 (CPU 1212C DC/DC/DC) als zentraler Steuerung. Die Entwicklung erfolgt in TIA Portal V17 mit einer Kombination aus KOP (Kontaktplan) und SCL (Strukturierter Text). Realisiert werden die Hub-/Senk- und Katzfahrlogik, Überlastschutz, Endlagenschutz, Not-Halt-Verkettung, Umschaltung zwischen Fernbedienung und Hängetaster, sowie die Fehlerdiagnose. Das vollständige Programm umfasst 4 FC-Bausteine, 1 DB-Baustein und 1 OB1-Hauptzyklus und kann direkt in ein reales Projekt übernommen werden.
Die Steuerung konventioneller Elektroseilzüge basiert seit langem auf der Kombination aus Nockenschalter, Relais und Schütz. Der Stromlaufplan besteht aus Dutzenden von Hilfsrelais und Zeitrelais, was die Fehlersuche erschwert und eine Anbindung an das betriebliche Informationssystem unmöglich macht. Mit der Weiterentwicklung von Industrie 4.0 fordern immer mehr Fabriken die Integration von Heben in MES-/SCADA-Systeme, um Zustandsüberwachung, Betriebsdatenerfassung und Fehlerfrühwarnung zu ermöglichen. Die Ablösung der Relaislogik durch eine SPS-Steuerung ist daher die logische Konsequenz. Dieser Beitrag basiert auf den Erfahrungen aus einem realen Projekt der Kelude Schwerindustrie für ein Automobilteilewerk mit 68 zentral gesteuerten Elektroseilzügen und beschreibt den vollständigen Entwicklungsprozess der SPS-Steuerung – von der IO-Zuordnungstabelle über die KOP-Logik und die SCL-Fehlerbehandlungsroutinen bis hin zur HMI-Bildplanung und der Inbetriebnahme.
Hardwarekonfiguration und IO-Zuordnung
1.1 Hardwareauswahl
| Ausrüstung | Typ | Anzahl | Bemerkung |
|---|---|---|---|
| PLC CPU | S7-1200 1212C DC/DC/DC | 1 | 6ES7 212-1AE40-0XB0,8DI/6DO |
| DigitalErweiterungsmodul | SM 1223 DI 8×24VDC / DO 8×24VDC | 1 | 6ES7 223-1BH32-0XB0 |
| AnalogErweiterungsmodul | SM 1231 AI 4×13bit | 1 | 6ES7 231-4HD32-0XB0,4~20mA |
| HMI Touchpanel | KTP400 Basic PN | 1 | 6AV6 647-0AD11-3AX0,4.3Zoll |
| Hilfsrelais | RIM 24VDC 2CO | 6 | PLC DOSchützSpulentrennung |
| Schaltnetzteil | EDR-120-24 | 1 | AC220VDC24V 5A |
1.2 IO-Belegungsplan
| Adresse | Symbol | Funktion | Typ | Beschreibung |
|---|---|---|---|---|
| %I0.0 | SB1_UP | Auf-Taste | DI | Auf am Handsender,Schließer |
| %I0.1 | SB2_DN | Senken-Taste | DI | HandsenderSenken,Schließer |
| %I0.2 | SB3_LT | Links-Taste | DI | Links am Handsender,Schließer |
| %I0.3 | SB4_RT | Rechts-Taste | DI | Rechts am Handsender,Schließer |
| %I0.4 | SQ1_UL | Oberer Endschalter | DI | Endschalter,Öffner |
| %I0.5 | SQ2_DL | Unterer Endschalter | DI | Endschalter,Öffner |
| %I0.6 | SB0_EST | Not-Aus-Taster | DI | Öffnerkontakt,0=Auslösung |
| %I0.7 | FR_OL | Thermorelais | DI | Thermorelais,Öffner |
| %I1.0 | OL1_OVLD | Überlastsignal | DI | Überlastsignal-Ausgang,Schließer |
| %I1.1 | RC_SEL | Funkfernsteuerung/Handsender-Umschaltung | DI | 0=Handsender 1=Funkfernsteuerung |
| — | Analogeingang:Überlastsensor(4~20mA0~20t) | |||
| Adresse | Symbol | Funktion | Typ | Beschreibung |
|---|---|---|---|---|
| %Q0.0 | KM1_UP | Auf-Schütz | DO | Steuerung Haubtkreis AufSchütz |
| %Q0.1 | KM2_DN | SenkenSchütz | DO | Steuerung Senken-Hauptkreis-Schützchütz |
| %Q0.2 | KM3_LT | Links-Schütz | DO | Steuerung Hauptkreis LinksSchütz |
| %Q0.3 | KM4_RT | Rechts-Schütz | DO | Steuerung Hauptkreis RechtsSchütz |
| %Q0.4 | KA1_ALM | Störmeldung | DO | AntriebAkustischer & Optischer Signalgeber |
| %Q0.5 | KA2_RUN | Betriebsanzeigeleuchte | DO | GrünBetriebsanzeigeleuchte |
2. LAD-Programmierung – Ablaufsteuerung
2.1 Hauptprogramm OB1 – Aufbau und Zyklus
OB1 ist der organisatorische Baustein für den Hauptzyklus mit einer Standardzykluszeit von 10 ms. Die folgenden FC-Bausteine werden in dieser Reihenfolge aufgerufen:
| Aufrufreihenfolge | FCBaustein | Funktion | Programmiersprache |
|---|---|---|---|
| 1 | FC100_Safety | Sicherheitsverriegelung(Not-Halt/Oberer Endschalter/Überlastrelais/Überlast) | LAD |
| 2 | FC200_HoistCtrl | HebenSteuerungslogik(Auf am Handsender/Senken/Verriegelung) | LAD |
| 3 | FC300_TravelCtrl | Betriebssteuerungslogik(Links am Handsender/Rechts am Handsender/Verriegelung) | LAD |
| 4 | FC400_FaultDiag | Fehlerdiagnoseund Störung(SCL) | SCL |
2.2 Sicherheitsverriegelung FC100 (LAD-Programm)
// FC200: Hebesteuerungslogik // Heben:SafetyOK + Oberer Endschalter nicht ausgelöst + Keine Überlast + Senken nicht aktiv + Heben-Taste // Senken:SafetyOK + Unterer Endschalter nicht ausgelöst + Heben nicht aktiv + Senken-Taste(Bei Überlast nur Senken erlaubt) "SafetyOK" "SQ1_UL" "Overload_Latch" "KM2_DN" "SB1_UP" "KM1_UP" ----| |-------------| |-------------|/|----------------|/|-----------| |----------( ) | | "KM1_UP" | ----| |----------------------------------------------------------------------------+ "SafetyOK" "SQ2_DL" "KM1_UP" "SB2_DN" "KM2_DN" ----| |-------------| |-------------------------------|/|-----------| |----------( ) | | "KM2_DN" | ----| |----------------------------------------------------------------------------+ // elektrische Verriegelung:KM1undKM2Ausgabe absolut nicht gleichzeitig "KM1_UP" "KM2_DN" "Interlock_OK" ----| |-----------| |--------------( ) // Zur Fehlererkennung,Im Normalzustand nicht leitend
2.3 Heben-Steuerung FC200 (LAD-Programm)
// Schutz vor häufigem Anfahren:Verzögerung nach jedem Stopp500msErst dann erneuter Start erlaubt // Verhindert häufiges Schalten des Schützes in kürzester Zeit(Kontaktprellen/Lichtbogen) "KM1_UP" ----|/|----------------------------------------------------------------------------- "KM2_DN" TON_Start_Delay ----|/|----------------[TON: #Temp_StartDelay ] PT= T#500MS Q= "Start_Allowed" // In den Steuerstromkreis integriert "Start_Allowed" "SB1_UP" "KM1_UP" // Heben ----| |----------------| |-----------( )
2.4 Verzögerungsschutz gegen häufiges Einschalten
// FC400: Fehlerdiagnose und Alarm // Sprache:SCL(Strukturierter Text) // Funktion:Echtzeitüberwachung des Gerätezustands,Erkennung13Fehlerkategorien-Typ,Fehlercode ausgeben anHMI FUNCTION FC400_FaultDiag : Void VAR_INPUT I_SafetyOK : Bool; // Sicherheitsverriegelungsstatus I_KM1_UP : Bool; // Rückmeldung Hubschütz I_KM2_DN : Bool; // Rückmeldung Senkschütz I_Overload_Latch : Bool; // Überlastverriegelung I_OL1_OVLD : Bool; // Signal des Überlastsensors I_RunHours : Real; // Kumulierte Betriebszeit(Stunden) END_VAR VAR_OUTPUT Q_FaultCode : Int; // Fehlercode-Ausgabe anHMI Q_FaultMsg : String[40]; // Fehlerbeschreibung Q_Alarm_Output : Bool; // Ansteuerung des akustischen & optischen Signalgebers Q_TotalRunHours : Real; // Gesamtbetriebszeit END_VAR VAR vFaultCount : Int; // Fehlerzähler vPrev_KM1 : Bool; // Flankenerkennung Hubschütz vPrev_KM2 : Bool; // Flankenerkennung Senkschütz vOverloadTimer : Time; // Überlastdauer END_VAR // === Fehlererkennungsliste === Q_FaultCode := 0; // Standard: Kein Fehler Q_Alarm_Output := FALSE; vFaultCount := 0; // Standard: Kein Fehler1:Not-Halt betätigt IF I_SafetyOK = FALSE AND "SB0_EST" = FALSE THEN Q_FaultCode := 1; Q_FaultMsg := 'Not-Aus-Taster betätigt'; vFaultCount := vFaultCount + 1; END_IF; // Standard: Kein Fehler2:Oberer Endschalter ausgelöst IF "SQ1_UL" = FALSE THEN Q_FaultCode := 2; Q_FaultMsg := 'Oberer Endschalter ausgelöst(Abstand Hakenhaken zu Trommel unzureichend)'; vFaultCount := vFaultCount + 1; END_IF; // Standard: Kein Fehler3:Unterer Endschalter ausgelöst IF "SQ2_DL" = FALSE THEN Q_FaultCode := 3; Q_FaultMsg := 'Unterer Endschalter ausgelöst(Trommelseil unzureichend3Windungen)'; vFaultCount := vFaultCount + 1; END_IF; // Standard: Kein Fehler4:Thermorelais-Überlast IF "FR_OL" = FALSE THEN Q_FaultCode := 4; Q_FaultMsg := 'Motorüberlastschutz(Thermorelais ausgelöst)'; vFaultCount := vFaultCount + 1; END_IF; // Standard: Kein Fehler5:Überlast IF I_Overload_Latch THEN Q_FaultCode := 5; Q_FaultMsg := 'Überlastsicherung ausgelöst(Last>110%)'; vFaultCount := vFaultCount + 1; END_IF; // Standard: Kein Fehler6:KM1/KM2Gleichzeitiges Anziehen(Schütz klebt) IF I_KM1_UP AND I_KM2_DN THEN Q_FaultCode := 6; Q_FaultMsg := 'Schwerer Fehler:Hoch-/Niedriggeschwindigkeitsschütz gleichzeitig angezogen'; vFaultCount := vFaultCount + 1; END_IF; // Standard: Kein Fehler7:Schützrückmeldung anomal(Ausgangsbefehl und Rückmeldung stimmen nicht überein) IF ("KM1_UP" = TRUE AND I_KM1_UP = FALSE) OR ("KM2_DN" = TRUE AND I_KM2_DN = FALSE) THEN Q_FaultCode := 7; Q_FaultMsg := 'Schützantwort anomal(Möglicherweise blockiert/Spule durchgebrannt)'; vFaultCount := vFaultCount + 1; END_IF; // Bei Vorliegen eines Fehlers,Alarmausgang ansteuern IF vFaultCount > 0 THEN Q_Alarm_Output := TRUE; END_IF; // === Kumuliert während des Betriebs === Q_TotalRunHours := I_RunHours + (TIME_TO_REAL(TIME_NOW() - "Start_Time")) / 3600000.0; END_FUNCTION SCL-Fehlerdiagnose-Code für Kransteuerungen
3.1 FC400_FaultDiag (SCL-Strukturtext)
// Gerätekonfigurations-Netzwerkparameter // 1. S7-1200 CPU 1212C // IP: 192.168.0.10 // Subnetzmaske: 255.255.255.0 // PROFINETGerätename: plc-hoist-01 // 2. KTP400 Basic HMI // IP: 192.168.0.20 // Subnetzmaske: 255.255.255.0 // Gerätename: hmi-hoist-01 // 3. HMIVerbindungskonfiguration(inHMIin der Konfiguration eingestellt) // Verbindungstyp-Typ: PROFINET (S7-1200) // HMIGerät: HMI_1 [192.168.0.20] // Steuerung: plc-hoist-01 [192.168.0.10] // Zugriffspunkt: S7ONLINE // Subnetz: PN/IE_1 // 4. HMIBeispiel für Variablenverbindung(PLC tag HMI tag) // "DB1".FaultCode "FaultCode" (Int, Abtastzyklus500ms) // "DB1".Load_Current "CurrentLoad"(Real, Abtastzyklus200ms) // "DB1".Status_Running "IsRunning" (Bool, Abtastzyklus100ms)
HMI-Überwachung und Kommunikationskonfiguration
4.1 HMI-Variablentabelle und Bildschirmgestaltung
| HMIBild | Anzeigeinhalt | VerknüpfungDBVariable |
|---|---|---|
| Hauptbild | Anlagenstatus/AktuellLast/Betriebszeit | DB1.Status / DB1.Load / DB1.RunHours |
| Steuerbild | Auf am Handsender/Senken/Links am Handsender/Virtuelle Taste Rechts | für Hand-/Auto-Umschaltung |
| Störbild | Fehlercode/Beschreibung/Zeitpunkt/Reset-Taste | DB1.FaultCode / DB1.FaultMsg |
| ParameterBild | Überlast-Sollwert/Betriebszeit zurücksetzen/Passwortänderung | DB1.Overload_Set / DB1.Password |
4.2 PROFINET-Kommunikation konfigurieren (TIA Portal)
// Download-Prozess(TIA Portal V17) // 1. Gesamtprojekt kompilieren(Project Build Rebuild All) // Sicherstellen"0 errors, 0 warnings" // 2. Zielgerät auswählen(Select target device) // Online-Zugriff ErkanntPLC ZuordnenIP 192.168.0.10 // 3. Hardwarekonfiguration herunterladen(Download HW config) // wird automatisch neu gestartetPLC(ca.15Sekunden) // 4. Softwareprogramm herunterladen(Download SW) // Auswählen"Download all blocks" Vorhandenes Programm überschreiben // 5. Online-Überwachung(Go online) // Klicken"Brille"Symbol, um in den Online-Überwachungsmodus zu wechseln // Beobachten, ob der grüne Pfad im Kontaktplan wie erwartet leitet // 6. Variablen forcen(Force table)—— Für Inbetriebnahme // Kann ohne tatsächliche Tastenbetätigung gezwungen werdenDIEchtzeitüberwachung des Gerätezustands // Zum Beispiel forcen%I0.0=1Heben-Taste gedrückt simulieren // Achtung:Nach Abschluss der Inbetriebnahme unbedingt alle Forcings löschen
Programm-Download und Inbetriebnahme
5.1 Download-Schritte
5.2 Prüfliste für die Inbetriebnahme
Not-Halt betätigt: alle KM-Ausgänge = 0, Q0.4 Alarmausgang = 1
Not-Halt quittiert + oberer Endschalter nicht ausgelöst: SB1 betätigt → KM1 zieht an, Motor hebt
SB1 losgelassen → KM1 fällt ab, Motor stoppt
Während des Hebens wird SQ1 (oberer Endschalter) ausgelöst → KM1 wird sofort abgeschaltet
Bei angezogenem KM1 darf SB2 kein KM2 anziehen (Verriegelung prüfen)
Überlastsignal aktiv: Heben gesperrt, nur Senken möglich
Bei häufigen Start-Stopp-Intervallen < 500 ms bleibt der 2. Befehl ohne Reaktion (Verzögerungsschutz aktiv)
HMI-Störungsbild zeigt korrekten Fehlercode und Beschreibung
PROFINET-Kommunikation stabil (keine Alarmmeldung am HMI)
Häufig gestellte Fragen
F: Wie hoch sind die Mehrkosten, wenn die Relaissteuerung durch eine SPS-Steuerung ersetzt wird?
A: Bei einem einzelnen Elektroseilzug erhöhen sich die Hardwarekosten beim Umstieg von Relaissteuerung auf SPS-Steuerung um ca. 190–320 EUR (S7-1200 CPU ca. 100 EUR + Erweiterungsmodul ca. 75 EUR + HMI ca. 150 EUR + Zubehör ca. 40 EUR). Bei mehreren zentral gesteuerten Zügen sinken die Kosten pro Einheit jedoch deutlich – im Fall von 68 Anlagen betrug die Mehrkosten nur ca. 45 EUR pro Zug. Zudem reduziert die SPS-Lösung die Fehlersuche um 40 %, ermöglicht Fernüberwachung und vorbeugende Wartung – die langfristigen Wartungs- und Stillstandskosten liegen deutlich unter denen der Relaislösung.
F: Kann ich das Elektroseilzug-Programm auch nur mit KOP (Kontaktplan) schreiben, ohne SCL zu beherrschen?
A: Ja, absolut. Die Bausteine FC100/FC200/FC300 in diesem Artikel sind vollständig in KOP programmiert, nur FC400 (Fehlerdiagnose) verwendet SCL. Die Fehlerdiagnose lässt sich aber auch in KOP mit Statuswort und Vergleichsoperationen umsetzen – SCL ist lediglich bei String-Verarbeitung und mathematischen Operationen effizienter. Für rein anwendungsorientierte Projekte ist der Stromlaufplan-Stil von KOP für Elektrofachkräfte leichter verständlich. Empfehlung: Kernlogik in KOP, Zusatzfunktionen in SCL.
F: SPS-Steuerung oder Frequenzumrichter – was ist die richtige Wahl?
A: Die SPS-Lösung ist für die Logiksteuerung (Ein/Aus) zuständig, der Frequenzumrichter für die Drehzahlregelung. Es handelt sich nicht um eine Entweder-oder-Entscheidung. Die ausgereifteste Lösung für Elektroseilzüge ist die Kombination „SPS + Frequenzumrichter“: Die SPS übernimmt die Logik (Not-Halt, Endschalter, Verriegelung, Alarm), der Frequenzumrichter die Motoransteuerung (Sanftanlauf, Drehzahlregelung, Bremsung). Für Züge ab 5 t empfiehlt sich der Frequenzumrichter für langsames, präzises Positionieren. Für Züge unter 5 t mit einfacher Anwendung ist die Kombination SPS + Schütz völlig ausreichend.
F: S7-1200 oder S7-200 SMART – welche Steuerung ist besser geeignet?
A: Die S7-200 SMART ist kostengünstiger (CPU ca. 65 EUR) und eignet sich für Einzelsteuerungen bis ca. 10 Anlagen. Die S7-1200 unterstützt PROFINET-Echtzeit-Ethernet und ist für mehrere vernetzte Anlagen sowie die Anbindung an MES-/SCADA-Systeme geeignet. Empfehlung: Einzelanlagen/Kleinserie → S7-200 SMART (wirtschaftlich); mehrere Anlagen mit zentraler Überwachung → S7-1200 (vernetzt); bei Frequenzumrichter mit PROFINET-Kommunikation ist die S7-1200 Pflicht. Beide Plattformen verwenden dieselbe Programmierlogik, der Migrationsaufwand ist gering.
Empfohlene Normen
• JB/T 10220-2014 – Bremsen für Elektroseilzüge
• JB/T 10218-2014 – Konusläufermotoren für Elektroseilzüge
• JB/T 10219-2014 – Getriebe für Elektroseilzüge
Kelude Industriekrane – Zuverlässige Lastenlösungen für die DACH-Region
Kelude ist ein führender Hersteller von Industriekranen und Hebezeugen mit über 20 Jahren Erfahrung im internationalen Anlagenbau. Unsere Kransysteme werden speziell für den anspruchsvollen Dauerbetrieb in der deutschen und europäischen Fertigungsindustrie entwickelt – von der Automobilproduktion bis zur Schwermaschinen-Herstellung. Wir kombinieren deutsche Ingenieursstandards mit effizienten Fertigungsprozessen, um wirtschaftliche und langlebige Hebelösungen zu liefern.
F: Welche Wartungsintervalle sind für Kelude-Krane empfohlen?A: A: Grundsätzlich empfehlen wir eine Sicht- und Funktionsprüfung monatlich sowie eine umfassende Wartung alle 12 Monate. Die genauen Intervalle hängen von der Einsatzintensität und der Umgebung ab. Unsere Service-Techniker erstellen gerne einen individuellen Wartungsplan für Ihre Anlage.
F: Können Kelude-Krane an bestehende Hallenstrukturen angepasst werden?
A: A: Ja, wir bieten maßgeschneiderte Lösungen für Nachrüstungen und Erweiterungen. Unsere Ingenieure prüfen die Statik Ihrer Halle und dimensionieren die Kranbahn entsprechend. Auch Sonderlösungen wie niedrige Bauhöhen oder enge Radien sind realisierbar.
F: Welche Sicherheitszertifikate sind für Ihre Krane verfügbar?
A: A: Alle unsere Krane entsprechen der Maschinenrichtlinie 2006/42/EG und werden mit CE-Konformitätserklärung geliefert. Auf Wunsch können wir die Abnahme durch einen unabhängigen Sachverständigen (z.B. TÜV oder DEKRA) organisieren. Die Dokumentation erfolgt vollständig in deutscher Sprache.
Kontakt für individuelle Kranlösungen
Benötigen Sie eine maßgeschneiderte Hebelösung für Ihre Produktion? Unser Vertriebsteam berät Sie gerne ausführlich. Wir erstellen ein unverbindliches Angebot, das exakt auf Ihre Anforderungen zugeschnitten ist. Kontaktieren Sie uns noch heute – wir freuen uns auf Ihr Projekt.