spstiger

Erstellung eines SPS-Programms zur Steuerung eines Drehstrommotors mit Rechts- und Linkslauf sowie Stopp-Funktion. Die Steuerung beinhaltet eine zeitverzögerte Umschaltverriegelung, eine Not-Halt-Funktion, eine Reset-Logik sowie die Überwachung des Motorschutzes. Zusätzlich sind entsprechende Meldeausgänge für den Betriebszustand und Störungen zu implementieren.
Also ich nähere mich einem Ergebnis 😃
Let me design this system:
Inputs:
- %I0.0 - Start Right (Start Rechts)
- %I0.1 - Start Left (Start Links)
- %I0.2 - Stop/Reset (Stopp/Reset)
- %I0.3 - Emergency Stop (Not-Halt)
- %I0.4 - Motor Protection OK (Motorschutz OK)
Outputs:
- %Q0.0 - Right rotation contactor (Rechtslauf-Kontaktormotor)
- %Q0.1 - Left rotation contactor (Linkslauf-Kontaktormotor)
- %Q0.2 - Status Running (Betriebsstatus)
- %Q0.3 - Fault indicator (Störmelder)
Internal:
- %M0.0 - Right running flag
- %M0.1 - Left running flag
- %M0.2 - Interlock timer active
- %M0.3 - Emergency stop state
- %M0.4 - Motor protection fault
- %M0.5 - System ready
Timers:
- T0 - Direction change delay (e.g., 1 second = 10 units)
- T1 - Fault reset delay (e.g., 2 seconds = 20 units)
Counters:
- C0 - Motor protection fault counter (optional, for tracking faults)
I'll structure this with initialization on first scan, emergency stop handling, direction control with interlock timing, motor protection monitoring, and status/fault indicators. Each network will have exactly one output instruction at the end.
</think>
(* Network 0 *)
(*System initialisierung: Reset aller Ausgänge und Flags auf ersten Scan*)
LD %SM0.1
R %Q0.0
R %Q0.1
R %Q0.2
R %Q0.3
R %M0.0
R %M0.1
R %M0.2
R %M0.3
R %M0.4
(* Network 1 *)
(*Not-Halt Logik: Not-Halt I0.3 setzt M0.3 und stoppt alle Motoren*)
LD %I0.3
S %M0.3
R %Q0.0
R %Q0.1
(* Network 2 *)
(*Motorschutzüberwachung: Wenn Schutz nicht OK, setze Fehlerflag M0.4*)
LDN %I0.4
S %M0.4
(* Network 3 *)
(*Not-Halt Reset Logik: I0.2 resetet Not-Halt wenn keine Störung vorliegt*)
LD %I0.2
ANDN %M0.3
ANDN %M0.4
R %M0.3
(* Network 4 *)
(*Rechtslauf Start Logik: I0.0 startet Rechtslauf bei OK-Bedingungen*)
LD %I0.0
ANDN %M0.3
ANDN %M0.4
ANDN %M0.1
ANDN %T0
S %M0.0
(* Network 5 *)
(*Linkslauf Start Logik: I0.1 startet Linkslauf bei OK-Bedingungen*)
LD %I0.1
ANDN %M0.3
ANDN %M0.4
ANDN %M0.0
ANDN %T0
S %M0.1
(* Network 6 *)
(*Rechtslauf Stop Logik: I0.2 stoppt Rechtslauf*)
LD %I0.2
R %M0.0
(* Network 7 *)
(*Linkslauf Stop Logik: I0.2 stoppt Linkslauf*)
LD %I0.2
R %M0.1
(* Network 8 *)
(*Umschaltverriegelung Timer T0: Zeitverzögerung beim Richtungswechsel*)
LDN %T0
TON T0, 10
(* Network 9 *)
(*Rechtslauf Kontaktormotor Q0.0: Wenn M0.0 aktiv und keine Störung*)
LD %M0.0
ANDN %M0.3
ANDN %M0.4
ST %Q0.0
(* Network 10 *)
(*Linkslauf Kontaktormotor Q0.1: Wenn M0.1 aktiv und keine Störung*)
LD %M0.1
ANDN %M0.3
ANDN %M0.4
ST %Q0.1
(* Network 11 *)
(*Betriebsstatus Anzeige Q0.2: Motor läuft wenn Rechts oder Links aktiv*)
LD %M0.0
OR %M0.1
ST %Q0.2
(* Network 12 *)
(*Störmelder Q0.3: Leuchtet bei Not-Halt oder Motorschutzfehler*)
LD %M0.3
OR %M0.4
ST %Q0.3
(* Network 13 *)
(*Fehler Reset Logik: I0.2 resetet Fehler wenn kein Not-Halt aktiv*)
LD %I0.2
ANDN %M0.3
R %M0.4
aber nicht weiter getestet. ist halt viel Gefummel :/