Jump to content

Empfohlene Beiträge

Geschrieben

Hallo Gemeinde,

beim Nachbau meiner realen Anlage mit 3D-Studio habe ich inzwischen mit der EV geübt.
Habe nun das Problem mit Loks in Doppeltraktion, dass die am Signal halten und starten.
Wie kann ich 2 Loks die gleiche Geschwindigkeit zuordnen?
Oder kann bei einer Lok der Antrieb deaktiviert werden, dass sie quasi als Hänger mit läuft?

Bin für alle Tipps dankbar

Grüß

Lothar 
 

Geschrieben

Hi Lothar

Du hast 2 Möglichkeiten um 2 Loks synchron zu steuern, wobei das Lok anhängen (also ähnlich eines wagons) eine der Optionen ist. Allerdings schränkt sich das ein wenig ein. Eine passiv bewegte Lok fährt keine Stromabnehmer hoch und raucht nicht, es sei denn diese Funktionen könnten als Animation unabhängig von der Bewegung der Lok kontrolliert werden.

Also bleibt noch die einfache Möglichkeit für beide Loks alle geschwindigkeitszuweisungen immer gleichzeitig in der EV fest zu legen. Also bei dem gleichen Ereignis den Befehl fahrzeuggeschwindigkeit setzen 2x eingeben.

Cheers

Tom

Geschrieben

Hallo Tom,

danke für deine schnelle Antwort, aber wie kann ich bei einer Lok den Antrieb abschalten, also nur anhängen?
Da bei jedem Signal jede Lok starten und stoppen soll, ist das mit dem anhänge der einfachere Weg.

Und... die V60 raucht nicht und hat keine Stromabnehmer9_9

Gruß

Lothar

Geschrieben

Hallo Lothar,

Du musst nicht explizit den "Antrieb abschalten". Es genügt, dass Du der "Lok" keine Geschwindigkeit zuweist (0 km/h). Dann fährt die Lok als "Wagenlok" mit.

Insbesondere dann, wenn ein Zug in der Ereignisverwaltung bei den Ereignissen "Zug betritt Gleis" und "Zug verlässt Gleis" über die "_Trigger1"-Variable (eine System-Variable des Modellbahn-Studios) identifiziert werden soll, darf im kompletten Zugverband nur eine Lok "angetrieben" (d.h. mit einer von "0" verschiedenen Geschwindigkeit versehen) sein. Sonst kann das antreibende Fahrzeug nicht eindeutig identifiziert werden.

vor 35 Minuten schrieb MX1954LL:

Da bei jedem Signal jede Lok starten und stoppen soll, ...

Ich nehme mal an, dass Du die Lok an jedem Signal über das Gleis beim Signal und nicht über den Loknamen starten möchtest (Geschwindigkeitszuordnung mit Fahrzeug = [Alle Fahrzeuge] und Gleis/Straße = Gleis am Signal). Dann soltest Du darauf achten, dass das Gleis so kurz ist, dass nur die erste Lok auf dem Gleis steht. Wenn nämlich die zweite Lok ebenfalls (zumindest teilweise) mit auf diesem Gleis steht, bekommt sie die Geschwindigkeit ebenefalls zugeordnet. Und das möchtest Du ja nicht.

Auf "Nummer sicher" gehst Du hierbei, indem Du zum Starten der Lok nicht das Gleis, sondern den Namen der Lok referenzierst. Hierzu musst Du Dir deren Namen aber beim Einfahren merken, damit Du beim Starten darauf zurückgreifen kannst.

Beispiel:
Es sei Gleis_1 der Name des Gleises an Signal_1, an dem ein beliebiger ankommender Zug anhalten soll. Der hier betrachtete Zug werde durch die Lok mit der Bezeichnung Lok_1 angetrieben. Dann gehst Du wie folgt vor:

  1. Ereignis "Zug betritt Gleis" an Gleis_1 :
    Setze Objektvariable Gleis_1.Triebfahrzeug = $_Trigger1._Name
  2. Start des Zuges beim Ereignis "Signal schaltet" durch das sich öffnende Signal Signal_1 :
    Weise Fahrzeuggeschwindigkeit zu mit Fahrzeug = $Gleis_1.Triebfahrzeug und Gleis/Straße = [Alle Gleise/Straßen]

