Jump to content

Name des Zuges ($_Trigger1._name) bei mehreren Loks


Vermanus

Empfohlene Beiträge

If I understand, you have 3 Locomotives, and want to set the speed for each one.  $_Trigger1 is not a variable, but is a pointer to a set of variables that include the Locomotive name, it's current Speed, and other things.  $_Trigger1 only exists only for the EV event Train Enters Track, Train leaves Track, and a few other events.  It is active  only until another Train Enters Track event or other simular event is triggered.

Wenn ich verstehe, Sie haben 3 Lokomotiven, und die Geschwindigkeit für jeden festlegen möchten. $_Trigger1 ist keine Variable, sondern ist ein Zeiger auf einen Satz von Variablen, die die Lok Namen enthalten, ist es, aktuelle Geschwindigkeit und andere Dinge. $_Trigger1 nur existiert nur für das EV-Ereignis tritt Bahnstrecke, Zug fährt weg und ein paar andere Veranstaltungen. Es ist aktiv, nur bis zu einer anderen Bahnstrecke betritt oder andere Simular-Ereignis ausgelöst wird.

$_Trigger1 points to one of two objects involved in the event, (In this case, the locomotive) and $_Trigger2 points to the other object (The Track)

$_Trigger1 verweist auf eines von zwei Objekten an der Veranstaltung beteiligt (In diesem Fall, die Lok) und $_Trigger2 verweist auf das andere Objekt (The Track)

$_Trigger1 has at least 4 properties connected to it.  They are: Name, Visible, Current Speed, and Target Speed.  You can read any of them with the appropriate request.  IE  $_Trigger1._Name returns the Locomotive Name, and $_Trigger1.CurrentSpeed returns the current speed.

$_Trigger1 hat mindestens 4 Eigenschaften verbunden ist. Sie sind: Name, Visible, aktuelle Geschwindigkeit und Zielgeschwindigkeit. Einer von ihnen mit den entsprechenden Antrag finden Sie hier. IE $_Trigger1 ._name kehrt der Lokomotive Name, und $_Trigger1.CurrentSpeed gibt die aktuelle Geschwindigkeit zurück.

If you have a preset speed or speeds that you want to assign to a locomotive, (You can have any number of speeds preset) you can set these speeds  as object variables attached to each and every Locomotive. 

Wenn Sie eine voreingestellte Geschwindigkeit oder beschleunigt, dass Sie eine Lok zuweisen möchten, (kann man beliebig viele Geschwindigkeiten Preset) als Object-Variablen zu jeder Lokomotive angebracht ist diese Geschwindigkeiten einstellbar.

ScreenShot_20161106142455.png

Object variables are set by selecting the object and clicking on the lines below it (In the red oval)

Object-Variablen werden festgelegt, indem das Objekt auswählen und dann auf die Zeilen darunter (im roten Oval)

ScreenShot_20161106142556.png

use the same name for the variable for each locomotive.

To set the speed, you need an event with a trigger track.  The Event can look like this>>

Verwenden Sie den gleichen Namen für die Variable für jede Lok.

Um die Geschwindigkeit festzulegen, benötigen Sie ein Ereignis mit einem Trigger-Track. Die Veranstaltung kann so aussehen >>

ScreenShot_20161106143402.png

with the $_Trigger1 pointing to the locomotive.    The action would look like this>>

mit $_Trigger1 auf der Lokomotive. Die Aktion würde wie folgt aussehen >>ScreenShot_20161106143543.png

with $_Trigger1 pointing to the object (The triggering Locomotive) and the Speed1 pointing to the prestored Object variable containing the speed.   Each locomotive must pass over the same trigger event track, (Or one just like it) to set the speed for that locomotive.

mit $_Trigger1 auf das Objekt (der auslösende Lok) und dem Speed1 zeigt die prestored Objektvariablen mit der Geschwindigkeit. Jede Lok muss der gleichen Trigger Event Spur übergehen, (oder man mag es einfach), die Geschwindigkeit für die Lokomotive eingestellt.

 

 

 

