Hallo!
Habe folgendes Problem: Ich bin ein blutiger Anfänger beim SPS programmieren. Ich habe mich erst seit kurzem in die Thematik eingelesen und mir intensiv alle Befehle durchgelesen. Zeitfunktionen habe ich in der Theorie verstanden.
Daher wollte ich mich an meine erste Schaltung ranwagen: Die Ampelkreuzung besteht aus einer dreifarbigen Autoampel und einer zweifarbigen Fußgängerampel.
Wenn der Fußgänger E0.2 drückt, wird nach einer Wartezeit die Autoampel von grün auf gelb auf rot auf rotgelb und wieder zurück auf grün geschaltet - die Fußgängerampel schaltet von rot auf grün und wieder zurück auf rot.
Soviel zu den theoretischen Rahmenbedingungen.
Mein erstes praktisches Problem ist, soll ich nach abgelaufener Timerzeit T dann auf UN T abfragen oder soll ich über die negative Flanke von T (also FN T) abfragen?
Mein zweites Problem ist, sind die Befehle SE und SS austauschbar? Spontan würde ich sagen, dass nur SS zum Einsatz kommt, weil der ja "nicht so leicht verloren gehen kann", sprich SS ist 00 resistent.
Ich habe eigentlich alles über die Befehle U T, UN T, SI und SS gemacht.
Mein drittes Problem ist, dass ich mit den Sprungbefehlen nicht klar komme, obwohl ich die der Theorie nach verstanden habe. Ich habe SPB für VKE=1 und SPBN für VKE=0 verwendet. Aber irgendwie hakt der Simulator :x:confused:!!
Hier ist der Quellcode:
a: U E 0.0 // Start
SPBN b
S A 1.0 // rot (Fußgänger) an
R A 1.1 // grün (Fußgänger) aus
R A 1.2 // rot (Auto) aus
R A 1.3 // gelb aus
S A 1.4 // grün (Auto) an
b: U E 0.1 // CLEAR
CLR
U E 0.2 // Fußgänger Button
SPBN a
L S5T#20S
SS T 1 // Setzen Speicher-Eingabe-Verzögerung = Timer1 = 20s
UN T 1
L S5T#3S
SI T 2 // Setzen Impuls Gelbphase = Timer2 = 3s
U T 2
R A 1.4 // grün (Auto) geht aus
S A 1.3 // gelb geht an
UN T 2
R A 1.3 // gelb geht aus
L S5T#10S
SI T 3 // Setzen Impuls Rotphase (Auto) = Timer3 = 10s
U T 3
S A 1.2 // rot (Auto) geht an
L S5T#4S
SS T 4 // Setzen Speicher-Eingabe-Verzögerung = Timer4 = 4s
UN T 4
L S5T#10S
SI T 5 // Setzen Impuls Grünphase (Fußgänger) = Timer5 = 10s
U T 5
R A 1.0 // rot (Fußgänger) geht aus
S A 1.1 // grün (Fußgänger) geht an
UN T 5
R A 1.1 // grün (Fußgänger) geht aus
S A 1.0 // rot (Fußgänger) geht an
L S5T#4S
SS T 6 // Setzen Speicher-Eingabe-Verzögerung = Timer6 = 4s
UN T 6
L S5T#3S
SI T 7 // Setzen Impuls Rotgelbphase = Timer7 = 3s
U T 7
S A 1.3 // rot (Auto) bleibt an; gelb geht zu rotgelb an
UN T 7
SPB a
Habe folgendes Problem: Ich bin ein blutiger Anfänger beim SPS programmieren. Ich habe mich erst seit kurzem in die Thematik eingelesen und mir intensiv alle Befehle durchgelesen. Zeitfunktionen habe ich in der Theorie verstanden.
Daher wollte ich mich an meine erste Schaltung ranwagen: Die Ampelkreuzung besteht aus einer dreifarbigen Autoampel und einer zweifarbigen Fußgängerampel.
Wenn der Fußgänger E0.2 drückt, wird nach einer Wartezeit die Autoampel von grün auf gelb auf rot auf rotgelb und wieder zurück auf grün geschaltet - die Fußgängerampel schaltet von rot auf grün und wieder zurück auf rot.
Soviel zu den theoretischen Rahmenbedingungen.
Mein erstes praktisches Problem ist, soll ich nach abgelaufener Timerzeit T dann auf UN T abfragen oder soll ich über die negative Flanke von T (also FN T) abfragen?
Mein zweites Problem ist, sind die Befehle SE und SS austauschbar? Spontan würde ich sagen, dass nur SS zum Einsatz kommt, weil der ja "nicht so leicht verloren gehen kann", sprich SS ist 00 resistent.
Ich habe eigentlich alles über die Befehle U T, UN T, SI und SS gemacht.
Mein drittes Problem ist, dass ich mit den Sprungbefehlen nicht klar komme, obwohl ich die der Theorie nach verstanden habe. Ich habe SPB für VKE=1 und SPBN für VKE=0 verwendet. Aber irgendwie hakt der Simulator :x:confused:!!
Hier ist der Quellcode:
a: U E 0.0 // Start
SPBN b
S A 1.0 // rot (Fußgänger) an
R A 1.1 // grün (Fußgänger) aus
R A 1.2 // rot (Auto) aus
R A 1.3 // gelb aus
S A 1.4 // grün (Auto) an
b: U E 0.1 // CLEAR
CLR
U E 0.2 // Fußgänger Button
SPBN a
L S5T#20S
SS T 1 // Setzen Speicher-Eingabe-Verzögerung = Timer1 = 20s
UN T 1
L S5T#3S
SI T 2 // Setzen Impuls Gelbphase = Timer2 = 3s
U T 2
R A 1.4 // grün (Auto) geht aus
S A 1.3 // gelb geht an
UN T 2
R A 1.3 // gelb geht aus
L S5T#10S
SI T 3 // Setzen Impuls Rotphase (Auto) = Timer3 = 10s
U T 3
S A 1.2 // rot (Auto) geht an
L S5T#4S
SS T 4 // Setzen Speicher-Eingabe-Verzögerung = Timer4 = 4s
UN T 4
L S5T#10S
SI T 5 // Setzen Impuls Grünphase (Fußgänger) = Timer5 = 10s
U T 5
R A 1.0 // rot (Fußgänger) geht aus
S A 1.1 // grün (Fußgänger) geht an
UN T 5
R A 1.1 // grün (Fußgänger) geht aus
S A 1.0 // rot (Fußgänger) geht an
L S5T#4S
SS T 6 // Setzen Speicher-Eingabe-Verzögerung = Timer6 = 4s
UN T 6
L S5T#3S
SI T 7 // Setzen Impuls Rotgelbphase = Timer7 = 3s
U T 7
S A 1.3 // rot (Auto) bleibt an; gelb geht zu rotgelb an
UN T 7
SPB a