Beim Ereignis "Zug betritt Gleis" enthält die System-Variable _Trigger1._Name den Namen der den einfahrenden Zug antreibenden Lok (hier "Lok_1"). Mit dem Ausdruck $_Trigger1._Name (mit vorangestelltem $-Zeichen) gibst Du an, dass Du der Objektvariablen Gleis_1.Triebfahrzeug (die Bezeichnung "Triebfahrzeug" ist hierbei von mir frei erfunden) den Inhalt der Variable _Trigger1._Name zuweisen möchtest (also den Wert "Lok_1"), und nicht den Text "_Trigger1._Name".

Wenn Du nun beim Ereignis "Signal schaltet" des sich öffnenden Signals Signal_1 bei der Geschwindigkeitszuweisung für das Fahrzeug $Gleis_1.Triebfahrzeug angibst, wird wegen des vorangestellten $-Zeichens auch hier der Inhalt der Objektvariable Gleis_1.Triebfahrzeug, also der Name "Lok_1" der den auf Gleis_1 stehenden Zug antrreibenden Lok zugewiesen.

Hierbei spielt es übrigens keine Rolle, ob die Lok wirklich auf Gleis_1 steht oder nicht. Denn es wird ja die Lok explizit referenziert. Deshalb funktioniert diese Methode auch dann, wenn die Lok sich am Ende eines geschobenen Zuges befindet. Und da die Lok explizit referenziert wird, besteht auch nicht die Gefahr, dass eventuelll versehentlich eine weitere Lok mit gestartet wird. 

Der wesentliche Aspekt an dieser Konstruktion ist, dass der Name der Lok des betrachteten Zuges in den beiden Ereignisdefiniionen aus (1) und (2) oben überhaupt nicht auftritt. Die System-Variable "_Trigger1.Name" wird bei jedem auftretenden Ereignis "Zug betritt Gleis" vom Modellbahn-Studio automatisch mit der Bezeichnung des antreibenden Fahrzeugs belegt, sodass immer das aktive Triebfahrzeug des gerade eingefahrenen Zuges referenziert wird - unabhänig davon, welcher Zug eingefahren ist. Diese eindeutige Identifizierung funktioniert aber nut dann, wenn es im Zugverband wirklich nur ein "angetriebenes" Fahrzeug gibt. Damit funktioniert die hier beschriebene Ereignisdefinitions-Folge auch für alle Züge, welche das Gleis_1 erreichen und hier auch wieder gestartet werden sollen.

Viele Grüße
BahnLand

Geschrieben
vor 47 Minuten schrieb BahnLand:

Hallo Lothar,

Du musst nicht explizit den "Antrieb abschalten". Es genügt, dass Du der "Lok" keine Geschwindigkeit zuweist (0 km/h). Dann fährt die Lok als "Wagenlok" mit.

 

Viele Grüße
BahnLand

Guten Tag

Mal eine Frage kann mann der EV zb beibringen das sie nur einen bestimmten Teil der Bezeichnung als Lok akzeptiert? Also zb alles was mit Bezeichnung Lok (Name) anfängt auch als Lok sieht und den Rest ignoriert??

 

Geschrieben

Hallo Hans,

vor 24 Minuten schrieb pfjoh:

Mal eine Frage kann mann der EV zb beibringen das sie nur einen bestimmten Teil der Bezeichnung als Lok akzeptiert? Also zb alles was mit Bezeichnung Lok (Name) anfängt auch als Lok sieht und den Rest ignoriert??

gib deinen "echten" Loks eine von dir selbstgewählte Objektvariable. Damit kannst du Loks von Wagenloks unterscheiden.

Viele Grüße,

Neo

Geschrieben

Guten Abend zusammen,
@Bahnland, es funktioniert nun die Doppeltraktion wie ich das wollte. Der entscheidende Hinweis war der, auf die Gleislänge.
Habe nun alles wie in meiner realen Anlage mit den Längen der Schaltgleise und dem Bremsverhalten der Loks hinbekommen.

Das mit den Objektvariablen und dem Trigger werde ich auch noch ausprobieren,

vor 6 Stunden schrieb BahnLand:

Wenn Du nun beim Ereignis "Signal schaltet" des sich öffnenden Signals Signal_1 bei der Geschwindigkeitszuweisung für das Fahrzeug $Gleis_1.Triebfahrzeug angibst, wird wegen des vorangestellten $-Zeichens auch hier der Inhalt der Objektvariable Gleis_1.Triebfahrzeug, also der Name "Lok_1" der den auf Gleis_1 stehenden Zug antrreibenden Lok zugewiesen.

 Hier habe ich nicht gefunden wie $Gleis_1.Triebfahrzeug angewählt werden kann.

