Jump to content

Ampelsystem


Michael65

Empfohlene Beiträge

vor 8 Minuten schrieb Michael65:

keine Ahnung was die Variablen bedeuten

Hallo Michael,

Variablen benutzt man immer dann, wenn man sich etwas für später merken muss.
Für die Ampelsteuerung benötigst du keine.

 

vor 9 Minuten schrieb Michael65:

Falls es auch anders geht ...

Es ist riskant, die Ampeln durch Fahrzeuge umschalten zu lassen. 
Die Fahrzeuge sollen den Ampeln gehorchen, nicht umgekehrt.

Und bevor du einer anderen Richtung Grün gibst, müssen zunächst alle Ampeln auf Rot stehen. Denn diejenigen, die noch bei Gelb auf die Kreuzung gefahren sind, müssen genügend Zeit haben diese noch zu verlassen, bevor der Verkehr aus der anderen Richtung losfahren darf. Achte mal bei deiner nächsten Autofahrt darauf. Oder (besser noch) wenn du als Fußgänger an eine Kreuzung kommst.

Viele Grüße
Götz

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 13 Minuten schrieb Michael65:

ich weiß jetzt nicht was ich falsch mache.

Hallo Michael,

Erstens startest du die Ampelsequenz beim Betreten eines Gleiskontakts.
Dann läuft sie einmal für alle drei Ampeln durch und bleibt stehen, bis der Gleiskontakt erneut überfahren wird.

Zweitens wird die Ampel 3 in dieser Sequenz nur auf Rot-Gelb und auf Grün geschaltet, aber nicht auf Gelb und auch nicht auf Rot.

Und drittens hast du zwei Bedingungen im Ablauf, die überhaupt nichts tun. 
Bedingungen haben zwei Felder innerhalb dieser gelben Klammer. Eins für "Bedingungen sind erfüllt und eins für "Bedingungen sind nicht erfüllt".
Zweck dieser Bedingungen ist, dass bestimmte Aktionen nur in einem der beiden Fälle ausgeführt werden. Du hast die Felder leer gelassen. Damit tun diese Bedingungen gar nichts. Aber es gibt auch keinen Grund, solche Bedingungen in den Ablauf einzufügen. 

Viele Grüße
Götz

Link zu diesem Kommentar
Auf anderen Seiten teilen

17 hours ago, Michael65 said:

... I don't know what I'm doing wrong now ...

If I may ...

There appears to be a general misunderstanding here. Ignore the cars for now, and just think about the lights. They should change, in a set sequence, with or without cars. You'll want a routine (a set of EV instructions ...) that will do this. The lights go from red, to red / amber, to green, then amber and back to red. They then have to go back and start again, all of this independently of any cars.

The cars would normally just drive, and will only stop if they come to a track contact which has an event with a condition 'stop if the light is red'. If that condition is met, the car stops. When the lights change (as they will, obeying their own sequence ...), the condition in the track contact is not longer 'stop', and so the car picks up speed to continue.

That's the basics of it, so get the lights sequence working first, with no cars, then put in just one track contact with such events. Once you have that one working, you should be able to put in more for the other road sections. Get one, alone, working first; come back here if you get stuck again ... 

Wenn ich darf ...

Hier scheint ein allgemeines Missverständnis vorzuliegen. Ignorieren Sie die Autos vorerst und denken Sie nur an die Lichter. Sie sollten sich in einer festgelegten Reihenfolge mit oder ohne Autos ändern. Sie benötigen eine Routine (eine Reihe von EV-Anweisungen ...), die dies tut. Die Lichter wechseln von Rot zu Rot / Bernstein, zu Grün, dann zu Gelb und zurück zu Rot. Dann müssen sie zurückfahren und neu starten, und das alles unabhängig von irgendwelchen Autos.

Die Autos würden normalerweise einfach fahren und nur anhalten, wenn sie zu einem Gleiskontakt kommen, bei dem ein Ereignis mit der Bedingung "Stopp bei Rot" vorliegt. Wenn diese Bedingung erfüllt ist, stoppt das Auto. Wenn die Ampel wechselt (wie sie wollen, ihrer eigenen Reihenfolge folgend ...), ist der Zustand im Gleiskontakt nicht mehr 'Halt', und so nimmt das Auto Fahrt auf, um weiterzufahren.

Das sind die Grundlagen, also lassen Sie die Lichtersequenz zuerst ohne Autos funktionieren und stellen Sie dann nur einen Streckenkontakt mit solchen Ereignissen her. Sobald dieser funktioniert, sollten Sie in der Lage sein, mehr für die anderen Straßenabschnitte zu verwenden. Holen Sie sich einen, allein, der zuerst arbeitet; komm hierher zurück, wenn du wieder feststeckst...

Bearbeitet von Dad3353
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Michael,
Doug hat da eigentlich schon eine Antwort gegeben, leider ist die Übersetzung auf der Strecke geblieben, deshalb hier nochmal:

"
Wenn ich darf...

Es scheint hier ein allgemeines Missverständnis zu geben. Ignorieren Sie vorerst die Autos und denken Sie nur an die Lichter. Sie sollten sich in einer bestimmten Reihenfolge ändern, mit oder ohne Autos. Sie brauchen eine Routine (eine Reihe von EV-Anweisungen ...), die dies tut. Die Ampel schaltet von rot auf rot/gelb, auf grün, dann auf gelb und wieder auf rot. Dann müssen sie zurückfahren und wieder starten, unabhängig von den Autos.

