Jump to content

Triebkopf gezielt deaktivieren ?


bigrala

Empfohlene Beiträge

Hallo,

mal interessehalber eine Frage zur Steuerung - kann man einen Triebkopf gezielt deaktivieren bzw ansprechen ?

Beispiel, ich hatte zum testen zwei ICE Triebköpfe ohne Wagen aneinander gesetzt und sie auf einer Anlage fahren lassen. Da der Pseudozug nurn kürzer war als das Haltegleis, gab es beim losfahren das Problem, dass beide Köpfe auf 50 km/h gesetzt wurden, somit in entgegengesetzter Richtung zogen und der Zug somit stehen blieb.

 

Da kam in mir die Frage auf, ob man nicht den einen Kopf nicht einfach deaktivieren kann oder Zugparameter einfach so setzen kann, dass immer nur ein bestimmter Kopf angesprochen wird.

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi bigrala

Also deaktivieren geht nicht, muss auch nicht sein. Ueblicherweise kannst du auf einem haltegleis das tatsaechliche "triebwerk" ja ueber den ausloeser ansprechen.  Ein so angehaltenes fahrzeug laesst sich im gleichen ereigniss, mittels zeitlicher verzoegerung, zu etwas spaeterer zeit genau so wieder zum anfahren direkt ansprechen.

Kann ein fahrzeug nur mit einem anderen ereigniss wieder in betrieb gesetzt werden muss beim anhalten eine objektvariable (mit der triebfahrzeug identitaet) angelegt werden, die spaeter beim starten abgefragt wird und so das gleiche fahrzeug in gang setzt.

Bei zuegen mit mehr als einem triebfahrzeug, kann man auch dem eigendlichen triebfahrzeug eine objektvariable mit an board geben, welche in einer bedingungsabfrage sicher stellt, das eben nur das fahrzeug welches die kennzeichnende objektvariable hat, auf geschwindigkeitsanweisungen reagiert. Bei mischbetrieb (also auch mit einfach loks betriebenen zuegen zwischendrin) braucht allerdings jede "aktive" lok diese on board objektvariable, da sie sonst fuer zum wagen degradierte loks gehalten werden und dementsprechend nicht reagieren:/

Oda man gibt nur den passiven triebwerken eine objektvariable mit die in der bedingungsabfrage anschliessend sicherstellt das lediglich fahrzeuge ohne diese OV angesprochen werden.....:)

Fuer Wechsellokbetrieb, also wenn beide triebkoepfe abwechselnd triebwerk sind, muss uebrigens in jeder lok die jeweils andere in einer objektvariablen abgespeichert werden damit die EV in einem entsprechendem ereigniss auch dieses szenario umsetzen kann.

Cheers

Tom

Bearbeitet von metallix
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 2 Stunden schrieb bigrala:

das Haltegleis

würde ich - V5 vorausgesetzt - durch einen Gleiskontakt ersetzen. Den kannst du besser positionieren.

Und dann merkst du dir - wie von Tom schon vorgeschlagen - das auslösende Fahrzeug in einer Objektvariablen.
Beim Stopp an einem Signal würde ich dieses Signal als Speicherort empfehlen, weil nur in Abhängigkeit von diesem Signal weitergefahren werden darf.

Ab der verlinkten Position (47:43) siehst du in diesem Video ein Beispiel dafür, wie man es handhaben kann.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Tom, Hallo Goetz,

vielen Dank für den Link - sehr interessant !!

Habe mal eine Teststrecke so aufgebaut und das mit dem Bremsen und Halten für alle Fahrzeuge funktioniert sehr schön.

Probleme gibt es nur weiterhin mit ICE (zwei Triebköpfe) oder mit einem Lok Doppelgespann. Zug fährt an und sobald die zweite Lok den Kontakt betritt wird wieder gebremst.

 

Deinen Vorschlag mit der Objektvariablen, dem Speichern im Signal und dann das Losfahren ..... das verstehe ich vom Prinzip her, weiß aber nicht wie ich es umsetzen soll. 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo @bigrala,

schaue Dir mal wegen der Objektvariable mit dem gespeicherten Triebfahrzeug diesen Baustein aus dem Online-Kataiog (Content-ID = E55466F9-36AF-492E-8405-C4DF5A400890) und die Beipiel-Anlage dazu an:

Baustein-Demo Signalhalt.mbp  

