Jump to content

Empfohlene BeitrÀge

Geschrieben

Hallo zusammen,

ich bin gerade mal dabei einen kleinen Betriebshof als Modul aufzubauen. Darin enthalten ist u.a. eine Drehscheibe und eine Bekohlungsanlage.

VorwĂ€rts Einfahrt auf Drehscheibe und rĂŒckwĂ€rts Parken in Ringschuppen lĂ€uft gut.
- In den Schuppen habe ich ein Sperrsignal verwendet, beim verlassen in Richtung -1 wird die Fahrtrichtung umgekehrt und die Lok hÀlt am Signal und schaltet den Antrieb aus. wenn ich eine Lok haben wilk, brauche ich somit nur das Signal auf Fahrt setzen.

Jetzt stehe ich jedoch vor zwei kleineren Problemen......

1)

Die Gleise in den Schuppen haben den Namen RS GL 0 - RS GL 14 und RS GL 43, 45. Die Signale haben den Namen RS Sig 0 - 14 und RS Sig 43, 45. Die Loks haben ein Schlagwort Diesel oder Dampf.

Im Moment habe ich zum Abrufen zwei Taster (Taster Diesel oder Taster Dampf). Wenn ich einen (z.B. Taster Diesel) auslöse, solll geschaut werden auf welchem Gleis eine Lok mit Schlagwort Diesel steht und das entsprechende Signal auf fahrt gesetzt werden. (NatĂŒrlich wird zuvor auch die im Signal hinterlegte Variable (Zahl) fĂŒr die Weichenstellung der Drehscheibe abgerufen und die Drehscheibe entsprechend positioniert - das ist jedoch kein Problem).

Ich wollte jetzt per Bedingung abfregen ob auf GL 0 - GL 14 eine Lok mit dem Schlagwort Diesel steht und dann das Signal auf Fahrt schalten.
Am besten dĂŒrfte das vermutlich mit einer Liste der Gleise zu lösen sein - oder ?
Habe mal in den Variablen eine Liste mit den entsprechenden Gleisen als Objekte angelegt. Das Signal wollte ich dann als Objekt im Gleis hinterlegen.
Also die Gleise der Liste der Reihe nach abfragen und bei einem Treffer das Signal im Gleis auf Fahrt schalten - Gedanklich recht einfach ...... aber wie setzte ich das in der EV um, dass die Liste abgefragt und dann das entsprechende Signal umgeschaltet wird.
Allerdings komme ich da nicht weiter und brÀuchte da mal eure Hilfe.

Also ich löse das Tasterereignis aus und ...........

 

 

2)

Wie stoppt man eine Dampflok so, dass der Kohle-Tender/BehĂ€lter unter der BefĂŒllung zum stehen kommt ? Mit einem Geschwindigkeit = 0 beim betreten (Fahrzeuganfang oder Fahrzeugmitte) eines Kontaktes ist das nicht wirklich möglich, da die Loks unterschiedliche LĂ€ngen haben.

Danke euch schon mal
Gruß Ralf

 

Screenshot 2024-02-11 130504.jpg

Geschrieben
  Am 11.2.2024 um 12:05 schrieb bigrala:

Mit einem Geschwindigkeit = 0 beim betreten (Fahrzeuganfang oder Fahrzeugmitte) eines Kontaktes ist das nicht wirklich möglich, da die Loks unterschiedliche LÀngen haben.

Erweitern  

Aber mit Geschwindigkeit = 0 bei Verlassen des Kontakts hast du vielleicht mehr GlĂŒck.

Geschrieben (bearbeitet)

Ist eine Idee, probiere ich gleich mal aus

Ja super klappt- Danke

Was sagst Du zu meinem Problem 1 - hast Du da auch einen Hinweis wie das mit Liste etc klappen wĂŒrde ?

Bearbeitet von bigrala
Geschrieben

Hallo bigrala,

