Tesla Posted April 19, 2017 Share Posted April 19, 2017 (edited) Ich möchte eine Lokgeschwindigkeit auslesen und in einer Anzeige darstellen. Jedoch etwas mache ich offensichtlich falsch Könnte mir da mal jemand helfen? Edited April 19, 2017 by m.weber Link to comment Share on other sites More sharing options...
BahnLand Posted April 19, 2017 Share Posted April 19, 2017 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 to comment Share on other sites More sharing options...
h.w.stein-info Posted April 19, 2017 Share Posted April 19, 2017 Hallo m.Weber Was ich erkennen konnte ! $Trigger1._CurrentSpeed Viele Grüße HnS 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 to comment Share on other sites More sharing options...
Tesla Posted April 19, 2017 Author Share Posted April 19, 2017 (edited) Danke Euch beiden, dennoch, es wird nichts angezeigt. Ich stelle die "Anlage" mal ein... Hab meinen Fehler gefunden.... manchmal ist man echt ein wenig GAGA... Edited April 19, 2017 by m.weber Link to comment Share on other sites More sharing options...
Henry Posted April 19, 2017 Share Posted April 19, 2017 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 to comment Share on other sites More sharing options...
Tesla Posted April 20, 2017 Author Share Posted April 20, 2017 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 to comment Share on other sites More sharing options...
BahnLand Posted April 20, 2017 Share Posted April 20, 2017 (edited) 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 Edited April 20, 2017 by BahnLand Link to comment Share on other sites More sharing options...
Henry Posted April 20, 2017 Share Posted April 20, 2017 Hallo Michael, das Ereignis Abfahren tritt nur ein, wenn das Signal auf 1 schaltet dann klappt auch die Abfahrt. HG, Henry Link to comment Share on other sites More sharing options...
Henry Posted April 20, 2017 Share Posted April 20, 2017 Hallo Michael, ich hab mir erlaubt, das vordere Gleis in Block 1 umzubenennen und die Ereignisverwaltung beispielhaft zu überarbeiten. Siehe Anlage Test002b.mbp Viele Grüße, Henry PS: nicht vergessen, den einzelnen Loks die festen Geschwindigkeiten zu geben. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now