Bearbeitet von Curt84328
Link zu diesem Kommentar
Auf anderen Seiten teilen

Curt hat nicht ganz recht.

$_Trigger1 gibt es nicht nur für das Ereignis "Zug betritt ein Gleis" sondern auch für "Zug verläßt ein Gleis", "Signal schaltet" und andere.
$_Trigger1 steht dabei für eine festgelegtes Objekt (beim Ereignis "Zug betritt ein Gleis" z.B. die auslösende Lok oder beim Ereignis "Signal schaltet" das betroffene Signal). Es gibt bei einigen Ereignissen auch $_Trigger2 oder $_Trigger3. Beim Ereignis "Zug betritt ein Gleis" ist er $_Trigger2 z.B. das betroffenen Gleis.

Bei allen genannten Ereignissen bezieht sich die Variable $_Trigger1 auf das auslösende Objekt, bei einem Zugverband als auf die angetriebene Lok.
Wenn mehrere Loks aktiv eine Geschwindigkeit besitzen, müsste es sich auf die erste Lok beziehen, hier hilft aber nur ausprobieren.

Du kannst aber nicht über mehreren gleichnamigen Loks eine Geschwindigkeit zuweisen, da wird immer nur die Lok genommen, welche in der ID-Liste als erstes gefunden wird.

Link zu diesem Kommentar
Auf anderen Seiten teilen

47 minutes ago, MarkoP said:

Curt hat nicht ganz recht.

$_Trigger1 gibt es nicht nur für das Ereignis "Zug betritt ein Gleis" sondern auch für "Zug verläßt ein Gleis", "Signal schaltet" und andere.
$_Trigger1 steht dabei für eine festgelegtes Objekt (beim Ereignis "Zug betritt ein Gleis" z.B. die auslösende Lok oder beim Ereignis "Signal schaltet" das betroffene Signal). Es gibt bei einigen Ereignissen auch $_Trigger2 oder $_Trigger3. Beim Ereignis "Zug betritt ein Gleis" ist er $_Trigger2 z.B. das betroffenen Gleis.

Bei allen genannten Ereignissen bezieht sich die Variable $_Trigger1 auf das auslösende Objekt, bei einem Zugverband als auf die angetriebene Lok.
Wenn mehrere Loks aktiv eine Geschwindigkeit besitzen, müsste es sich auf die erste Lok beziehen, hier hilft aber nur ausprobieren.

Du kannst aber nicht über mehreren gleichnamigen Loks eine Geschwindigkeit zuweisen, da wird immer nur die Lok genommen, welche in der ID-Liste als erstes gefunden wird.

Danke,  

Meine Antwort war nicht komplett, wenn zuerst gepostet, jetzt beendet.

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Curt, Hallo MarkoP,

@Curt84328: Danke für die ausführliche Info. Aber um das ging es mir gar nicht.

MarkoP hat schon den richtigen Pfad erwischt. Es geht darum, welchen Namen (den ich über $_Trigger1._name bei Betreten eines Gleises auslesen kann) hat der Zugverband. Der Hintergrund: die führende Lok gibt das Tempo vor und die anderen bekommen dann ihre Speeds zugewiesen. Da auf meiner Anlage die Züge automatisch gesteuert werden, ist der Trigger enorm wichtig. Beim Speedzuweisen ist aber auch wichtig, welche Lok die Führungslok ist (die Trigger-Lok). Und das konnte ich bis dato nicht exakt herausfinden, weil sich das während der Fahrt geändert hat.

VGaÖ

Vermanus

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Vermanus,

wenn Du "_Trigger1" auswerten möchtest, solltest Du im Zugverband tunlichst nur ein Fahrzeug "antreiben". Sollte beispielsweise eine zweite Dampflok im Zug bei dessen Fahrt ebenfalls dampfen, würde ich dies mit einem verknüpften "Rauchgenerator" (Partikeleffekt) lösen, der zusammen mit dem Starten und Stoppen der "angetriebenen" Lok synchron mit gestartet oder gestoppt wird. Eine andere Lösung fällt mit momentan nicht ein.

Viele Grüße
BahnLand

 

