Baustellenampel

Sedi435

Level-1
Beiträge
7
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Zusammen!

Ich bin blutiger Anfänger in Sachen SPS. Momentan programmieren wir im Kurs mit FUP.
Folgendes Problem - ich sollte eine Baustellen-Bedarfsampel im FUP erstellen. Die Vorgabe lautet:

Beim Einschalten der Anlage über S0 sind beide Ampeln Rot.
Wird ein Initiator (entweder I1 oder I2) betätigt, so schaltet die entsprechende Ampel nach 10 Sekunden auf Grün.
Die Grünphase soll mindestens 20 Sekunden andauern, bevor durch eventuelle Betätigung des anderen Initiators beide Ampeln wieder Rot zeigen.
Nach weiteren 10 Sekunden wird dann die andere Fahrspur mit Grün bedient.
Liegt kein Signal vor, so bleibt dei Ampelanlage in ihrem jeweiligen Zustand.


Das Ausschalten der Anlage darf nur nach Ablauf der Mindestgrünphase einer Fahrspur oder direkt nach dem Einschalten, vor Ansprechen eines Initiators, möglich sein.

S0 - EIN/AUS Schalter der Anlage
I1 - Initiator 1
I2 - Initiator 2
H1 - Grün Ampel 1
H2 - Grün Ampel 2
H3 - Rot Ampel 1
H4 - Rot Ampel 2

Leider bekomme ich dieses Beispiel nicht zum Laufen - bin schon ein bischen verzweifelt.
Wer kann mir einen Lösungsvorschlag geben?

Danke im Voraus
Sedi
 
Wie hast du es denn probiert, es zum Laufen zu bekommen ?
Ein kleiner Tip : es handelt sich hier um einen Ablauf - eine Schrittkette wäre also nicht schlecht.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Leider bekomme ich dieses Beispiel nicht zum Laufen - bin schon ein bischen verzweifelt.
Wer kann mir einen Lösungsvorschlag geben?

Also ich hätte einen Vorschlag.
Leichter wird es für uns alle jedoch, wenn du uns mitteilst wie weit du bist.
Was hilft es, wenn du eine Lösung geliefert bekommst, die du nicht verstehst?


bike
 
@ Lupo: hatte ich vergessen zu erwähnen bin bei Schritt 5 von 7
@ bike: Grundzustand = M0 - S0 offen keine Ampel in Betrieb
Schritt 1: M0*S0 = M1 - Beide Ampeln auf Rot (H3 & H4 ein)
Schritt 2: M1* I1 = M2 - Timer T1 wird gesetzt (10 Sekunden), beide Ampeln Rot
Schritt 3: M2*T1 = M3 - nach Ablauf der 10 Sekunden wird Timer 2 gesetzt, Ampel 1 auf Grün (H1 ein)
Schritt 4: M3*T2 = M4 - nach Ablauf der 20 Sekunden (Mindestgrünphase) ist weiterhin Ampel 1 auf Grün (H1 ein)
Schritt 5: M4*I2 = M5 - bei Betätigung von Initiator 2 (I2) werden beide Ampeln auf Rot gesetzt. Nun sollte T1 wieder anlaufen (10 Sekunden)

Leider beginnt der Timer 1 nicht wieder mit der Zeitzählung.
 
Ich erlaube mir mal für bike zu "sprechen".

Er meinte nicht, Du sollst eine Beschreibung hier ins Forum stellen, sondern Dein Programm. Bis jetzt weiß keiner, um welche Steuerung es sich handelt. Es ist zu vermuten, daß es sich um eine S7-300 handelt, aber sicher ist das nicht.
 
Teil 2 erledigt, aber was ist mit Teil 1, dem Programm? Oder hast Du noch keinen Ansatz?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Du hast doch geschrieben, Du wärst bei Schritt 5 von 7 Schritten. Ist das jetzt rein in der Theorie oder hast Du einen Programmansatz? Wenn ja, dann lade das Programm hoch.
Wenn es eine Hausaufgabe ist, kein Thema, da wird geholfen, aber es wird Dir wohl kaum jemand eine Komplettlösung geben. Hilfe kriegst Du hier immer.
 
So, hab mal versucht das Programm im AWL zu kopieren.

FC1 -
Netzwerk 1: Grundzustand
Unbetätigter Schalter S0 = Merker0
UN "S0"
S "M0"
NOP 0
NOP 0

Netzwerk 2: Schritt 1 - Beide Ampeln auf Rot
Nach einschalten der Anlage gehen beide Ampeln auf ROT
UN "H1"
UN "M2"
U "M0"
U "S0"
S "M1"
U(
ON "S0"
O "M2"
O "M5"
)
R "M1"
NOP 0
Netzwerk 3: Schritt 2 - Ansprechen des 1. Initiators(I1)Setzt den Timer T1 (10 Sekunden) - beide Ampeln auf Rot (H3&H4)
U(
U "M1"
U "I1"
O
U "M7"
U "I1"
)
S "M2"
U(
ON "S0"
O "M3"
O "T2"
)
R "M2"
NOP 0

