Jump to content

Was läuft hier falsch (bei mir)?


Tesla

Empfohlene Beiträge

Hallo m.weber,

Bild 1:   korrekt

Bild 2:   Name: korrekt;      Wert: falsch!   -  muss korrekt $_Trigger1._CurrentSpeed lauten!

Bild 3:   korrekt

Bild 4:   falsch (korrekt ist Bild 3)

Die im Modellbahn-Studio vordefinierten "System"-Variablen (also Variablen, die vom Modellbahn-Studio vorgegeben sind), beginnen alle mit einem Unterstrich.

"_Trigger1" ist hierbei in den Ereignisdefinitionen "Zug betritt Gleis" und "Zug verlädst Gleis" die vom MBS bereitgestellte Referenz auf das angetriebene Fahrzeug des das Ereignis auslösenden Zuges. Mit dem Voranstellen des $-Zeichens greift man auf dessen Inhalt zu. Wenn das Triebfahrzeug des das Ereignis auslösenden Zuges "Zuglok" hieße, würde das MBS beim Bearbeiten des ausgelösten Ereignisses "$_Trigger1" durch "Zuglok" ersetzen.

"_Trigger1._CurrentSpeed" ist die vom MBS bereitgestellte Objektvariable bei den beiden oben genannten Ereignisdefinitionen, welche die beim Eintritt des Ereignisses gültige aktuelle Geschwindigkeit der über "_Trigger1" referenzierten Lok enthält. Auch hier greift man durch Voranstellen des $-Zeichens auf deren Inhalt zu. Besäße also die Lok mit der Bezeichnung "Zuglok" die aktuelle Geschwindigkeit 100 mm/s,  würde das MBS den Begriff "$_Trigger1._CurrentSpeed" durch "100" ersetzen.

Die Fomulierung "$_Trigger1.speed" ist ebenfalls zulässig, wenn der durch "$_Trigger1" referenzierten Lok (im obigen Beispiel "Zuglok") eine Objektvariable "speed" zugewiesen ist. Wenn also beispielsweise die Lok mit dem Namen "Zuglok" die Objektvariable "Zuglok.speed" besitzt, und dieser zuvor ein fester Wert "Zuglok.speed = 200" zugewiesen zugewiesen wurde, dann wird beim Auswerten eines der obigen Ereignisse durch das MBS anstelle der in der zugehörigen Definition hinterlegten Referenz "$_Trigger1.speed" der Wert "200" verwendet. Diese fest vordefinierte Geschwindigkeit ist jedoch nicht mit der mittels "$_Trigger1._Currentspeed" festzustellenden aktuellen Geschwindigkeit des das Ereignis auslösenden Zuges zu verwechseln!

Viele >Grüße
BahnLand

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo m.Weber

Screenshot_2.jpg

Was ich erkennen konnte !

$Trigger1._CurrentSpeed

 

Viele Grüße

H:xnS

BahnLand war wieder mal schneller - durch den Gong der Mitteilung hab ich auch noch ein Fehler gemacht .

Richtig wär wie BahnLand schreibt   $_Trigger1._CurrentSpeed . Wollte helfen und doch NICHT richtig - grrrr.

 

Sorry !

 

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo m.weber,

es wäre nicht nur für nachfolgende Lese-Generationen hilfreich, wenn Du Deine Lösung hier kurz beschreiben würdest.

Aus Erfahrung wissen wir, daß das Forum nicht nur eine gern gegebene Hilfe für den Einzelfall sondern auch eine Wissens-Fundgrube für alle User mit den gelösten Problemen ist. Weil wir ausserdem nicht immer wieder dieselben Fragen beantworten möchten, wäre eine kurze Erläuterung Deiner Lösung wichtig.

Könnte es mit dem fehlenden Unterstrich ( _ )  zusammenhängen ?

Auch die angekündigte Beispielanlage ist leider nicht vorhanden.

Herzliche Grüße,

Henry

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Henry,

nun, mein Fehler war, und den hat Bahnland auch nicht registriert, daß, wenn ich Bild 2 korrigiere in " $_Trigger1._CurrentSpeed  ", Bild 3 nicht richtig sein kann, weil ich dort dann anstelle von "Haltegleis2.lok" durch "$_Trigger1._CurrentSpeed" ersetzen muß. Dann funktionierts auch.

Das, was ich da versuche, lade ich hier mal hoch, nur zur Ergänzung.

Das noch verbleibende Problem ist die Beschleunigung auf Vmax der auslösenden Lok (in diesem Fall der Emma, definiert in der Objektvariablen Vmax=120). Betritt die Emma das Gleis, bleibt sie einfach stehen. (Daß in der EV die Beschleunigung inaktiviert werden muß bei Signal 2 auf "Fahrt" ist noch eine andere Sache).

 

Gruß,

Michael

 

 

Test002.mbp

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Michael,

dass in Bild 3 die Wertzuweisung "$Haltegleis2.lok" für die Geschwindigkeits-Anzeige nicht funktioniert, liegt nicht an dieser Wertzuweisung, sondern daran, dass es das Objekt "Haltegleis2" auf Deiner Anlage nicht gibt. Damit kannst Du auch die Objektvariable "Haltegleis2.lok" im Bild 1 nicht setzen (diesen Fehler bekommst Du nur nicht mit). Gib mal irgendeinem Gleisstück auf Deiner Anlage den Namen "Haltegleis2", und Du wirst sehen, dass dann Bild3 sehr wohl funktioniert.

Dass es dieses Gleis auf Deiner Anlage bisher nicht gibt, konnte ich nicht wissen. Und bei Deiner Korrektur kannst Du sogar auf die Variablen-Zuweisung in Bild 1 ganz verzichten (funktioniert so ja wegen dem nicht vorhandenen Objekt eh nicht). Wenn Du aber die hier festgestellte Geschwindigkeit in einer später auszuführenden Ereignisdefinition wiederverwenden möchtest, kommst Du um die Zwischenspeicherung in einer Variablen nicht herum. Wenn Du dafür dann eine Objekt-Variable verwendest (wie in Bild 1), musst Du allerdings sicherstellen, dass das Objekt auch wirklich existiert. Sonst nimm eine "einfache" Variable (ohne "."), da Du hier keine Abhängigkeit von einem Objekt hast (die aber manchmal gewünscht ist).

Viele Grüße
BahnLand

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