Erstmal vielen Dank für eure Hilfe.

Gruß

Lothar

Geschrieben

Hi Lothar

BahnLand hat dir das weiter oben sehr gut und nachvollziehbar beschrieben. Ich weiss aus eigener erfahrung das die EV mit all ihren variablen (da kommen gerne erinnerungen an die schulzeit hoch) die abba selten mit mathematik zu tun haben zunaechst sehr verwirrend und wie eine riesige wand vor der man steht vorkommt. Besser als BahnLand kann man es nicht erklaeren, deshalb empfehle ich dir es wieder und wieder zu lesen, und zwischendurch natuerlich probieren. Nur so erlernst du es und wirst am ende denken: klar, logisch, so gehts.

Viel erfolg

Cheers

Tom

Geschrieben

Hallo Lothar,

die Objektvariable Gleis_1.Triebfahrzeug definierst Du selbst (Du könntest sie auch "Gleis_1.xyz" nennen; dann müsstest Du aber in meiner Anlteiung oben überall den Text "Triebfahrzeug" durch "xyz" ersetzen). Die Variable ist dynamisch. D.h. sie wird erst angelegt, wenn ihr ein Wert (Text oder Zahl) zugewiesen wird. Darum kannst Du sie vor der Wertzuweisung nicht finden. Wenn Du der Variable den Wert "" (leerer Text ohne Zeichen) zuweist, verschwindet sie auch wieder automatisch.

Viele Grüße
BahnLand

Geschrieben

Hallo Bahnland,

jetzt hab ich das gefunden, es muß eine Benutzerdefinierte Eingabe erfolgen, das war der Hänger.

Herzlichen Dank
Jetzt kann ich auch OBJEKTVARIABLE (y):D

Gruß
Lothar

  • 1 Monat später...
Geschrieben
Am 29.12.2018 um 12:32 schrieb BahnLand:
  • Ereignis "Zug betritt Gleis" an Gleis_1 :
    Setze Objektvariable Gleis_1.Triebfahrzeug = $_Trigger1._Name
  • Start des Zuges beim Ereignis "Signal schaltet" durch das sich öffnende Signal Signal_1 :
    Weise Fahrzeuggeschwindigkeit zu mit Fahrzeug = $Gleis_1.Triebfahrzeug und Gleis/Straße = [Alle Gleise/Straßen]

Hallo Bahnland,
nach deiner Vorgabe war ich mit einem Gleis erfolgreich den Zug in Doppeltraktion zu starten und zu stoppen mit Objektvariablen.

Wenn ich jetzt für das zweite und dritte Gleis, die selbe Vorgehensweise programmiere und die 1 durch eine 2 bzw. eine 3 für das dritte Gleis ersetze,
funktioniert das nicht. Wenn ich den Namen in der Variablenliste manuell eintrage, strtet jeder Zug problemlos und stoppt bei rot.
Der Name des Triebfahrzeuges wird aber nur bei Gleis 1 eingelesen. Bei Gleis 2 kommt der Name des Gleises und bei 3 kommt gar nichts.

Hilfe ruft ein verzweifelter Lothar

Geschrieben

Hallo Lothar,

Du darfst zwar bei "Gleis_1" und "Signal_1" die Nummer hochsetzen, aber nicht bei "_Trigger1" !
Denn während die Bezeichnungen "Gleis_x" und "Signal_x" von Dir selbst als Bezeichnungen für das x-te Gleis gewählt wurden (x = 1, 2, 3), ist "_Trigger1" eine "feste System-Variable" mit einer bestimmten Funktionalität, nämlich der Identifizierung der Lok, wenn es sich bei dem Ereignis um "Zug betritt Gleis" oder "Zug verlässt Gleis" handelt. Ebenso hat auch "_Trigger2" eine feste Bedeutung (nämlich die Identifizierung des betretenen oder verlassenen Gleises), während es "_Trigger3" bei den genannten Ereignissen nicht gibt. Also keinesfalls die Nummer bei "_Trigger1" hochzählen!

Viele Grüße
BahnLand

 

Geschrieben

Herzlichen Dank, Bahnland,

genau das ist es gewesen. Jetzt funzt alles wie gewollt(y)
Hab jetzt auch die Trigger Liste im Wiki gefunden.:x
Manchmal arbeite ich mich halt von hinten an das Problem ran, geht solange gut, solange das Problem nicht ausschlägt:D

Nochmals Danke
Lothar

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