Dort kannst Du die Verwendung der Objektvariable als Zwischenspeicher für das (eindeutige) Triebfahrzeug des Zuges studieren:

  • Signal SH_Ausfahrsignal besitzt eine Objektvariable "Triebfahrzeug", die als Zwischenspeicher verwendet wird.
  • In Ereignis Bremskonrakt - ,,, wird das beim Betreten des Kontakts als Auslöser erkannte Triebfahrzeug in der Objektvariable des Signals abgespeichert.
  • Zum Start des Zuges im Ereignis Signal schaltet - ... wird dessen Triebfahrzeug aus der Objektvariable des Signals ausgelesen, um die Geschwindigkeit zuweisen zu können.

In diesem Beitrag findest Du noch weitere Demo-Anlagen (jeweils aufbauend auf einem Anlagen-Baustein), die alle diese am jeweiligen Signal hinterlegte Objektvariable als Zwischenspeicher nutzen.

Übrigens spielt es bei diesem Mechanismus keine Rolle, ob der Zug 2 Triebköpfe besitzt oder eine Doppeltraktion den Zug zieht oder der Zug als Wendezug von der Lok geschoben wird, oder ob sich das Trebfahrzeug gar in der Mitte des Zuges befindet. Solange sich im Zug immer nur ein aFahrzeug befindet, das angetrieben ist (also eine zugewiesene Geschwindigkeit besitzt), wird immer genau dieses von der Ereignissteuerung in den hier genannten Beispielen identifiziert und angesprochen. Eine Geschwindigeitszuweisung an die Lok über das Gleis findet grundsätzlich nicht statt. Damit ist auch eine "versehentliche" Geschwindigleitszuweiseung gleichzeitig an mehrere Loks nicht möglich.

Viele Grüße
BahnLand

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo BahnLand,

also den ersten Teil (Bild EV xx1) verstehe ich ja noch und es funktioniert auch soweit, dass in die Variable im Signal der Name des Triebkopfes geschrieben wird.

Probleme bekomme ich jedoch im zweiten Teil (Bild EV xx2) ..... Signal schaltet auf Fahrt und es soll nur der Triebkopf aus der Variabeln angesprochen werden.

Der Einfachheit halber habe ich die Variabel vSoll weggelassen und eine Zahl als Geschwindigkeit gegeben. Trotzdem bleibt das Ding stehen.

EV xx1.JPG

EV xx2.JPG

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo @bigrala,

in Deiner 2. Ereignisdefinition (Signal Sig-GL1-R schaltet) sind 2 Fehler enthalten:

  1. In der 2. Bedingung fragst Du ab, ob ([Signal].Triebwagen= [Leer] ist. Das ist natürlich nicht der Fall. Sonst gäbe es beim späteren Zugriff auf "([Signal].Triebwagen)" einen Fehler. Da die Abfrage so, wie sie da steht, nicht zutrifft, werden die nachfolgenden (bedingten) Aktionen auch nicht ausgeführt. Damit die Abfrage korrekt ist und auch wie beabsichtigt funktioniert, musst Du sie negieren!
  2. Bei der Aktion "Fahrzeuggeschwindigleit setzen" referenzierst Du zwar das Fahrzeug korrekt, aber die zugewiesene Geschwindigkeits-Referenz ist falsch. In der Vorlage stand hier  (([Signal].Triebwagen).Vsoll), was bedeutet, dass vom Auslöser "Signal" ausgehend über die Objektvariable "Triebwagen" des Signals und über dessen Objektvariable "VSoll" die zu verwendende Geschwindigkeit ausgelesen und zugewiesen wird. Du möchtest aber direkt 50 km/h zuweisen. Was Du jedoch implementiert hast, ist die Zuweisung eines Werts, der, wieder ausgehend vom Auslöser "Signal" und dessen Objektvariable "Triebwagen" aus einer Objektvariable des Triebwagens mit der Bezeichnung "50" ausgelesen wird. Dies hätte vermutlich zu einem Fehler geführt, wenn die unter 1. beschriebene Bedingung funktioniert hätte, da es die Objetvariable "50" des mit "Triebwagen" referenzierten Triebfahrzeugs nicht gibt. Um dem Fahrzeug 50 km/h direkt zuzuweisen, musst Du die Geschwindigkeit nicht als Variable, sondern als Zahl zuweisen:

    1498483537_GeschwindigkeitszuweiseungalsZahl.JPG.4bfd0913676a676c20ede31862951576.JPG

Viele Grüße
BahnLand

Link zu diesem Kommentar
Auf anderen Seiten teilen

Okay super - ich habs und es läuft.

auf die Vsoll verzichte ich zunächst mal, da ich in jeder Lok eine Reisegeschwindigkeit als Variable hinterlegt habe. Die Ausfahrt ist für alle erstmal auf Vmax. 50 eingestellt und nach verlassen des Bahnhofes wird bei überfahren eines Gleiskontakts die Reisegeschwindigkeit gesetzt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Noch eine Frage zum Leeren der Variabel im Signal ..... das machst Du mit dem Schließkontakt.

Ich würde das gerne in das Ereignis "Signal schaltet" an den Schluß setzen, nachdem das Fahrzeug seine Startgeschwindigkeit bekommen hat.

Als Auslöser hast Du da den "Gleiskontakt" - kann ich da einfach "Signal" nehmen ?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi bigrala

Das loeschen muss nicht unbedingt sein, da der eintrag ja vom naechsten eintreffenden fahrzeug aktuallisiert=ueberschrieben wird........

Falls du deine idee umsetzen moechtest koennte es helfen zwischen der anfahr anweisung und dem entleeren der variablen eine kleine zeitliche verzoegerung einzufuegen um sicherzustellen das der zug abfaehrt.  Die ausfuehrungen der aktionen gehen so fix....;)

