# Baustellenampel - Steuerung



## Marvin_S (23 November 2009)

Hallo, ich bin neu hier und wende mich mit meinem ersten Beitrag direkt mit eine Frage an euch.

Undzwar folgende Aufgabe:
Eine Baustelle behindert eine Fahrtrichtung.
Von beiden Seiten aus vor der Baustelle sind für die Autofahrer eine Ampel aufgestellt.
Von beiden Seiten aus vor der Baustelle ist jeweils ein Anforderungskontakt, welcher die Ampel schalten soll.
Die Autofahrer, die von Links kommen, sollen im Einschaltzustand ( Richtimpuls ) Grün haben, die andere Seite dementsprechend rot. 
Wird nun der Anforderungskontakt von der rechten Seite betätigt, soll die linke Ampel dementsprechend umschalten auf rot und Rechts schaltet auf grün. Kommt kein Auto mehr soll die linke Ampel wieder auf Grün schalten und rechts auf Rot.

Soweit so gut.
Nun der etwas schwierigere Teil der Aufgabe :
kommen von beiden Seiten autos - also werden beide Kontakte, ich sag mal innerhalb von 5s gedrückt, so soll eine abwechselnde Ampelregelung stattfinden.

UNd genau da scheiterts bei mir.
Wenn ich die Schrittkette bis zu dem Zeitpunkt aufbaue, bis rechts der Anforderungskontakt gedrückt wird und Rechts von Rot auf Grün schaltet, dann weiß ich nicht mehr weiter. Weil ab da eine parallele Abfrage folgen müsste, wo gefragt wird ob nun wirklich nur auf der rechten Seite die Autos sind und links keines steht, oder ob bei beiden Seiten die Autos stehen und eine "wechselnde" Ampelschaltung erfolgen muss..

Ich hoffe ihr versteht mein Anliegen und könnt mir Helfen.
Wenn das in der falschen Kategorie ist, bitte ich dies zu entschuldigen.

Viele Grüße
Marvin


----------



## Philip (23 November 2009)

Mach einfach an einer anderen Stelle im Programm, zB. ein Netzwerk über deiner Schrittkette, eine Abfrage der Anforderungskontakte und speicher dir deise in einer variable (im Kopf als "stat" oder wenns sein muss in einem merker) und wenn du aus der schrittkette von rechts zurück kommst kuckst du ob in der zwischenzeit links jemand war oder umgekehrt.
Genauso kannst du dir Hilfsvariablen setzen, damit du weisst, ob zuletzt rechts oder links an der Reihe war.

Ich hoffe das hilft ein wenig.

Gruß Philip


----------



## Marvin_S (23 November 2009)

Hey, erst mal Danke für deine Antwort.

Ich habe mir auch ein paar Gedanken gemacht.
Wie wäre es wenn rechts der Kontakt berührt wird, ein Timer Starter der sich bei jedem Kontakt rechts zurücksetzt und neu startet. Läuft der Timer einmal bis zu den 5 Sekunden ab, schaltet Rechts auf Rot und Links kann passieren.
Kommen Links nun Autos und ist der rechte kontakt, nachdem der Timer abgelaufen ist , aktiviert, so fängt das Wechselprogramm an, wo alle 30 Sekunden die Ampel wechselt. Kommt jedoch kein Auto von Links so schaltet die Linke Ampel trotzdem auf Grün ( so in der Aufgabenstellung gefordert ) und Rechts schaltet auf Rot. Dann fängt es wieder von vorne an ... bis rechts der Kontakt berührt wird... 

Hmm ???

VG
Marvin


----------



## SPSneuling20 (7 Juni 2014)

Hey Leute! 
ich bin neu auf diesem Themengebiet und vom Studium aus haben wir auch grad die Baustellenampelsteuerung. 
Leider habe ich nich wirklich eine Idee dazu. Die Timer, welche man dort verwenden soll, machen mir Probleme. 
Meine Idee wäre, verschiedene zeitabhängige Merker zu programmieren und diese dann zu verknüpfen.

Hier unten findet ihr die Bilder mit der Aufgabenstellung !!


----------



## MasterOhh (7 Juni 2014)

Willkommen hier im SPS-Forum.

Fragen zu Hausarbeiten oder Laboraufgaben werden hier i.d.R. nur unterstützend beantwortet. D.h. du zeigst das du bereits selbständig eine Lösung entwickelt hast oder wenigstens einen ausführlichen Ansatz hast wie du vorgehen willst, dann werden dir die Mitglieder hier gerne in speziellen Punkten unter die Arme greifen oder dich auf die richtige Spur schicken wenn du irgendwo auf den Holzweg gerätst.

Zu deiner Aufgabe.
Was du Programmieren sollst ist eine Schrittkette. Dazu ist es unerlässlich Punkt a) der Aufgabenstellung zu lösen. Das machst du mit Papier und Bleistift. Wenn du einen Zustandsgraphen erstellt hast, ist es normalerweise ein leichtes daraus das Programm abzuleiten.
Wenn du den Graphen oder Ablaufplan erstellt hast, kannst du ihn ja hier reinstellen, dann sehen wir weiter.

Frohe Pfingsten


----------



## SPSneuling20 (7 Juni 2014)

Danke schonmal für die schnelle hilfe! 
Ich denke mein Zustandsgraph wird richtig sein, nur bei der rs tabelle  war ich mir ein wenig unsicher.. hoffe man kann es lesen und danke  schonmal für die hilfe.
bei einer schrittkette braucht man dann wohl keine merker, sondern rs bzw sr glieder oder?

Ebenfalls frohe Pfingsten


----------



## SPSneuling20 (8 Juni 2014)

Habe mich heute mal mit einem Mitstudenten zusammengesetz, der das besser beherrscht als ich. Jedoch ging bei uns der Simulationsmodus nicht. Wir haben mit "PC Worx" programmiert. Aber als wir das Programm kompiliert haben und dann unsere FUB gesendet haben, wurden uns in der "EasySim"-Tabelle  die Eingansvar. "E1_00" und Ausgangsvar. "A1_00" angezeigt, obwohl wir mit den Variablen gearbeitet haben, die auf dem Aufgabenblatt stehen. Desweiteren wurden alle Ein- und Ausgangsvariablen in der Mainv Tabelle als "False" deklariert. Nun meine Frage, ist das Programm hier richtig ? Und wenn ja, sollte ich die Ein- und Ausgangsvariablen einfach in E1,A1.... usw. ändern ??


----------