Bearbeitet von BahnLand
Link zu diesem Kommentar
Auf anderen Seiten teilen

Am ‎07‎.‎11‎.‎2016 um 12:32 schrieb Vermanus:

die führende Lok gibt das Tempo vor und die anderen bekommen dann ihre Speeds zugewiesen

Dabei bekommt dann aber auch der gesamte Zug die dreifache Geschwindigkeit der einzelnen Loks, da die Geschwindigkeiten von mehreren Loks im Verbund aufaddiert werden.

Außerdem dürfte das spätere Bremsen der Einzel-Loks schwer werden, da mit dem Trigger definitiv nur eine Lok im Zugverband angesprochen werden kann.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Marko und Quackster,

dass sich die Geschwindigkeiten der verschiedenen Loks generell aufaddieren, "war einmal" (noch im alten 3D-Eisenbahnplaner, zumindest bei gleichgerichteten Geschwindigkeiten - das war die Zeit der "Zugraketen" :P), ist aber schon längst ausgebaut. So viel ich weiß, wird heute bei mehreren angetriebenen Fahrzeugen im Zugverband bei Geschwindigkeiten in derselben Richtung jene mit dem höchsten Betrag (ohne Berücksichtigung des Vorzeichens) wirksam. Sind die Geschwindigkeiten zweier Fahrzeuge entgegengesetzt orientiert, kompensieren sie sich gegenseitig. D.h. bei zwei angetriebenen Fahrzeugen mit der (im Betrag) selben Geschwindigkeit, aber entgegengesetzter Ausrichtung bleibt der Zug stehen. Sind die Geschwindigkeits-Beträge beider Fahrzeuge unterschiedlich, siegt das "stärkere". Wie das mit mehr als zwei angetriebenen Fahrzeugen mit unterschiedlich ausgerichteten Geschwindigkeiten ist, weiß ich nicht. Meine Vermutung geht dahin, dass jeweils von den Geschwindigkeiten in einer Richtung das Maximum gebildet wird, und dann die beiden Maxima "gegeneinander antreten". Genaueres hierzu kann sicher Neo beisteuern.

Viele Grüße
BahnLand

Bearbeitet von BahnLand
Link zu diesem Kommentar
Auf anderen Seiten teilen

hallo BahnLand,

ich hatte als quer und späteinsteiger keine ahnung das sich die geschwindigkeiten früher mal im mbs aufaddierten. danke für die info.
meine überlegungen waren eher der realität geschuldet - die Marko von Vermanus schon eingefordert hatte (möglichkeiten im mbs, zu geschwindigkeitssteigerung und bremsverhalten von Zügen).

vg quackster

Link zu diesem Kommentar
Auf anderen Seiten teilen

@Bahnland

seit wann gibt es denn diese Änderung.
Das macht die ganze Situation ja vollends verrückt. Da muss man ja jetzt dreimal überlegen was jetzt passiert wenn man mit mehreren Loks in einem Zugverband arbeitet die gleichzeitig angetrieben sind. 

Die Aufaddierung war nicht sonderlich schön, aber zumindest in allen Situationen mit einem identischen Verhalten, so dass es merk- und berechenbar war.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Marko,

wenn ich mich richtig erinnere, gab es diese Korrektur schon im alten 3D-Eisenbahnplaner. Denn der "Aufschrei" (auch von mir) wegen der nicht mehr handhabbaren "Raketenzüge", sobald ein Zug auf einen anderen auffuhr, war riesig. Dass Neo das Aufaddieren der einzelnen Geschwindigkeiten dann unterbunden hat, war im wahrsten Sinne des Wortes ein Segen.