Netzwerk 4: Schritt 3 - Setzt den Timer T2 (20 Sekunden Mindestgrünphase)Nach abgelaufenen 10 Sekunden springt Ampel 1 auf Grün (H1) um. Timer 2 läuft nun die 20s Mindestgrünphase ab.
U "M2"
U "T1"
S "M3"
U(
O "M4"
ON "S0"
)
R "M3"
NOP 0
Netzwerk 5: Schritt 4 - Mindestgrünphase aus
Nach Ablauf von T2 und betätigtem I1 bleibt H1 auf Grün.
U "M3"
U "T2"
S "M4"
U(
O "M5"
ON "S0"
)
R "M4"
NOP 0
Netzwerk 6: Schritt 5 - Ansprechen von Initiator 2 (I2)Wenn I2 anspricht gehen beide Ampeln auf Rot (H3&H4). Es muß vorher die Mindestgrünphase T2 abgelaufen sein.Timer 1 wird wieder gesetzt.
U(
U "M1"
U "I2"
O
U "M4"
U "I2"
)
S "M5"
U(
O "M2"
O "M6"
ON "S0"
)
R "M5"
U "M5"
R "H1"
R "H2"

Netzwerk 7: Schritt 6 - Ampel 2 auf GrünNach Ablauf von T1 wird Ampel 2 Grün (H2). Nun schaltet T2 (Mindestgrünphase 20s) wieder ein
U "M5"
U "T2"
S "M6"
U(
O "M7"
ON "S0"
)
R "M6"
U "M6"
R "H1"
R "H2"
Netzwerk 8: Schritt 7 - T2 abgelaufen, Ampel 2 Grün
Ab nun kann I1 wieder ansprechen.
U "M6"
U "T2"
S "M7"
U(
ON "S0"
O "I1"
)
R "M7"
NOP 0


FC2 -
Netzwerk 1: Lampen bei T1
U "M2"
U "T1"
S "H1"
R "H2"
R "H3"

Netzwerk 2: Lampen bei T2
U "I2"
U "T1"
S "H2"
R "H1"
R "H4"

Netzwerk 3: Timer 1 (T1=10 Sekunden)
Beide Ampeln Rot - H3&H4 ein
U(
O "M2"
O "M5"
)
L S5T#5S
SS "T1"
U(
O "T2"
ON "S0"
)
R "T1"
NOP 0
NOP 0
NOP 0
Netzwerk 4: Timer 2 (T2=20 Sekunden)
U(
O "T1"
O "M3"
O "M6"
)
L S5T#10S
SS "T2"
UN "S0"
R "T2"
NOP 0
NOP 0
NOP 0

Netzwerk 5:
U(
O "M1"
O
U "S0"
UN "I1"
UN "I2"
)
S M 15.3
U(
O "M6"
O "M3"
ON "S0"
)
R M 15.3
U M 15.3
S "H3"
S "H4"

Netzwerk 6: Rücksetzen bei S0 aus
S0 schaltet die Anlage aus (aber nicht in der Mindestgrünphase T2)
UN "S0"
R "H1"
R "H2"
R "H3"
R "H4"
 
Zuletzt bearbeitet:
Ist es zu viel verlangt uns mit ein bisschen Kommentar zu verwöhnen? :rolleyes:
Mit Copy & Paste sollte das doch möglich sein. ;)
 
Hallo, Sedi,

wenn du Deine Symbolik noch mit einigermaßen sinnvollen Namen versiehst, wird es nicht nur für uns, sondern auch für Dich leichter. Schreibe also nicht "M1" sondern "M_Anlauf_rot". Die Symbolik verträgt bis zu 24 Zeichen. Nutze sie aus.

So wie es aussieht, ist dein Programm auch dahingehend gebunden, dass auf alle Fälle der Sensor S1 als erstes betätigt werden muss. Was passiert aber, wenn ein Auto von der anderen Seite her kommt (S2)?

mfg

olddragon
 
Hallo bike,

Du hast ja recht, das Programm ist nicht schön. Aber er hat doch gleich in der Eröffnung geschrieben:

Hallo Zusammen!

Ich bin blutiger Anfänger in Sachen SPS. Momentan programmieren wir im Kurs mit FUP.

Nun haben wir Ihn doch aufgefordert, sein Programm zu zeigen, hat er auch gemacht, also lass uns helfen und nicht nur "draufhauen". ;)

Mir ist als erstes aufgefallen, daß im FC1 NW1 der Merker M0 zwar gesetzt, aber im Rest des Programms nirgendswo rückgesetzt wird.
 
Nun haben wir Ihn doch aufgefordert, sein Programm zu zeigen, hat er auch gemacht, also lass uns helfen und nicht nur "draufhauen". ;)


Stimmt, hauen wollte ich eigentlich nicht. ;-)
Nur soll ein gutes Programm heraus kommen.

Also, man setzt keine Ausgänge.
An der Stelle an der gesetzt wird soll auch wieder zurückgesetzt werden.

Es wird anstrengend, wenn an verschiedenen Stelle mehrmals gesetzt und wieder zurückgesetzt wird.


bike
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Zusammen!

Ich habe für konstruktive Kritik immer ein Ohr offen ;)
Hab die Lösung gefunden - es funktioniert :D

Danke Euch allen für die Bemühungen! Ich hoffe doch, dass ich mich bei Bedarf wieder melden kann!
Wünsche Euch noch einen schönen Abend!
 
1. Du kannst immer fragen - dafür sind Foren schließlich da. ;)

2. Es wäre nett, wenn Du Deine Lösung hier postest - zum Einen könnte wieder mal jemand sowas in der Art suchen und zum Anderen sind hier viele erfahrene Programmierer, die Dir gern auch Verbesserungspotential zeigen und vor allem auch erklären. Dabei wird eigentlich auch immer Wert darauf gelegt, daß der Fragendende den Sinn/Grund auch versteht, anstatt einfach nur fertige/bessere Lösungen zu präsentieren.
 
Zurück
Oben