Hier ein Lösungsvorschlag zu 1. :

Meine Annahme (und Voraussetzung) fĂŒr das folgende (muss an Deine Gegebenheiten angepasst werden):

- Die Gleisliste ist im Objekt "Drehscheibe" angelegt.
- Bei Einfahrt auf ein Ringlokgleis wird die Lok als Variable "Triebfahrzeug" beim Gleis gespeichert

- Das zum Ringlokgleis gehörende Signal ist als Variable "Signal" beim Gleis gespeichert
- Die Weichenstellung fĂŒr die Drehscheibe ist als Variable "Gleisnummer" beim Gleis gespeichert.

Ringlokschuppen.jpg.19c0e5fcf1337ed0cba60f7c71ba68ed.jpg

Wenn der Taster betÀtigt wird ...
- wird fĂŒr die Drehscheibe die Variable "gefunden" auf ein leeres Objekt gesetzt
- Dann werden alle EintrÀge der Gleisliste durchgegangen
- - Sofern die Variable "gefunden" noch ein leeres Objekt beinhaltet
- - - Steht ein Fahrzeug auf dem aktuellen Gleis (Variable "Triebfahrzeug" kein leeres Objekt
- - - - Hat dieses Fahrzeug eine Variable "Diesel"
- - - - - Fahrzeug bei der Drehscheibe unter "gefunden" eintragen
- Ist die Variable "gefunden" kein leeres Objekt, sondern beinhaltet ein Gleis
- - Drehscheibe drehen auf Variable "Gleisnummer" des Gleises
- - Verzögerung fĂŒr das Drehen der Drehscheibe
- - Das Signal (Variable "Signal" des Gleises) auf Fahrt schalten.

 

Viele GrĂŒĂŸe,
    Wolfgang

 

Geschrieben

Hallo Prinz,

irgendwas scheint da faul zu sein oder ich habe einen Fehler gemacht. Bin das mehrmals durchgegangen und finde keinen Eintragungsfehler.
Im Anhang mal die jeweiligen EintrĂ€ge fĂŒr Gleise, Drehscheibe und Taster.
Beim Screenshot Taster siehst Du auch die Protokollierung. Bleibt direkt beim setzen der ersten Variable stehen.

Gruß Ralf

Screenshot Eintrag RS Gleis.jpg

Screenshot EintrÀge Drehscheibe.jpg

Screenshot Taster Diesel.jpg

Geschrieben

So sieht alles richtig aus. Ich habe das Szenario gerade nochmal aufgebaut und mit deiner EV getestet. Leider kein Problem aufgetreten.

In solchen FĂ€llen kannst Du nur folgendes machen (außer einen Export der Anlage hier zu posten):

FĂŒge in das Skript an relevanten Stellen jeweils ein Skript mit einem print-Statement ein, z.B.

Nach "FĂŒr alle Elemente"                                         print(Wdh.name)
Nach ..RS Gleis gefunden = [Leer]                           print("- noch nicht gefunden"
Nach ...Lok Name nicht [Leer]                                  print("- - ", Wdh.variables["Lok Name"].name)
Nach Eigenschaft/Variable existiert                         print("- - - Lok gefunden")

Dann mĂŒsstes Du eigentlich erkennen, wo etwas hakt.

P.S. Hast Du evtl. zwei Objekte auf der Anlage, die beide "Drehscheibe" heißen und irgendwo das falsche ausgewĂ€hlt?

Probier das mal oder poste Deine Anlage hier und ich schaue mir die mal an.

 

Geschrieben

Hallo Wolfgang,

ich habe es gefunden ...... waren zwei kleine Fehler bei mir.....

1 das Schlagwort in den Loks heist bei mir nicht "Diesel" sondern "Lok Diesel"
2 bei Weiche schalten, ist der Name der Weichenstellung nicht "RS Gleise" sondern "Drehscheibe Pos"

Dann fehlte bei Signal einstellen auch noch der Signalname "RS Signal"

Super, jetzt lÀuft es. Danke Dir vielmals.
Gruß Ralf

 

Zu ErklĂ€rung der Benennung meiner Variable etc., bei allem was mit dem Ringschuppen und Drehscheibe zu tun hat, habe ich ein "RS" und bei allem in Bezug auf die normalen Lokschuppen habe ich ein "LS" vorangestellt. Ich habe mir gedacht, dass es vielleicht ĂŒbersichtlicher und sicherer ist, wenn ich das BBW zum Beispiel als Modul in eine andere Anlage einfĂŒgen möchte.

So sieht mein Modul im Moment aus......

Screenshot 2024-02-12 175717.jpg

Geschrieben

Ja super.

Die Aktionen am Ende (Weiche stellen, Signal schalten) habe ich nicht mehr richtig gelesen, da ja schon vorher beim PrĂŒfen der Gleise nichts gefunden wurde.

Klasse und viel Spaß

GrĂŒĂŸe,
    Wolfgang

 

Geschrieben

Eine Drehscheibe arbeitet zwar wie Weichen, aber in eine Fahrstrasse lĂ€ĂŸt sie sich nicht einbinden - oder ?

Ich habe mal versuchsweise probiert eine FS einzurichten, von einem Signal - ĂŒber die Drehscheibe zu einem anderen Signal.
Bekomme dann die Meldung "keine gĂŒltige Route". Ist auch in sofern nachvollziehbar, da im Moment ja das BrĂŒckenglies weggedreht ist und somit keine Verbindung zwischen den anschlußgleisen besteht.

Gibt es da einen Trick oder muss man sich da was mit Variablen (DS frei/besetzt) einfallen lassen.

Habe das Problem, dass wenn z.B. eine Lok gerade bei der Ausfahrt Ringschuppen-Drehscheibe-Ausfahrtsgleis ist und eine andere das Einfahrsignal betritt, dann gibts ein wildes Durcheinander mit Drehungen der Drehscheibe. MĂŒsste ich die Routen per Variable blocken und freigeben ?

V8 - Modul Drehscheibe.mbpFetching info...

Geschrieben

Die einfachste Möglichkeit wĂ€re, bei der Drehscheibe eine Variable "belegt" mit Wahr/Falsch-Wert einzurichten. Bei Tastern und Signalen muss dann berĂŒcksichtigt werden, das nur Aktionen erfolgen, wenn diese Variable auf Falsch steht. Bei Start einer Aktion wird diese Variable sofort auf Wahr gesetzt und bei Beendigung wieder auf Falsch.

Hierzu wĂ€r notwendig, beim Setzen der Variable auf Wahr die Anforderungsschalter auf "unsichtbar" zu setzen und bei Falsch wieder "sichtbar". Weiterhin wĂ€re notwendig, die Sperrsignale an der Einfahrt nicht einfach zu passieren, sondern bei Stellung Sh0 die Lok anzuhalten. Wird das Signal auf Sh1 geschaltet und die belegt-Variable steht auf Wahr, so wird das Signal wieder auf Sh0 zurĂŒckgesetzt, ansonsten wird die belegt-Variable auf "Wahr" gesetzt und die Lok am Signal gestartet.

Alternativ wĂ€re eine Warteliste fĂŒr die Drehscheibe denkbar, die aber etwas aufwĂ€ndiger einzurichten ist.

Viele GrĂŒĂŸe,
    Wolfgang

 

Geschrieben (bearbeitet)

Hallo,

  Am 13.2.2024 um 15:32 schrieb bigrala:

Eine Drehscheibe arbeitet zwar wie Weichen, aber in eine Fahrstrasse lĂ€ĂŸt sie sich nicht einbinden - oder ?

Erweitern  

das geht schon, du mußt nur die Drehscheibe vor dem Einrichten der Fahrstraße auf die jeweils gĂŒltige Stellung setzen.
(Achtung beim Gleiskontakt auf der Drehscheibe: auf aktivierte Pfeilrichtung des Gleiskontaktes achten. Fahrstraßen sind richtungsbezogen.)

Gruß
EASY

Bearbeitet von EASY
Geschrieben

Hallo bigrala,

ich habe mir Dein BW nochmal vorgenommen, um Deine Anforderung bzgl. der Absicherung gegen Mehrfachanforderung der Drehscheibe anzugehen.
Dabei sind einige Änderungen notwendig geworden (keine Kritik, nur VorschlĂ€ge):

Vorab: In deiner Liste RS Gleise der Drehscheibe war bei Gleis45 das Signal statt des Gleises eingetragen und bei den Gleisen 43+45 war die Variable "Lok Name" leer. Das habe ich geĂ€ndert. Weiterhin sind die beiden Loks (+Tender) auf den Gleisen 43+45 so lang, dass sie nicht den Haltekontakt auf der Drehscheibe erreichen. Sie stoppen mit einigem Abstand zum Gleisende, da auf der Gegenseite keine Gleise angeschlossen sind. Deshalb habe ich das ĂŒberarbeitet. Außerdem wird jetzt zufĂ€llig eine Diesel- bzw. Dampflok ausgewĂ€hlt, statt der ersten gefundenen. Das Signal am Ausfahrgleis habe ich entfernt, da es (theoretisch) nicht benötigt wird und außerdem die falschen Variablen hatte.

Wie ich vorgeschlagen hatte, hat die Drehscheibe Gleis jetzt eine Variable "belegt". Sobald ĂŒber einen Taster oder ein Anforderungssignal eine Lok gestartet werden soll, wird diese Variable auf True gesetzt. Damit werden die beiden Anforderungstaster unsichtbar und die beiden Signale können nicht mehr auf Fahrt geschaltet werden. VerlĂ€sst eine Lok die Drehscheibe werden die Taster wieder eingeblendet und die Signale können wieder geschaltet werden.

Damit bei der Einfahrt die Lok nicht unnötig hÀlt, obwohl die Drehscheibe frei ist, sind vor den Signalen Gleiskontakte, die die Lok beim Signal anmelden und diese auf Fahrt schalten, wenn die Drehscheibe frei ist. Falls nicht, bleibt das Signal auf Halt und muss dann spÀter manuell auf Fahrt geschaltet werden.

Damit auch die langen Loks bedient werden können, habe ich das ĂŒberarbeitet: Wird der Haltekontakt in der Mitte erreicht, erhĂ€lt die Lok ein Schlagwort "Lok auf Drehscheibe". Erreicht die Lok mit ihrer Mitte den Haltekontakt, so wird sie gestoppt. Stoppt eine Lok mit diesem Schlagwort (wegen Haltekontakt oder Gleisende), wird die Verarbeitung wie vorher bei Haltekontakt Mitte erreicht. VerlĂ€sst eine Lok das "Drehscheibe Gleis", so wird sicherheitshalber nochmal das Schlagwort "Lok auf Drehscheibe" gelöscht und die "belegt"-Variable wieder auf False gesetzt.

Ich habe die geÀnderten Ereignisse im Namen mit ...(mod) und die neuen mit ...(neu) gekennzeichnet und mit einem Kommentar versehen.

Ach ja: Da ich berufsbedingt (frĂŒher mal) immer noch ein Gegner von doppeltem Code bin, habe ich die Suche einer Dampf- und einer Diesellok zusammengefasst in einem Benutzerdefiniertem Ereignis, das von den beiden Tasten-Ereignissen mit den Parametern Drehscheibe und Schlagwort aufgerufen wird. So war auch die Umstellung beider Tastenevents auf eine zufĂ€llig gewĂ€hlte Lok nur einmal durchzufĂŒhren.

Hier als Vorschlag die geÀnderte Anlage:

V8 - Modul Drehscheibe 2.mbpFetching info...

Viele GrĂŒĂŸe,
    Wolfgang

 

Geschrieben

Hallo bigrala,

In einem anderen Thread (von EASY zu Lua in Tutorials) kam das Thema zum Anhalten der langen Loks (ursprĂŒnglich Gleis 43+45) nochmal zur Sprache. Darin gab Roter Brummer einen Tip mit der automatischen Verzögerung, die dafĂŒr sorgt, dass die Lok zu frĂŒh stehen bleibt. Damit lĂ€sst sich das Problem einfach lösen:

Die Zeilen zum Setzen/Löschen des Schlagwortes "Lok auf Drehscheibe" können gelöscht werden.

Beim Betreten des GK DS: Eigenschaft automatische Verzögerung der Lok auf False setzen
Beim Verlassen des GK DS: Eigenschaft automatische Verzögerung der Lok wieder auf True setzen
Gleiskontakt GK DS mit Fahrzeugmitte betreten: Wie ursprĂŒnglich. Du kannst das Ereignis "Lok auf Drehscheibe hĂ€lt" Ă€ndern in Gleiskontakt GK DS mit Fahrzeugmitte betreten, musst nur als erste Maßnahme die Geschwindigkeit der Lok auf 0 setzen, gefolgt von einem Delay von 1 Sekunde.

Damit halten auch die beiden langen Loks mittig auf der Drehscheibe.

Viele GrĂŒĂŸe,
    Wolfgang


 

Geschrieben

Hallo Prinz,

Ich war jetzt einige Tage nicht hier online (beruflich auswÀrts).

Kein Thema, nehme auch sehr gerne Kritik an - kann man nur von lernen (y)

Da hast Du Dir ja mĂ€chtig Arbeit gemacht. Werde ich mit heute Abend mal eingehend zu GemĂŒte fĂŒhren.
Die Idee mit "DS belegt/frei" hatte ich auch schon und nach meinem Posting auch schon in Angriff genommen.
Mein Gedanke war also gar nicht falsch   ;-)

Die langen Loks auf 43/45 hatte ich erstmal als FĂŒller hingestellt, aber noch nicht mit einbezogen. Aber Danke fĂŒr die Lösungen.

Doppelte Codes mag ich auch nicht, erstelle normalerweise erstmal alles soweit das es lauffÀhig ist und fasse dann zusammen.

Nochmals vielen Dank
Viele GrĂŒĂŸe   Ralf

 

Ein Gedanke;
So Dinge wie Drehscheiben, BahnĂŒbergĂ€nge, einfache Bahnhöfe oder auch Lösungen zu Straßenverkehr etc. könnte man ja allgemeingĂŒltig erstellen und im Katralog als Modul zum Einbau in eigene Anlagen stellen.
Neulinge könnten sie dann einfach einbauen und lernen, wenn Sie sich die EV zu GemĂŒte fĂŒhren.

 

 

Geschrieben (bearbeitet)

Hallo Wolfgang,

habe mir das mal alles angesehen und werde es gemĂ€ĂŸ Deinem letzten Post abĂ€ndern.

ZusĂ€tzlich werde ich beim verlassen des DS Gleises abfragen ob an einem der Einfahrsignale eine Lok steht und wartet ... dann Drehscheibe einstellen und das entsprechene Signal auf Fahrt stellen. Habe beim Testen gesehen, dass eine Lok den GK ĂŒberfĂ€hrt und am Signal stehen bleibt, wenn DS noch belegt ist.

 

Habe es umgebaut, es funktioniert mit allen Loks (auch BR 05-003), nur nicht mit der BR 53 001. Die fĂ€hrt auf die Drehscheibe, stoppt und ...... DS dreht nicht.  Ist die Lok einfach trotz allem zu groß ?

Bearbeitet von bigrala

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