Cheers

Tom

Bearbeitet von metallix
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo @bigrala,

vor 1 Stunde schrieb bigrala:

Als Auslöser hast Du da den "Gleiskontakt" - kann ich da einfach "Signal" nehmen ?

theoretisch ja. Ich nehme den aber nicht so gerne, weil ich ihn relativ zum Signal nicht verschieben kann. Da bin ich mit dem separaten Gleiskontakt doch etwas flexibler.

Viele Grüße
BahnLand

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo @BahnLand

dem Argument der Flexibilität kann man nicht widersprechen, doch in manchen Situationen braucht man die gar nicht. Wenn ich z.B. nach dem Durchfahren eines Signals selbiges schließen möchte, also eine Situation, wo es egal ist, ob der Kontakt nun 2 cm weiter nach links oder rechts gesetzt wird, dann nehme ich lieber den Signalkontakt. Warum sollte ich noch einen zusätzlichen Kontakt setzen, wenn doch schon einer da ist, der absolut identisch funktioniert? Allerdings nutze ich auch in ca. 80% aller Fälle den flexiblen Gleiskontakt, aber immerhin habe ich mir dann noch 20% gespart.

Gruß Timba

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 1 Stunde schrieb metallix:

Das loeschen muss nicht unbedingt sein, da der eintrag ja vom naechsten eintreffenden fahrzeug aktuallisiert=ueberschrieben wird........

Das ist schon richtig, aber .... wenn z.B. aus versehen das Signal geschaltet wird oder weil der folgende Streckenabschnitt frei ist und das Signal geschaltet wird obwohl kein anderer Zug eingefahren ist, so wird der zuletzt freigegebene mit den Anweisungen beeinflußt.

Da ist es sicherlich vernünftig die Variable zu leeren.

@BahnLand

Ich versuche immer so wenig wie möglich Kontakte etc zu verwenden, daher habe ich überlegt ob ich mir den Kontakt sparen kann. Besonders wenn Du viele Haltepunkte und große Schattenbahnhöfe hast, werden es eine sehr große Anzahl an Gleiskontakten. Aber Du hast schon recht, flexibler bist Du mit extra Kontakten .... mal sehen  

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 2 Stunden schrieb bigrala:

Das ist schon richtig, aber .... wenn z.B. aus versehen das Signal geschaltet wird oder weil der folgende Streckenabschnitt frei ist und das Signal geschaltet wird obwohl kein anderer Zug eingefahren ist, so wird der zuletzt freigegebene mit den Anweisungen beeinflußt.

Das koennte man auch so loesen das man, in der anfahr-anweisung, das gleis nominiert auf dem der zug ganz oda teilweise (vor dem signal steht) anstatt der lok. Alternativ koennte auch die lok nominiert bleiben unter der bedingung (die dann erfuellt sein muss) das sie auf dem gleis ganz oda teilweise steht.

Cheers

Tom

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Tom,