Das Behandeln von mehreren "angetriebenen" Einheiten in einem Zugverband war schon immer schwierig. Denn wird beispielsweise durch "Zug betritt Gleis" genau das betretende Fahrzeug abgebremst oder angehalten, wirkt sich das eben nicht auf ein weiter hinten eingereihtes Fahrzeug aus, wodurch die Abbremsung dann nicht wirksam wird. Wird der Zugverband jedoch "hart" angehalten (z.B. durch eine "Sperrweiche"), wird die Geschwindigkeit aller agetriebenen Einheiten auf "0" zurückgesetzt. Möchte man dann beim erneuten Anfahren des Zuges wieder allen betroffenen "Lokomotiven" eine Geschwindigkeit zuordnen, geht das nur explizit über die Lokomotiv-Namen, weil man ja möglicherweise nicht weiß, auf welche Gleisabschnitte man für das "Antreiben" die einzelnen Lokomotiven zurückgreifen muss.

Ich treibe in meinen Zugverbänden grundsätzlich jeweils nur ein Fahrzeug an und identifiziere dieses bei der Einfahrt in einen Halteabschnitt über die _Trigger1-Variable. Diese Information ist nur bei einem einzigen angetriebenen Fahrzeug eindeutig. Ich kann das Fahrzeug dann beim Zuweisen einer neuen Geschwindigkeit über seinen Namen ansprechen, wodurch ich die Position des Fahrzeugs im Zugverband nicht zu kennen brauche. Möchte ich Eingeschsaften eines weiteren Fahrzeugs "manipulieren", muss ich dessen Identität anderweitig hinterlegen (z.B. um einen der (Dampf-)Lok separat zugeordneten Rauchgenerator anzuwerfen oder abzuschalten).

Frage an Neo:
Wäre es möglich, Rollmaterialien vom Typ "Lokomotive" eine weitere Verknüpfungs-Eigenschaft zuzuweisen, mit welcher sämtliche Zustände der ersten Lok, mit der die zweite (oder dritte usw.) verknüpft wird, automatisch "vererbt" werden? Dies hätte dann insbesondere zur Folge, dass eine Geschwindigkeitszuordnung zur ersten Lok automatisch auf die verknüpften Loks übertragen würde (u.a. würden dann verknüpfte Dampfloks bei der Fahrt ebenfalls rauchen). Allerdings müsste man dann wahrscheinlich selbst dafür sorgen, dass alle miteinander verknüpften Fahrzeuge in dieselbe Fahrtrichtung ausgerichtet sind (da sich ja sonst die Geschwindigkeiten gegenseitig kompensieren würden).

Viele Grüße
BahnLand

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Bahnland,

also ich kann mich entsinnen, dass die Diskussion der aufaddierten Zuggeschwindigkeiten auch noch im MBS ein Thema war. Wie du an mir siehst wusste ich nicht einmal, dass es da eine Änderung gab. Allerdings muss ich zugeben, dass ich Zugverbände mit mehreren Loks vermeide wie die Pest. Bei Triebwagen treibe ich auch jeweils immer nur eine Lok an.

Doch so gut die Änderung auch ist, so müsste sie dennoch in allen Situationen gleich greifen, sonst wird es meiner Meinung nach zu unübersichtlich.
Soll heißen das wenn zum Beispiel beim Triebwagenzug eine Lok 50 mm/s eingestellt hat und die andere 100mm/s, sich dort die Geschwindigkeiten nicht egalisieren dürften, sondern ebenfalls die Lok mit dem höheren Wert das "Rennen" gewinnt. Gleiches Beispiel bei positiver und negativer Geschwindigkeit, hier müsste sich dann ebenfalls die "schnellere" Lok durchsetzen.

So wie du es beschrieben hast und ich es durch Tests nachvollziehen kann gibt es derzeit mehrere Zustandsmöglichkeiten, was es bei Steuerungen über die EV doppelt schwierig macht, weil man immer mehrere Möglichkeiten berücksichtigen muss statt nur einer Einzigen.

Gruß
MarkoP

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 1 Monat später...

I have found the same issue through the plug-in interface, track events can be sourced from ANY, but only ONE, of the driven locomotives and appears arbitrary and will change from track join to join.

The work around to this is to add a variable to the locomotives.... something like Train_ID = 1,2,3 etc. Obviously with the same numeric value on all locomotives attached to the same train.

Then in the event handler "ANY train enters/exits track".events, add a qualifier condition that filters for $Trigger_1.Train_ID.

 

Bearbeitet von trevor
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...