Jump to content

Recommended Posts

Posted

Hallo @Neo,

wäre es vielleicht möglich und umsetzbar, der EV eine Aktion hinzuzufügen, welche die Simulation pausiert, so als würde ich oben in der Menüleiste die Pause-Taste drücken? Das wäre beim Austesten bestimmter Situationen oder bei der Fehlersuche hilfreich. Man könnte z.B. ein bestimmtes Ereignis und eine Bedingung festlegen, bei deren Eintreffen dann alles schlagartig einfriert und kann sich dann in Ruhe die Situation ansehen und analysieren. Zwar lässt sich das momentan auch über Lua erreichen mit 'error ("Message")', aber dann muss zwingend die Protokollierung mitlaufen, sonst bleibt das Ding nicht stehen. Ohne die Protokollierung ist die Grafik flüssiger, weshalb ich die Protokollierung nur mitlaufen lasse, wenn's unbedingt nötig ist.

Gruß Timba

Posted

Nenn mal ein Beispiel für eine ungültige Abfrage. Das, was ich gerade als ungültige Abfrage mir ausgedacht habe, wird einfach ignoriert. Da passiert nix, weil das ja gar nicht ausgeführt werden kann, logisch, da bleibt aber auch nix stehen. Nur wenn ich die Protokollierung dazuschalte, hält die Sim an. Das erreiche ich aber auch mit einem kleinen Lua-Einzeiler, wie oben schon geschrieben. Aber trotzdem danke, dass du versucht hast, mir eine Hilfe zu geben. (y)

Posted

Okee.. habe gerade bemerkt, die stoppen die Simulation auch nur wenn die Ereignissprotokolierung eingeschaltet ist..
Aber ein Beispiel währe ein Objekt auf eine Eigenschaft zu prüfen die es nicht besitzt.

Posted

Hast du es schon versucht? Funktioniert nicht. In der grafischen EV kannst du sowieso nur das einrichten, das es gibt. Also habe ich eine Lua-Abfrage eingerichtet.

if $("24612").acceleration == 0 then
end

Das Objekt ist eine Weiche. Ist natürlich völliger Blödsinn, eine Weiche kann nicht beschleunigen. Und was macht MBS? Ignoriert es einfach.

Nein, Neo hat das Ding einfach zu gut programmiert, so leicht lässt es sich nicht austricksen. :D

Posted

Hallo Timba,

Am 16.10.2021 um 18:33 schrieb Timba:

Ohne die Protokollierung ist die Grafik flüssiger, weshalb ich die Protokollierung nur mitlaufen lasse, wenn's unbedingt nötig ist.

die Existenz der Ereignis-Protokollierung wird ja gleichzeitig als "Debug-Modus" interpretiert, weshalb ich zusätzliche Stopp- oder Trace-Befehle zunächst sein lassen wollen würde. Mir erscheint es zunächst sinnvoller, die Protokollierung vieler Ereignisse dahingehend zu verbessern, dass sie keinen Einfluss auf die Performance der Anlage hat. Zwar gibt es hier schon eine bestimmte Asynchronität, aber diese ließe sich noch verbessern.

Viele Grüße,

Neo

Posted

Hallo @Neo,
Du kennst meinen 'berühmten' 60ms Timer für die Seilbahn. Der haut in der Protokollierung auch voll rein. Wenn es dafür doch eine schöne Lösung gäbe...
Aber trotzdem unterstütze ich Timba's Wunsch. Für sehr komplexe Fälle wäre das doch manchmal wünschenswert. Ich erinnere mich an die Gleisdreieck-Debug-Sitzungen...

Gruß
  Andy

Posted

Hallo Andy,

vor 14 Minuten schrieb Andy:

Wenn es dafür doch eine schöne Lösung gäbe...

generell sollte ein Timer, der jedes Frame eine Prüfung durchführt, hinterfragt werden. Kennst du schon die neue Möglichkeit in V7, Animationen per Lua in einem bestimmten Bereich abzuspielen? Womöglich brauchst du den 60Hz-Timer gar nicht mehr.

Viele Grüße,

Neo

Posted
vor einer Stunde schrieb Neo:

die Existenz der Ereignis-Protokollierung wird ja gleichzeitig als "Debug-Modus" interpretiert, weshalb ich zusätzliche Stopp- oder Trace-Befehle zunächst sein lassen wollen würde. Mir erscheint es zunächst sinnvoller, die Protokollierung vieler Ereignisse dahingehend zu verbessern, dass sie keinen Einfluss auf die Performance der Anlage hat. Zwar gibt es hier schon eine bestimmte Asynchronität, aber diese ließe sich noch verbessern.

