Ampelsteuerung

m0erk

Level-1
Beiträge
31
Reaktionspunkte
3
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Tag,

bin neu hier im Forum - hab die Suchfunktion schon bemüht aber bin zu keinem wirklich guten Ergebnis gekommen.

Es dreht sich hier um folgendes: Eine Ampelkreuzung mit Haupt und Nebenstraße und jeweils Linksabbieger mit eigener Ampel.

Also Quasi 8 Autoampeln und 4 Fussgängerüberwege. Ich will das ganze gerne so realistisch wie möglich halten. Also mit Grünanforderung und evtl auch Nachtschaltung. Bis jetzt habe ich das ganze über einen Ablauf realisiert der die Ampeln nach bestimmten Zeiten weiter in den nächsten Schritt schaltet. Jetzt habe ich das ganze so angepasst, dass alle Ampeln in der Grundstellung auf Rot stehen und je nach Anforderung diese mittels Verzweigung ausgeführt wird und dann wieder in die Grundstellung. Die Grundstellung wird nach 15 s untätigkeit verlassen und beginnt einen Automatischen Ablauf zu starten, den man nach jedem durchlauf der Grundstellung durch Grünanforderung verlassen kann. Das ganze habe ich mal hochgeladen, ist ein codesys v2.3 programm.

Das funktioniert soweit eigentlich ganz gut. Nun meine eigentliche Frage: welche alternativen Möglichkeiten habe ich, dieses Programm zu realisieren.
Evtl. mal auf einem ganz anderen weg?`Außerdem: Ist die Umsetzung, wie sie bisher ist, sinnvolll? Oder gibt es irgendwelche Fehler, die mir bislang nicht aufgefallen sind? Und letztlich: Wie kriege ich da noch den Nachtmodus reingebastelt?

Ich würde mir einige alternative Lösungswege wünschen, oder zumindest Ansätze, Stichworte oder ähnliches.

Projekt: Ampelkreuzung
Anhang anzeigen AMPEL.zip
 
Hallo,

wenn keine Vergleiche/Entscheidungen oder so durchgeführt werden müssen ist es ja eigentlich nur eine sture Folgeschaltung.
Dann kannst du ja einfach 100 Schritte anlegen die alle Sekund um eins hochzählt und bei 100 wieder auf null geht

Dann sagst du:
Ampel1_Gruen=(Schritt=1 or Schritt=6)
Ampel1_Gelb=(Schritt=2)
Ampel1_Rot=(Schritt=3 or Schritt=17)
Ampel2_Gruen=(Schritt=11 or Schritt=8)
Ampel2_Gelb=(Schritt=20)
Ampel2_Rot=(Schritt=33 or Schritt=77)

usw...

Nur ein einfacher Vorschlag...

MfG CAS
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Vielen Dank für deine Antwort, CAS.

Die Idee der Schrittfolge finde ich erstmal ganz gut, wobei ich das schon ähnlich realisiert habe, nur eben mit Transitions bedingungen die auf den Q ausgang einem Zeitbaustein reagieren und weiter in den nächsten Schritt schalten.
Aber die Schrittsteuerung hat einige Vorteile gegenüber meiner Steuerung. Sag mir dochmal bitte in kurzen Schritten, wie ich sowas jetzt genau in CoDeSyS realisiere?

Abgesehen davon: genau, dass was ich brauche sind ja Vergleiche und Entscheidungen:

Beispiel: Es werden an allen Ampeln gleichzeitig Grün angefordert. Dann muss an ja definiert sagen können, welche Ampel zu erst Grün bekommt.
Oder an der einen Ampel wird Grün angefordert und nach dem Rot schalten der Ampel direkt wieder Grün angefordert, dann sollte eine gewisse Pause kommen, bis Grün erneut geschaltet wird. Ich brauche also eine Art abbruchbedingung aus dem Ablauf, der nach Durchlauf wieder an eine definierte Stelle springt, oder so. Ich habe im moment keine Idee, wie ich das genau umsetzen soll.

Dazu muss ich sagen, dass ich erst seit ca. einer Woche mit SPS Programmierung zu tun habe, bin also noch blutiger Anfänger....

Greez, m0erk.
 
ich würde das so machen:

Mann könnte glatt für jede Ampel und Farbe ein Array anlegen (0...100 BOOL) und dem Programm sagen, wenn der Inahlt als
z.B.:
Ausgang_Ampel1_Rot;=Ampel1_Rot[Sekunde];
Ausgang_Ampel1_Gelb;=Ampel1_Gelb[Sekunde];
Ausgang_Ampel1_Gruen;=Ampel1_Gruen[Sekunde];

Und die Array machst du über die VISU bearbeitbar, dann kannst du während das Programm läuft die Farbanpassungen online bestimmen. Sind Die Array pristent dann sind diese sogar noch gespeichert...

Wenn eine Störung der Ampel vorliegt, könnte man den Bereich statt 0..100 auf 101-105 setzen und dort das Blinken (Gelb) definieren , Wenn der Bundeskanzler kommt dann Bereich 106...108 (Alles rot) usw...


MfG CAS
 

Anhänge

  • Ampel.JPG
    Ampel.JPG
    22 KB · Aufrufe: 80
Zuletzt bearbeitet:
ich finde die idee wirklich gut, leider weiss ich nicht genau, wie ich das jetzt in codesys umsetze. wie lasse ich denn die einzelnen zellen der arrays weiterlaufen? auch das drumherum ist mir noch nicht 100% klar. aber ich werde mal versuchen das zu realisieren, danke so weit!
 
vielen dank, ich denke das reicht, um mich dran lang zu hangeln ;)

PS: habs jetzt hinbekommen, zwar etwas anders als in deinem beispiel aber es folgt der gleichen idee.. jetzt meine neue frage: wie initialisiere ich denn jetzt am besten die ampelphasen? da müsste ich ja dann die 100 zellen von jedem array von hand eingeben, könnte man das nicht irgendwie geschickter machen?
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
das ist mir schon klar :D

ich hab nur noch nicht ganz verstanden, wie man jetzt in der visualisierung die arrays ändern kann.

ich hab also pro ampel drei arrays mit je 100 feldern. bis ich die von hand initialisiert habe is weihnachten :D
 
Hab meine Ampelschaltung nun Fertig.
Kurze Funktionsübersicht: Ampelkreuzung mit Bedarfsanforderung für alle Teilnehmer -> Fussgänger / Linksabbieger / Geradeaus. Mit FIFO zur einhaltung der richtigen Reihenfolge der Grünanforderung. Zusätzlich eine "Feuerwache" mit EINSATZ Button, der die Ampel schnellst möglich für die Feuerwehr freischaltet. Und eine kleine Nachtabschaltung mit Blinklicht der vorfahrtgewährenden Straße.

Über anregungen oder weitere Ideen würde ich mich sehr freuen!

Grüße.
m0erk.


Anhang anzeigen Ampel_Anforderung_V2.zip


PS: Zum Starten muss man einmalig den "EIN" Button betätigen. Danach ist der Ablauf komplett automatisiert.
 
Zuletzt bearbeitet:
Zurück
Oben