wenn Du beim Starten des Zuges das Gleis anstatt der Lok oder zusätzlich referenzierst, bekommst Du wieder Schwierigkeiten mit Mehrfachtraktionen oder geschobenen Zügen:

  • Besitzt Dein Zug eine Doppeltraktion und "erwischst" Du bei der Nennung nur des Gleises beide Loks, bekommen auch beide eine Geschwindigkeit zugewiesen. Sind die beiden Loks entgegengesetzt ausgerichtet, bleibt der Zug stehen, weil sich die beiden Geschwindigkeiten gegenseitig aufheben. Sind die beiden Loks gleich ausgerichtet, fährt der Zug zwar korrekt los, aber man kann bei "Zug betritt/verlässt Gleis" oder am Gleiskontakt das Triebfahrzeug nicht mehr eindeutig als "Auslöser" identifizieren. Das Modellbahn-Studio gibt dann als Resultat irgendeine der beiden Loks zurück, die dann eventuell angehalten wird. Da hierbei aber nur diese eine Lok "erwischt" wird, behält die andere Lok ihre Geschwindigkeit, und der Zug fährt weiter, anstatt anzuhalten.
  • Durch die Referenzierung von Lok und Gleis bei der Geschwindigkeitszuweisung bleibt die Lok zwar eindeutig, aber sollte sie nicht auf dem genannten Gleis stehen (z.B. weil sie den Zug schiebt), wird die Geschwindigkeitszuweisung nicht wirksam. Und wenn Du die Lok sowieso adressierst, kannst Du das Gleis auch weglassen. Denn wenn Du die Lok "als Objekt" adressierst, ist die Adressierung immer eindeutig.

Viele Grüße
BahnLand

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Bahnland,

So langsam, Step by Step steige ich da durch, was Du  in Deinem Baustein Baustein-Demo Signalhalt.mbp   gemacht hast ..... hoffe ich :-)

Die Funktion und verwendbarkeit ist einfach super - Vielen Dank !!!!

Was mir jedoch noch Kopfzerbrechen macht ist ein Erweitern und Umstricken Deiner Steuerung. Vielleicht hast Du da ja einen Tipp oder einen aktuellen, neuen Baustein.

Was ich gerne hätte wäre eine Kombination aus dem was ich im Moment anwende und Deiner Steuerung. Bei mir wird zunächst kurz vor dem Bhf alle Züge auf 40 km/h heruntergebremst, dann beim überfahren eines GLK (Bremskontakt) die Fahrzeuggeschwindigkeit per Verzögerung 2 auf 0 heruntergebremst. Dadurch bleiben die Züge sehr schönn sanft und nicht so abrupt wie bei Dir stehen.

Mein zweiter Wunsch wäre dieser Baustein für Gleise, welche in beider Richtungen befahren werden. Ich habe es mal versucht die GLK einfach zu kopieren und in umgekehrter Richtung auf dein Gleis zu setzen. Grundsätzlich funktioniert das auch, allerdings scheint bei mir noch ein Fehler drin zu sein, denn das Signal wird nicht wieder auf 0 gesetzt.

Ich bin leider "noch" nicht so weit das komplett neu aufzubauen - bin aber bereit zu lernen. Wäre schön, wenn Du einen erweiterten Baustein hättest. Für Dich als Profi dürfte es ja kein großer Aufwand sein ein entsprechenden Baustein herzustellen. ;-)

 

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo @bigrala,

hast Du Dir mal den "Anlagen-Baustein Bahnhofshalt zweiseitig" (Content-ID 5D5746ED-92CA-4680-BBBA-BC16CE654353) angeschaut? Der funktioniert nämlich in beide Richtungen. Hierzu gibt es auch eine aktualisierte

Demo-Anlage Bahnhofshalt zweiseitig (aktualisiert).mbp

Die Beschreibung dazu findest Du hier.

Viele Grüße
BahnLand

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo @bigrala,

ja.
Die Anlagen.Bausteine sind alle im Anlagen-Katalog in der Kategirie "Module zum Einbauen" abgelegt. In der jeweiligen Kurzbeschreibung findest Du einen Link "Anleitung", den Du anklicken kannst, sobald Du den Baustein als Anlage geladen hast. Oder Du klickst im Vorschaubild auf´das Zahnrädchen rechts oben und wählst dann im Popup-Menü ganz unten "EIgenschaften" aus. Dort kannst Du dann den Link "Anleitung" auch anklicken.

Es sind noch nicht besonders viele Bausteine. Aber es kommen noch welche dazu.

Viele Grüße
BahnLand

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