Jump to content

Gleiseigenschaften mit Lua einlesen


Hawkeye

Empfohlene Beiträge

Hallo @Neo,

ich möchte über eine Lua-Skript Gleiseigenschaften einlesen.

Die Gleisabmessungen von geraden Gleisen sind abrufbar.

1658908501_GleiseigenschafteninLualesen.thumb.jpg.e7943ea1b15c45fca1b539de94b7e467.jpg

 

Bei Bögen benötige ich, um die Gleislänge zu berechnen, den Radius und den Winkel.

1548417945_RadiusundWinkeleinlesen.thumb.jpg.216bb1ad584e4700219b0d4524e6a0ff.jpg

 

Sind Radius und Winkel einlesbar? 

VG

Hawkeye

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Hawkeye,

mit Lua hast du aktuell keinen Zugriff auf die geometrische Form von Gleisen, was auch so nicht vorgesehen ist, da Gleise auch aus komplexeren Splines bestehen können, die nicht über einen Winkel/Radius abgebildet werden. Allein die Länge wäre ein Wert, der für jedes Gleis zur Verfügung stehen würde.

Was hast du denn vor?

Viele Grüße,

Neo

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo @Neo, 

ich glaube ein ähnliches Thema hatten wir schon mal, dass es sich hier wieder

um verschiedene Programmteile handelt, die nicht alle Informationen miteinander austauschen.

Hintergrund ist, ich teste gerade eine kleine "Universal"-Signalsteuerung,

bei der alle auf einer Anlage mit Schlagwort "Signal" definierten Signale über ein

einheitliches EM-Modul gesteuert werden.

Einem Signal, oder ggf. im Bahnhof auch 2 Signalen wird ein Gleisstück als Haltegleis zugeordnet, 

in dem die Haltegleislänge als abrufbare Variable gespeichert ist. 

Diese Gleisstück ist entweder Gerade oder Gebogen (kein Flex-Gleis). 

Diese Gleislängen unterscheiden sich je nachdem, wo sich das Signal oder der Streckenabschnitt befindet. 

Bisher gebe ich die Variable als Zahl "Gleislänge" zu den Haltegleisen händisch ein.

Sind jedoch beim Anlagenbau durch Kopieren oder Anpassungen Korrekturen an Haltegleisen in Länge, Radius oder Winkel vorzunehmen,