Normalerweise würden die Autos einfach fahren und nur anhalten, wenn sie auf eine Strecke treffen, auf der es ein Ereignis mit einer "Halt bei Rot"-Bedingung gibt. Wenn diese Bedingung erfüllt ist, wird das Auto anhalten. Wenn die Ampel umschaltet (wie Sie es wünschen, in ihrer eigenen Reihenfolge ...), ist der Zustand des Streckenkontakts nicht mehr "Halt", und das Auto nimmt die Geschwindigkeit wieder auf, um weiterzufahren.

Das sind die Grundlagen, also sorgen Sie dafür, dass die Ampelsequenz zunächst ohne Autos funktioniert, und stellen Sie dann nur bei solchen Ereignissen den Fahrbahnkontakt her. Sobald dies funktioniert, sollten Sie in der Lage sein, mehr auf den anderen Streckenabschnitten zu verwenden. Bringen Sie zuerst eine allein zum Laufen; kommen Sie hierher zurück, wenn Sie wieder nicht weiterkommen ..."

Übersetzt mit www.DeepL.com/Translator (kostenlose Version)

---------------------------------------------------------------------

und ja, ich habe in meiner Anlage die Ampel in mehrere Einzelschritte zerlegt, die mit Verzögerungen arbeiten und am Ende den nächsten Schritt auslösen (Setzen einer Variablen, die die Schrittnummer beinhaltet). Da sind in der Reihenfolge die Schritte 'ganz aus', 'gelb blinken', 'alles rot', normaler Ablauf und beim Abschalten in umgekehrter Reihenfolge. Die Beeinflussung der Gleiskontakte geht von diesen Schritten aus.

Gruß
  Andy

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Michael,

vor 37 Minuten schrieb Michael65:

gibt es eine Möglichkeit das alles ohne Gleiskontakt zu machen

Ja, die gibt es.
Ich bereite gerade ein Video zu diesem Thema vor.

Ein Timer kann den Ampelzyklus immer wieder anstoßen.
Aber er hat den Nachteil, dass du seine Dauer ändern musst, wenn du die Länge der einzelnen Ampelphasen änderst.

Deshalb bevorzuge ich einen anderen Ansatz:

Ich erstelle für jede Fahrtrichtung ein Ereignis vom Typ Benutzerdefiniert.
Solch ein Ereignis hat keinen Auslöser. Aber es kann in der EV mit der Aktion Benutzerdefiniertes Ereignis auslösen gestartet werden.
Wenn ich nun am Ende des Ereignisses für die Fahrspur Nord-Süd das Ereignis für die Spur Ost-West starte 
und umgekehrt im Ereignis Ost-West am Ende das Ereignis Nord-Süd auslöse
dann wechseln sich beide ständig ab.

Ich muss nur einmal zu Beginn diesen ständigen Wechsel in Gang bringen. Und dafür richte ich mir eine Taste ein.
Diese taste gibt mir dann als Bonus auch die Möglichkeit, den Ampelzyklus bei Bedarf anzuhalten.

Das Ergebnis ist eine EV, die sehr überschaubar und pflegeleicht ist.

Wenn ich das Video fertig habe, stelle ich die Versuchsanlage gerne als Beispiel zur Verfügung.

Viele Grüße
Götz

P.S.: Danke @Andyfür die Übersetzung von Douglas Text

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich versuche alles mögliche, aber ich Probiere weiter, komme bis jetzt nicht wie es funktioniert.
Entweder ich bin zu blöd dafür oder ich bin zu alt geworden9_9

Kann mir vielleicht jemand eine Test Modell senden, damit ich es verstehen kann. Habe ich es einmal verstanden dann behalte ich es auch im Kopf

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

 

1 hour ago, Michael65 said:

...Maybe someone can send me a test model so I can understand. Once I understand it, I keep it in my head

Here's the system I use. As stated above, the Timer has to have the same value as the total of the Delays. I don't find it to be a big problem.

Hier ist das System, das ich verwende. Wie oben erwähnt, muss der Timer den gleichen Wert wie die Summe der Delays haben. Ich finde es kein großes Problem.

 

Traf_Ligh.mbp

(Credit for the original version has to go to JimKnopf...)

(Der Kredit für die Originalversion muss an JimKnopf gehen...)

Bearbeitet von Dad3353
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 33 Minuten schrieb Michael65:

sage mir bitte bescheid

Hallo Michael,
mit dem Video wird es eventuell noch etwas dauern.

Unter den Tutorial Anlagen findest du jetzt meine Versuchsanlage nach meinem ersten Probelauf:

20F2B5B8-FAC2-403A-A063-DC084515941A

54314484_VorschauKreruzungsanlage.jpg.7e0661f8a2fd473fd9acd0c449490358.jpg

Mit dem roten Knopf schaltest du den Ampelzyklus ein und aus
Der grüne Knopf ist für den Straßenverkehr.

Viel Spaß beim Studium der Anlage
Götz

Bearbeitet von Goetz
Bild hinzugefügt
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Michael,

vor 21 Minuten schrieb Michael65:

denke ich habe es einigermaßen hinbekommen

Das ist doch schon gar nicht schlecht. (y)
Und es wird dir helfen, die Vorschläge anderer zu verstehen.
Weil du im Vergleich erkennen kannst, warum sie bestimmte Dinge anders gemacht haben.

Beispielsweise ist deine Aktionsliste sehr lang, weil sie alle Ampeln enthält.
Wenn man für jede Ampel eine eigene Liste schreibt, sind die einzelnen Listen kürzer und leichter zu bearbeiten.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto besitzen, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen.

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...