Grundsätzlich gebe ich dir völlig recht. Leuchtet ein. Aber du kennst das MBS besser als ich und weißt, dass die Rekonstruktion einer bestimmten Situation via Protokollierung eine recht aufwendige Angelegenheit ist. Wer stand wo zu einem gegebenen Zeitpunkt, usw. Es gibt Situationen, die sich besser via Protokollierung aufklären lassen und es gibt Situationen, bei denen ein Blick auf die Anlage der bessere Weg ist, die Geistesblitze zucken zu lassen. Bei letzterem ist eben nur der exakte Zeitpunkt wichtig. Per Hand stoppt man die Sim die entscheidenden Sekunden zu spät, leider.

Aber nicht so schlimm, wenn es derzeit keinen Stopp-Befehl in der EV geben kann, mit der Protokollierung geht es ja und die damit verbundenen Performance-Einbußen sind während des Testens zu verschmerzen.

Danke für die Antwort.

 

Gruß Timba

Posted

Hallo Timba,

vor 11 Minuten schrieb Timba:

es gibt Situationen, bei denen ein Blick auf die Anlage der bessere Weg ist

in solchen Fällen lasse ich eine Aufzeichnung mitlaufen.
Weil ich die anschließend vorwärts und rückwärts anschauen und die Entwicklung einer Situation genau beobachten kann.

Damit habe ich nicht nur den Status beim Auftreten eines Fehlers, sondern obendrein auch ein "was zuvor geschah".
Ursachen liegen ja zeitlich meist viel früher als ihre Auswirkungen.

Unter Windows 10 (Home) kannst du beispielsweise mit der Win-Taste + G ein Widget Menü öffnen, aus dem du unter anderem Bildschirmaufzeichnungen starten kannst.

Damit will ich dir deinen Wunsch nicht ausreden, sondern nur ein weiteres praktisches Werkzeug zur Fehlersuche in die Hand geben.

 

Viele Grüße
Götz

 

Posted

@Goetz, das mit der Aufzeichnungsmöglichkeit in Win10 kannte ich noch gar nicht. Vielen Dank für den Tipp. Zuerst dachte ich, du willst mich auch den Arm nehmen und meinst die Aufzeichnungsmöglichkeit aus dem MBS. Da hätte ich ja eine Woche oder mehr gebraucht, so langsam wie die ist. :D Aber das mit Win10 ist eine geile Sache. Das kann ich sicher gut gebrauchen hier und da. Im konkreten Fall wäre mir aus gewissen Gründen ein Stopp dennoch lieber gewesen. Ein praktisches Werkzeug ist es aber trotzdem auf jeden Fall. Super!

Gruß Timba

Posted
vor einer Stunde schrieb Neo:

Kennst du schon die neue Möglichkeit in V7, Animationen per Lua in einem bestimmten Bereich abzuspielen? Womöglich brauchst du den 60Hz-Timer gar nicht mehr

@Neo
Jetzt kommen wir etwas vom Thema weg, aber ein kurzer Satz wäre vielleicht doch sinnvoll. Es geht nicht um Animationen, er führt ja kurze Berechnungen durch. Bei der Seilbahn ist es das Halten der Senkrechtstellung, beim Driften auf der Fallerbahn hat er aus den Ist-Winkelveränderungen eines korrekt fahrenden unsichtbaren Modells die Winkellage des Modells beeinflusst. Also, in beiden Fällen aus x/y/z und Winkeln eine neue Position und Winkellage berechnen. Eine Anregung wäre deshalb vielleicht eine Art mehr oder weniger universeller Regler für derartige physikalische Simulationen, der den Timer 'versteckt'. Eine derartige Einheit hätte zeitlich begrenzte Auswirkungen, würde die Performance des MBS dann nur sehr eingeschränkt belasten, wenn man nicht zu viele von ihnen einsetzt. Aber da müssten wir erstmal Anwendungsmöglichkeiten sammeln, damit man weiß, wie sowas aussehen könnte. Die zwei Fälle sind da noch viel zu wenig. Praktisch haben wir sowas ja schon beim Beschleunigen und Bremsen.

@Timba
deshalb mein Verweis auf das Debuggen des Gleisdreickes. Da haben wir auch mit Videoaufzeichnung gearbeitet. Eventuell das Digitaluhrmodell mit der MBS-Simzeit mit ins Bild bringen, obwohl im Protokoll ja eine Zeitangabe mit drin ist.

Gruß
  Andy

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...