müssen immer auch die Variablen neu angepasst werden. Diesen Schritt vergesse ich sehr gerne. :(  

Dieses "Anpassen" würde ich mir gerne ersparen, wenn mit Lua bei Betreten eines Gleises durch einen Zug die befahrbare Gleislänge ausgelesen, 

und einem Gleis als Variable zugeordnet werden kann. 

Bei geraden Gleisen funktioniert es über die Abmessungen, die kann ich einlesen.

In Bögen muss ich immer mit Radius und Winkel das Umfangstück händisch neu berechnen und eingeben.

Wie im Bild oben z.B.  Radius 837,88  Winkel 60°  wäre die befahrbare Gleislänge 877,425  

Ich würde das gerne dem Programm entnehmen, wenn ein Zug ein beliebiges Gleis betritt,

das die befahrbare Länge des Gleisstückes abgefragt werden kann. :D

 

Viele Grüße

Hawkeye

 

  

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also Hawkeye nur so ne Frage, warum benützt du nicht die Gleisbesetztmeldung dafür, um diesen Parameter abzurufen. Wurde das betroffene Gleis betreten, ist es ja besetzt und kann somit den Wert deiner benötigten Variable dementsprechend verändern, unabhängig von der Gleislänge oder Radius usw. des betroffenen (Halte) Gleises. Nur so eine Idee9_9

LG  Atrus

Link zu diesem Kommentar
Auf anderen Seiten teilen

PS

Also ich benütze ROCO mit Gleisbettung und der Gleisabstand beträgt 61,6mm. Wenn ich einem Gleis z.B. einen Winkel von 25° gebe und eine Lg/Rad 4000mm, müsste ein parallel Gleis also immer den Lg/Rad Wert 61,6 +/- zum Stammgleis haben. Und dem entsprechend wäre die Gleislänge auch jeweils um diesen Wert verkürzt oder verlängert. Wenn du also sowieso keine Flexgleise verwendest, brauchst du eigentlich nur, abhängig von dem verwendeten Gleissystem, deine fix Gleise um diesen Wert zu verändern und schon hast du die Gleislänge. Oder ich habe das jetzt völlig falsch verstanden!

LG  Atrus  

Link zu diesem Kommentar
Auf anderen Seiten teilen

Und dann wäre noch die Frage, ob jetzt wirklich die Gleislänge oder der Wert einer X Variable von Interesse sind, um ein Ereignis auszulösen oder eben nicht. So wie ich die eigentliche Frage verstanden habe. Sorry jetzt war ich zu langsam!:$

LG  Atrus 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Hawkeye,

schau dir mal die neue Beta-Version an, dort habe ich den Zugriff auf die Gleislänge per Lua eingebaut, auch wenn ich noch nicht so richtig nachvollziehen kannst, wofür du die Länge am Ende benötigst. Mir erscheint eine abstraktere Lösung durch Gleiskontakte und ähnliches sicherer.

Viele Grüße,

Neo

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Atrus, hallo Andy, 

meine  Frage bezieht sich lediglich auf die Strecke, die ein Zug auf einem Gleisstück zurücklegt = Gleislänge

 Sicherlich kann ich sie berechnen. Aber da bei den betroffenen Gleisstücken eben genau diese Länge in einer Variable als Zahl definiert ist,

muss diese Variable bei Änderungen am Gleisstück ebenfalls neu berechnet und korrigiert werden.

Von mir aus könnt ihr das als "pure Bequemlichkeit" bezeichnen, wie Andy das nennt.

Ich nenne das eine Fehlerquelle weniger, wenn die Daten nach einer Änderung per Lua abgerufen werden können. 

 

912826594_Gleislnge.thumb.jpg.89f4788eeab57ef9b1da3d8638348638.jpg

VG

Hawkeye

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Hawkeye,
das mit der Bequemlichkeit bezog sich auf das 'Abfahren' im Vergleich zu 'Ausrechnen', nicht über die Verwendung des Ergebnisses.
Ich bin sogar froh, dass Neo die Funktion nun eingerichtet hat. Die kann ich wahrscheinlich so auch nutzen, wenn ich in meiner Anlage Fahrpläne umgestalte, um zu schauen, wo man eventuell noch eine Fahrt zusätzlich reinstecken kann.

Gruß
  Andy

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo @Neo, 

vor 25 Minuten schrieb Neo:

Hallo Hawkeye,

schau dir mal die neue Beta-Version an, dort habe ich den Zugriff auf die Gleislänge per Lua eingebaut, auch wenn ich noch nicht so richtig nachvollziehen kannst, wofür du die Länge am Ende benötigst. Mir erscheint eine abstraktere Lösung durch Gleiskontakte und ähnliches sicherer.

Viele Grüße,

Neo

danke für die Antwort.

Habe gerade die neue Beta geladen.

Wie heißt den der Wert (property) nach dem ich suchen muß?

Ich habe keine Veränderung in Lua festgestellt.

 

267611627_Screenshot2021-04-20203724.thumb.jpg.2a30239cc5001210fe607a41b14fd983.jpg

VG Hawkeye

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 2 Minuten schrieb Atrus:

Ja, möchtest du jetzt nur den eventuell benötigten Bremsweg berechnen oder sicher stellen das dein Bremsweg auch ausreicht. Sonst müsstet du ja auch noch die Verzögerung im Bremsbereich anpassen. @Andy

LG  Atrus  

Genau, habe ich alles schon fertig. 

Und die Zeitverzögerung berechne ich auch, wenn ein Zug auf einem Gleis erst später anhalten soll.

Bremsweg, Haltepunkt (ggf. mehrere auf einem Gleis, je nach Zug der das Gleis betritt), Bremsverzögerung, Zeitverzögerung vor Abbremsen sind fertig.

Funktioniert aber nur, wenn die Gleislänge passt. Deshalb will ich den Wert ermitteln und nicht selbst berechnen. 

VG

Hawkeye

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ja ein schwieriger Fall in der Tat. Also ich löse das ja ganz anders, in dem bei mir bei jedem Haltepunkt, Bhf. ect. ein Vorsignal existiert, das dem auslösendem Zug, je nach vor eingestelltem Parameter wie Schlagwort usw. , seine neuen "Variablen" wie Verzögerung, Geschwindigkeit usw. vermittelt, Fahrstrassen stellt und das GBS gleich mit aktualisiert. Aber das soll jetzt nicht gescheit klingen, so ist es für mich am einfachsten. Die Block Signale regeln dann die Ein und Aus Fahrten. Je nach Priorität. Soll das in deinem Falle möglicher Weise für alle Züge immer gleich sein, dann ist das natürlich eine Option die Gleislänge auszuwerten. @NeoIn Lua bin ich ganz schwach, aber so richtig habe verstanden habe ich dich wahrscheinlich leider noch immer nicht ganz, sorry!

LG  Atrus

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 31 Minuten schrieb Hawkeye:

Bremsweg, Haltepunkt (ggf. mehrere auf einem Gleis, je nach Zug der das Gleis betritt), Bremsverzögerung, Zeitverzögerung vor Abbremsen sind fertig.

Du weißt, dass das MBS den Bremspunkt für dich errechnet und den Zug so abbremst, dass er mit der Spitze genau am Gleiskontakt zum Stehen kommt, wenn du in diesem Kontakt die Option "Abbremsen auf 0 km/h" aktivierst?

1700249339_Abbremsenauf.jpg.56c2cfc49fc8cccf302320934be776c6.jpg

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 18 Minuten schrieb Neo:

Hallo Hawkeye,

die neue Eigenschaft heißt length und ist Teil der Spur eines Gleises.

Length.thumb.jpg.cadb4ca83fb99be8478463590a85e29e.jpg

Viele Grüße, 

Neo 

Nö, :$

825369610_Screenshot2021-04-20212107.thumb.jpg.049db3b03fca76acbd5bea5791795022.jpg

bei mir sieht das so aus. 

Version: 

 

1171205866_Screenshot2021-04-20212156.thumb.jpg.f40791b936f87485c91c91de28d8f4a2.jpg

 

Das ist die von heute.

Length ist nicht dabei.

VG

Hawkeye

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 2 Minuten schrieb Goetz:

Du weißt, dass das MBS den Bremspunkt für dich errechnet und den Zug so abbremst, dass er mit der Spitze genau am Gleiskontakt zum Stehen kommt, wenn du in diesem Kontakt die Option "Abbremsen auf 0 km/h" aktivierst?

Hallo Goetz, 

ja das weiß ich, ich will die Bahnhofsgleise aber nicht mehr mit Gleiskontakten für jeden möglichen Zug oder Zuglänge zupflastern.

Meine Steuerung für einen Bahnhof sieht vor, das eben ein beliebig langer Zug der das Haltegleis betritt am Anfang,

in der Mitte oder am Ende des Bahnsteiges halten kann.

Hat das Bahnhofsgleis 2 Signale für Ausfahrten in Fahrtrichtung z.B. West und Ost, dann wird bei Zügen mit 2 Triebwagen und

Ausfahrt gegen die Einfahrrichtung der Triebwagen gewechselt. (z.B. ICE, S-Bahn, VT461 gekoppelt)

und nicht die Richtung wie es bei Zügen mit nur einer Lok nicht anders geht.  (dito im Kopfbahnhof oder Stumpfgleis, Abstellgleis)

Hast du ein langes Haltegleis und einen kurzen Triebzug (z.B.  2 x VT 641) dann beginnt die Verzögerung zeitversetzt zu einem ICE 4 mit 6 oder 8 Wagen. 

Beide können aber bei gleicher Verzögerung z.B. in Gleismitte halten, der ICE4 bremst halt nur später ab.

Das meiste funktioniert schon. Ein paar kleine Probleme sind noch zu beseitigen.

Ich nutze hauptsächlich die Gleiskontakte der Signale, die sowieso schon vorhanden sind.

Oder ein paar wenige zum Beschleunigen oder Abbremsen auf der Strecke zur Geschwindigkeitsanpassung.

VG 

Hawkeye

 

 

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 49 Minuten schrieb Goetz:

Du weißt, dass das MBS den Bremspunkt für dich errechnet und den Zug so abbremst, dass er mit der Spitze genau am Gleiskontakt zum Stehen kommt, wenn du in diesem Kontakt die Option "Abbremsen auf 0 km/h" aktivierst?

1700249339_Abbremsenauf.jpg.56c2cfc49fc8cccf302320934be776c6.jpg

Hallo Goetz, 

Nochmal dazu, 

diese Möglichkeit ist auch klasse, ja, aber aus meiner Sicht viel besser und sinnvoller für Straßen und die Kfz-Steuerung geeignet. 

Hatten wir letztes Jahr schon mit der Abzweigung. Bei Bahngleisen nutze ich Gleisklontakte wesentlich seltener.

VG

Hawkeye

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