Jump to content

Abfahrt am Signal mit individueller Höchstgeschwindigkeit


AndreasWB

Empfohlene Beiträge

Hallo,

nachdem ich nun das Anhalten vor einem Signal und anschließendes wieder Losfahren durch eine weitgehend generalisierte Ereignis-Funktion realisieren konnte, stellt sich die Frage, wie man mit Fahrzeugen umgeht, deren max. Höchstgeschwindigkeit unter der erlaubten Streckengeschwindigkeit liegt.

Meine erste Lösung benötigt die Übergabe der zulässigen Höchstgeschwindigkeit des Fahrzeugs an das Signal. Dies bewerkstellige ich durch das Auslösen des Stop-Kontakts beim Anhalten des Fahrzeugs. Schaltet das Signal die Fahrt frei, so steht in einer neuen Eigenschaft des Signals nun die max. Höchstgeschwindigkeit des Fahrzeugs zur weiteren Verarbeitung in der Ereignissteuerung zur Verfügung. (siehe Anhang) Die weitere Ausführung der  Auswahl der niedrigeren Geschwindigkeit konnte ich auch noch nicht realisieren.
Allerdings würde ich hier gerne den Verweis auf das dem Kontakt zugehörige Signal als weitere Variable dem Kontakt zuordnen (realisiert) und dann den Gesamtformalismus generalisieren ( "[Kontakt].Signal.LokVmax = [Fahrzeug].Vmax". - ".Signal" ist hier die neue Objekt-Variable, die ich beim Bremskontakt hinzugefügt habe (als Zeiger auf das Signal, zu dem der Bremskontakt gehört).
Das Problem: Einem Objekt nachträglich hinzugefügte Eigenschaften (Variablen) sind beim Ereignis-Design nur für konkrete Objekte, nicht aber bei Verallgemeinerung auswählbar.
[Fahrzeg] statt "Diesellok V100".

Ferner halte ich es für sinnvoll, der Klasse Fahrzeu die Eigenschaft Vmax für die zulässige Höchstgeschwindigkeit hinzuzufügen.
So kann ich jetzt nur eine weitere Variable Vmax anlegen, die aber bei der generalisierten Auswahl [Fahrzeug] nicht zur Verfügung steht.

Gruß

Andreas

Informationsübertrag.jpg

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Andreas,

vor einer Stunde schrieb AndreasWB:

Allerdings würde ich hier gerne den Verweis auf das dem Kontakt zugehörige Signal als weitere Variable dem Kontakt zuordnen (realisiert) und dann den Gesamtformalismus generalisieren

Du kannst die Objektadresse einer erweiterten Variable ein zweites Mal (und öfter) erweitern.
Klick dafür auf das Zahnrad neben der Objektangabe und wähle dort noch einmal "Variable(erweitert)" aus.

416778578_Vmaxbergabe.jpg.fc4e298667f2f7dc0e6b77a68e0d5283.jpg

 

vor einer Stunde schrieb AndreasWB:

Die weitere Ausführung der  Auswahl der niedrigeren Geschwindigkeit konnte ich auch noch nicht realisieren.

Bei Bedingungen kannst du mit einem Klick auf das = Zeichen andere Vergleiche auswählen

573121265_VmaxVergleich.jpg.529b78d033ded64ce8cac16ce05f8411.jpg

 

Wenn ich deine Probleme richtig verstanden habe, müssten dich diese beiden Antworten weiterbringen.
Und mit einem Klick auf das <> Symbol siehst du das Ganze anschließend in Skript Form.
Das ist auf Dauer für jemanden wie dich sicher die angenehmere Art, solche Dinge zu entwerfen.
Die grafische EV hilft aber enorm beim Finden der jeweils benötigten Schreibweisen. 

Gruß
Götz

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Goetz,

hm, bisher hatte ich das Problem, daß bei genau der Methode, die Du zeigst, dieser Mechanismus bei Aufruf "Auslöser" zwar die generalisierte Klasse "Signal" anzeigt, aber die von mir dem Hauptsignal individuell hinzugefügte Eigenschaft (Variable) LokVmax nicht zur weiteren Auswahl anbietet.

Gruß

Andreas

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo @AndreasWB,

sicher ist es nur eine Kleinigkeit, die dir den Spaß vermasselt.

Weil ich nicht einschätzen kann, wo es genau hakt, habe ich die ganze Prozedur für dich als Video aufgenommen. Das Video ist unkommentiert. Aber ich bemühe mich, jeden Schritt langsam und deutlich auszuführen in der Hoffnung, dass du an entscheidender Stelle siehst: "Ach, das macht Götz anders als ich."

 

Nachtrag:

Ich habe beide Ereignisse konkret für einen spezifischen Auslöser erstellt und nicht für "alle Objekte mit Schlagwort xy"
Das könnte an manchen Stellen einen Unterschied machen.

Du siehst beispielsweise in meiner Bedingung "Signal steht auf" als Auswahl nur drei Stellungen mit ihren Namen. Hätte ich als Auslöser mehrere Signale angegeben, dann bekäme ich stattdessen die Zahlen von 1 bis 47 ohne Bezeichnungen zur Auswahl.

Und so kann es auch sein, dass du an der einen oder anderen Stelle eine etwas andere Auswahl siehst, weil du von Anbeginn als Auslöser alle Objekte einer bestimmten Kategorie angibst. Wenn das die Hürde ist, dann erstelle die Aktionsliste zunächst für ein konkretes Objekt und ändere zum Schluss oben den Auslöser auf "alles mit Schlagwort xy".

Ich habe die ganze Prozedur jetzt noch einmal für "beliebiger Kontakt wird betreten" und "beliebiges Signal schaltet" durchgespielt.
Das Verhalten ist identisch und es klappt ebenso gut.

Viele Grüße
Götz

 

Bearbeitet von Goetz
Ergänzungen
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Goetz,

ja richtig, es ist nur eine Kleinigkeit.
Es ist wohl nur das Problem des Einsteigers, daß ich zwar weiß welches Objekt / Klasse ich bmit welcher Eigenschaft aufrufen möchte, aber einfach nicht die richtige Auswahl mit den runden "Knöpfen" rechts vom Begriff treffe.

Jetzt hat es jedenfalls funktioniert.
Hoffentlich kann ich die Test-EVs leicht in die wirkliche Anlage kopieren.

Gruß

Andreas

Signal-Stop-Fahrt-Reglung.jpg

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...