baki2512 Geschrieben 16. November 2019 Geschrieben 16. November 2019 Hallo, ich hab da mal wieder eine Frage - aber vorab: Neo, die neue EV ist super, damit hab selbst ich die rudamentären Grundlagen von Variablen begriffen. Aber nun zur Frage: In V 4 gab es bei der EV den kleinen Button "EV exportieren", den vermisse ich in V 5 oder kann ich wieder nicht richtig gucken? War eigentlich schön: Exportieren und in Word umwandeln, dann in der Suchfunktion das falsch schaltende Element eingegeben und schon bekam man eine Übersicht, wo überall dieses Element in der EV steckte. Gruß und schönes WE Baki
Timba Geschrieben 16. November 2019 Geschrieben 16. November 2019 vor 3 Stunden schrieb baki2512: den vermisse ich in V 5 Hallo baki2512, den vermissen mehrere Nutzer, nicht nur du. Es wurde auch schon angefragt, ob die Exportfunktion zurückkommt. Wir müssen abwarten, ob der Wunsch erfüllt wird. Gruß Timba
baki2512 Geschrieben 16. November 2019 Autor Geschrieben 16. November 2019 Hallo Timba, danke - dann hoffen wir mal. Gruß Baki
metallix Geschrieben 16. November 2019 Geschrieben 16. November 2019 Hi baki2512 Das EP (ereignisprotokol) bietet einige filter und such funktionen die recht komfortabel zu eventuellen problemen in der EV fuehren. Falls das EP permanent im hintergrund laeuft, waehrend man an der EV schraubt, wird sofort bei jedem probelauf reklamiert (durch fehlermeldung mit link zum problemeintrag, sowie pausieren der gesammten anlage) Wenn man die EV in script mode schreibt, verweigert MBS die annahme fehlerhafter eintraege. Daher denke ich das eine export funktion geschichte ist. Cheers Tom
Neo Geschrieben 16. November 2019 Geschrieben 16. November 2019 Hallo, tatsächlich handelte es sich bei dem alten Export um eine Funktion, um die Unzulänglichkeiten der alten EV zu umgehen, die sehr unübersichtlich war und kenne nennenswerte Suchfunktion besaß. Auch suggerierte der Export einen erneuten Import, den es nie gab und schon aus technischen Gründen nie geben wird. Aus diesem Grund liegt mein Fokus nicht mehr bei einer Export-Funktion für die neue EV, sondern in verbesserten Such- und Anzeigemöglichkeiten, direkt im Programm. Diese möchte ich auch in Zukunft weiter verbessern (die neue EV ist ja gerade erst "geboren"), wodurch ein Export immer unwichtiger wird. Viele Grüße, Neo
BahnLand Geschrieben 16. November 2019 Geschrieben 16. November 2019 (bearbeitet) Hallo @Neo, der Export der EV bis V4 hatte - wie @baki2512 oben schreibt - eben den großen Vorteil, dass man die gesamte EV komplett in einer Datei ablegen konnte und dann eben ganze Abschnitte der EV im Blick hatte. Dies ist heute nicht mehr möglich. Man kann sich immer nur eine einzelne Ereignisdefinition anzeigen lassen und muss dann sogar noch jede einzelne Bedingung oder Aktion separat öffnen, um deren Inhalt identifizieren zu könnnen. Oder man muss nach Lua umschalten, um sich das Script für diese Ereignisdefinition anschauen zu können. Der Trace (das Ereignisprotokoll) kann kein Ersatz für die exportierte Ereignissteuerung sein, da der Trace nur den aktuellen Ablauf protokolliert, aber nicht die Gesamtheit der Ereignisdefinition wiedergibt. Im Prinzip wäre zum EV-Export aus V4 das Äquivalent in V5 die Ausgabe des kompetten Lua-Scripts, wobei der Lua-Script-Abschnitt für jede Ereignisdefinition noch mit deren Bezeichnung überschrieben werden müsste. Beispiel: Ausgehend von der linken Übersicht der aktuellen Anzeige in der Ereignisverwaltung könnte ich mir einen Export etwa in der folgenden Form vorstellen (unvollständig): Dies würde dem Export in V4 ziemlich nahe kommen und könnte sogar direkt in Lua geschriebene Teile mit umfassen, da es ja nichts anderes als die Lua-Script-Darstellung der Ereignissteuerung ist. Zumindest hätte man mit einer solchen Ausgabe wieder eine komplette Zusammenstellung der Ereignissteuerung, ohne jedes einzelne Ereignis anwählen, aufklappen, und dann noch jede einzelne Aktion darin separat öffnen (oder doch wieder nach Lua umschalten) zu müssen. Die "Kapitel-Überschriften" (aus der Liste der Ereignisdefinitionen in der linken Spalte des ersten Bildes) habe ich hier nur als "Bildausschnitte" einkopiert (genauso wie die Indformation unter "Wann wird das Ereignis ausgelöst?"). Diese müsste man irgendwie noch in den Ausgabetext des Exports integrieren - genauso wie die (jeweils Ereignismodul-spezifische Variablen- und Timer-Liste). Wäre die Realisierung eines solchen Exports mit überschaubarem Aufwand möglich? Viele Grüße BahnLand Bearbeitet 17. November 2019 von BahnLand
baki2512 Geschrieben 17. November 2019 Autor Geschrieben 17. November 2019 Hallo, wenn ich als ziemlich unbedarfter Nutzer und kein EDV Experte (Lua ???????) das Beispiel anführen darf, was mich zu meiner Frage gebracht hat: Zug betritt Gleis 1 --> Signal 1 wird ausgelöst Jetzt mein Fehler an anderer Stelle: Zug betritt Gleis 2 --> Signal 1 wird ausgelöst Die falsche Aktion war klar, das Signal schaltete, obwohl es nicht sollte - aber welches falsche Ereignis löste diesen Fehler aus? Im Protokoll sehe ich zwar z.B. mit Hilfe des Filters, dass das Signal geschaltet hat, aber nicht wer es getan hat. Da muss man schon sehr genau aufpassen und die Anlage sofort stoppen, wenn das Ereignis zur Unzeit ausgelöst wird. Früher habe ich exportiert, alles unter Word abgespeichert (damit kann ich wenigstens umgehen) und als Suche eingegeben: Signal 1. Sofort zeigte mir Word alle Ereignisse an, in denen Signal 1 vorkam. Und ein weiterer Vorteil für mich war, dass ich in für mich lesbarer Form ausgewählte Ereignisse komplett ausdrucken konnte und so z.B. an anderer Stelle, wenn ich es in ähnlicher Form brauchte, wieder erfassen konnte (hier nehme ich mal das Beispiel aus den Tutorials "Bahnübergang öffnen/schließen"). Die Abfolge der Ereignisse habe ich mir einmal ausgedruckt und brauche jetzt nicht mehr bei einer neuen Anlage überlegen, wie das Teil ainzurichten ist. Und wie gesagt, ich bin (zwar langjähriger) Nutzer der EDV - aber mit Programmierung habe ich nichts zu tun gehabt. Ich kann mit den Standardprogrammen umgehen. Da hätte ich selbst mit dem Beispiel von Bahnland so meine Probleme, das zu lesen, geschweige denn, zu verstehen. Aber das könnte ich auch in meinem Alter dann vielleicht noch lernen (bin ja nicht unwillig - hab nur keine Zeit) Gruss Baki
Andy Geschrieben 17. November 2019 Geschrieben 17. November 2019 Es ist schwer genug das eigene Programm unter Kontrolle zu halten. Aber ein fremdes Programm in den kribbelbunten Kästchen mit der kaum lesbaren Schrift und nur stets einem 'sichtbaren' Ereignis mit den derzeitigen Suchfunktionen auf Fehler abzuklopfen, da passe ich. Das habe ich in der V4 nur per Export geschafft, und indem ich mit Textprocessing und Mustersuchen unstrukturierte zigfachkopierte Dinge zusammengefasst und in eine Art von neuen Funktionsaufrufen umgewandelt habe. Wie finde ich denn z.B. ereignisübergreifende Lua-Funktionsaufrufe? Oder die Stelle, wo die Funktion definiert ist? Geht nicht! Die Folgeeffekte einer Umbenennung eines Timer kann ich gar nicht abschätzen. Der neue Begriff taucht in der Suchliste 'nach Timer' jedenfalls gar nicht auf. Da steht noch der alte Name drin. Wie finde ich einen Kommentar -- TODO den ich mir irgendwo reingeschrieben habe? Keine Chance. Hier gibt es echte Mängel, die nur über einen Export schnell ausgeglichen werden könnten. Was wir da alles noch brauchen, wissen wir wahrscheinlich noch gar nicht. Das kommt erst richtig, wenn wir mit V5 richtig loslegen. Warum geht die Suche nicht einfach so wie im Lua-Editor? Vermutlich wegen den Referenzen. Dann müssen die in der Suche eben 'entfaltet' werden. Und ja - der Export wäre im Endeffekt ein langes Lua-Listing, das in einem Texteditor weiterbehandelt werden kann. Das in den bunten Blöckchen zum Ausdrucken? Wer glaubt, er käme damit weiter, irrt. Das gab's vorher ja auch nicht. Mit dem puren Export habe ich auch nichts anfangen können, nach Einsatz von BahnLand's XML-Auswerter ging's aber richtig los! Sorry, wenn das jetzt vielleicht etwas harsch ausgefallen ist. Aber wenn's um die Wurst geht, muß man auch mal kämpfen. Gruß Andy
metallix Geschrieben 17. November 2019 Geschrieben 17. November 2019 Hi Baku Wenn du ein Objekt aktiviert hast und im Eigenschaften Fenster oben rechts das Quadrat mit den Linien anklickst öffnet sich das Fenster in dem du auf Aktionen klicken kannst (darunter ist die Option für variable u schlagworte). Es erscheint eine Auflistung aller Aktionen in die das aktive Objekt in der EV eingebunden ist. Vielleicht am besten alle deaktivieren und einzeln nacheinander wieder aktivieren um den Fehler zu finden.... Manchmal ist es auch nur eine vergessene Änderung eines Eintrags wenn man eine Aktion vervielfältigt um sie in ähnlichen Situationen zu recyceln. Cheers Tom
Timba Geschrieben 17. November 2019 Geschrieben 17. November 2019 vor 3 Stunden schrieb baki2512: Da hätte ich selbst mit dem Beispiel von Bahnland so meine Probleme, das zu lesen, geschweige denn, zu verstehen. Hallo Baki, das siehst du viel zu pessimistisch. Mal dein eigenes Beispiel zugrundegelegt: Schaltet dein Signal 1 falsch, dann könntest du in einem Listing in der Art von BahnLands Beispiel alle Stellen finden, wo Signal 1 geschaltet wird, auch ohne Lua zu "verstehen". Hast du die Stellen erst gefunden, ist der Rest reine Formsache. Gruß Timba
Timba Geschrieben 17. November 2019 Geschrieben 17. November 2019 (bearbeitet) vor einer Stunde schrieb metallix: Es erscheint eine Auflistung aller Aktionen in die das aktive Objekt in der EV eingebunden ist. Hi Tom, das ist nicht ganz richtig. Es erscheinen an der Stelle nur die Ereignisse, für die das betreffende Objekt der Auslöser ist und nicht die Ereignisse, deren Ziel das betreffende Objekt ist. In dem o.a. Beispiel von Baki kannst du Signal 1 selektieren, findest dort aber nichts, weil das Signal durch ein Gleis geschaltet wird. Um das Ereignis über das Eigenschaftsfenster zu finden müsste man wissen, welches Gleis die Signalschaltung bewirkt hat, aber genau das ist ja sein Problem: Er weiß es an der Stelle nicht. Gruß Timba Bearbeitet 17. November 2019 von Timba Fehler korrigiert
baki2512 Geschrieben 17. November 2019 Autor Geschrieben 17. November 2019 Hallo Metallix, hallo Timba, jetzt bist Du mir zuvorgekommen, Timba. Als ich Metallix Vorschlag ausprobiert habe, kam bei mir nämlich bei Ereignissen nur "neu". Geht also nicht. Und ob ich es zu pessimistisch weiß ich noch nicht - dazu kenne ich das alles noch zu wenig. Gruß Baki
metallix Geschrieben 17. November 2019 Geschrieben 17. November 2019 (bearbeitet) Hi Timba Uuups stimmt, das habe ich wohl zu rosarot gesehen. Abba vielleicht waere das etwas was @Neo einrichten koennte Danke fuers aufmerksam machen Cheers Tom Bearbeitet 17. November 2019 von metallix
metallix Geschrieben 17. November 2019 Geschrieben 17. November 2019 Hi Baki Stell doch mal die anlage hier ein, mit einer fehlerbeschreibung am besten. Cheers Tom
Timba Geschrieben 17. November 2019 Geschrieben 17. November 2019 vor 2 Minuten schrieb baki2512: Und ob ich es zu pessimistisch weiß ich noch nicht - dazu kenne ich das alles noch zu wenig. Hallo Baki, vertraue doch einfach. Ich glaube nicht, dass ich übertrieben habe. Ein Lua-Listing ist zunächst mal ein Text, ob du die Befehle verstehst oder nicht. Einen Text mit Word zu durchsuchen ist dir doch vertraut. Also findest du die Stellen, an denen "Signal 1" steht leicht. Nach dem Beispiel von BahnLand steht obendrüber die Bezeichnung des Ereignisses, damit kannst du zielgerichtet in deine EV zurück und den Fehler eliminieren, ohne dich um die Bedeutung von Lua-Befehlen kümmern zu müssen. Gruß Timba
metallix Geschrieben 17. November 2019 Geschrieben 17. November 2019 (bearbeitet) Hi Baki Eine andere moeglichkeit waere das signal einfach mal loeschen, das EP ausklappen und die anlage laufen lassen. Sobald etwas das nicht vorhandene signal referenziert sollte das EP alarm schlagen und dir einen link zu dem entsprechendem eintrag zeigen. Wuerde natuerlich helfen wenn die moeglichkeiten ueberschaubar waeren und du den oda die richtigen ausloeser eindeutig kennst. Die entsprechenden aktionen sollten dann vorher deaktiviert werden, so das lediglich die ungeplante(n) aktion(en) den fehler ausloesen.... Cheers Tom Bearbeitet 17. November 2019 von metallix
Timba Geschrieben 17. November 2019 Geschrieben 17. November 2019 vor 9 Minuten schrieb metallix: Abba vielleicht waere das etwas was Neo einrichten koennte Hi Tom, Neo hat ja in seinem Beitrag gestern bereits in Aussicht gestellt, die Such- und Anzeigemöglichkeiten der EV weiter zu verbessern. Ich nehme ihm auch seine Ambition ab, eine gewisse Perfektion dabei zu erreichen. Hätte er diesen Ehrgeiz nicht, wäre MBS nicht das, was es ist. Nur selbst der weltbeste Programmierer kann nicht jede Möglichkeit bedenken und so werden immer Wünsche offen bleiben. Schon alleine die von Baki erwähnte Möglichkeit, sich bestimmte Dinge auszudrucken als Vorlage für andere Projekte, was ich übrigens auch oft schon gemacht habe, entfällt bzw. ist nur umständlich möglich. Man kann eben nur ein einzelnes Ereignis nach Lua konvertieren, nach Word kopieren und muss dann dort die verschiedenen Ereignisse des Moduls wieder zusammensetzen. Die Arbeit mache ich mir, wenn es mir wichtig ist, aber mit einem Export nach BahnLands Beispiel wäre das deutlich einfacher. Zwar kann ich Neo nicht widersprechen, durch eine verbesserte Such- und Anzeigemöglichkeit wird der Export unwichtiger, aber er wird nicht völlig überflüssig. Gruß Timba
Timba Geschrieben 17. November 2019 Geschrieben 17. November 2019 vor 2 Minuten schrieb metallix: Eine andere moeglichkeit waere das signal einfach mal loeschen, das EP ausklappen und die anlage laufen lassen. Sobald etwas das nicht vorhandene signal referenziert sollte das EP alarm schlagen und dir einen link zu dem entsprechendem eintrag zeigen. Super Idee! Muss ich mir gleich mal merken für meine eigenen Probleme, die unweigerlich irgendwann auftreten werden. Danke.
metallix Geschrieben 17. November 2019 Geschrieben 17. November 2019 vor 3 Minuten schrieb Timba: Super Idee! Muss ich mir gleich mal merken für meine eigenen Probleme, die unweigerlich irgendwann auftreten werden. Danke. Keine ursache, kam mir halt gerade so in den kopp, als ergebniss. Langes gruebeln, ewiges probieren mit V5 und stetiger austausch hier im forum waren die zutaten
baki2512 Geschrieben 17. November 2019 Autor Geschrieben 17. November 2019 Hallo Metallix, den Fehler habe ich schon selbst gefunden - aber eben etwas umständlich über die EV Protokollierung. Es reicht nämlich m.E. nicht, das Objekt (z.B. Signal 1) zu filtern, da erscheint der Auslöser nicht sondern nur, das ausgelöst wurde. Also Protokoll vollständig laufen lassen und wie ein Luchs aufpassen, wann das Ereignis eintritt und sofort stopp, dann sient man auch den Auslöser. Das ist aber bei größeren Anlagen kaum ein probates Mittel, bei meiner kleinen geht es noch, aber 20 Züge müssen auch erst einmal über ihre Gleise fahren. Gruss Baki
baki2512 Geschrieben 17. November 2019 Autor Geschrieben 17. November 2019 vor 32 Minuten schrieb metallix: Hi Baki Eine andere moeglichkeit waere das signal einfach mal loeschen, das EP ausklappen und die anlage laufen lassen. Sobald etwas das nicht vorhandene signal referenziert sollte das EP alarm schlagen und dir einen link zu dem entsprechendem eintrag zeigen. Wuerde natuerlich helfen wenn die moeglichkeiten ueberschaubar waeren und du den oda die richtigen ausloeser eindeutig kennst. Die entsprechenden aktionen sollten dann vorher deaktiviert werden, so das lediglich die ungeplante(n) aktion(en) den fehler ausloesen.... Cheers Tom Das werde ich übrigens auch mal ausprobieren - geht ja über studieren. Gruss Baki
Timba Geschrieben 17. November 2019 Geschrieben 17. November 2019 vor einer Stunde schrieb baki2512: Also Protokoll vollständig laufen lassen und wie ein Luchs aufpassen, wann das Ereignis eintritt und sofort stopp, dann sient man auch den Auslöser. Falls du mal nicht wie ein Luchs aufpassen möchtest, kannst du dir ein winziges Skript in die EV packen. Als Auslöser nimmst du "Signal schaltet" und trägst dort das betreffende Signal (in diesem Fall "Signal 1") ein. Ins Skript schreibst du nur "error()". Solange das Ereignisprotokoll mitläuft bleibt die Anlage exakt da stehen, wo das Signal geschaltet wird. Gruß Timba
BahnLand Geschrieben 17. November 2019 Geschrieben 17. November 2019 Hallo, ich habe als Beispiel für eine Export-Ausgabe noch ein etwas komplexeres Beispiel ausgesucht und um die Ausgabe der Objektvariablen ergänzt. Basierend auf dieser Struktur könnte der Export dann nach meinem Verständnis so aussehen, beginnend mit der Auflistung der in dieser Struktur selbst nicht enthaltenen Objektvariablen: Hierbei habe ich die Schlagwörter (hier konkret eines) vorangestellt und darunter jene Objekte aufgelistet, welchen dieses Schlagwort zugeordnet ist. Danach folgt die Liste aller Objekte, welche Objektvariablen vom Typ "nicht Schlagwort" sind, mit jeweils der Liste der zugeordneten Objektvariablen. Nachfolgend wird die Struktur der Ereignisdefinitionen abgearbeitet. Hierbei werden die Inhalte eines Ereignismoduls stets gegenüber diesem etwas eingerückt dargestellt, was bei verschachtelten Ereignismodulen zu einer größeren Schachtelungstiefe führt: Jede Ereignisdefinition wird um die Art des Ereignisses und mögliche Parameterwerte ergänzt (entsprechend dem unter der Überschrift "Wann wird das Ereignis ausgelöst?" angezeigten Informationstext). Danach folgt wie bereits oben beschrieben das Lua-Scrigt für die komplette Ereignisdefinition - ebenfalls noch einmal eingerückt: Abgesehen davon, dass die einzelnen Bedingungen und Aktionen in der Ereignisdefinition nicht mehr über deren "Schlüsselbegriffe" und die zugehörigen Parameter, sondern als Lua-Statements wiedergegeben werden, ist der Inhalt doch weitgehend identisch. Wenn man dabei einzelne Statements möglicherweise nicht sofort "nachvollziehen" kann, bleibt dann immer noch der Ausweg, die entsprechende Aktion in der originalen Ereignissteuerung nachzuschauen (z.B. bedeutet das Statement "$("Wartegleisweiche").state = ($("Wartegleisweiche").state + 1) % $("Wartegleisweiche").stateCount", dass der Zustand der Weiche einfach "umgeschaltet wird" - der "%"-Operator ist hierbei der "modulo"-Operator, mit dem der Zustand, sobald er durch das Hinzuaddieren von "1" den möglichen Maximalwert überschritten hat, wieder auf "0" zurückgesetzt wird). Viele Grüße BahnLand
baki2512 Geschrieben 8. Dezember 2019 Autor Geschrieben 8. Dezember 2019 Am 17.11.2019 um 11:07 schrieb Timba: Falls du mal nicht wie ein Luchs aufpassen möchtest, kannst du dir ein winziges Skript in die EV packen Hallo Timba, das funktioniert richtig gut . Meinen Fehler jetzt hätte ich wohl sonst nicht gefunden (das die EDV auch so genau in Zehntelsekunden arbeitet, dass nicht einmal das EV-Protokoll die zeitliche Abfolge anzeigt). Am 17.11.2019 um 09:17 schrieb metallix: Eine andere moeglichkeit waere das signal einfach mal loeschen Hallo Tom, bei einer komplexeren EV muss ich vor der Fehlerberichtigung aber einmal schließen ohne zu speichern. Sonst muss ich ja alle Ereignisse suchen, wo dieses Signal angesprochen wird und nicht nur das Falsche. Da scheint mir Timbas Lösung praktikabler. Einen schönen Advent und viele Grüße Baki
Empfohlene Beiträge
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 erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden