Markus Meier Geschrieben 7. Februar Geschrieben 7. Februar (bearbeitet) Liebe Freaks/Vollprofis Ich hab mal eine vorsichtige Frage an euch Vollprofis. Alle meine Anlagen laufen derzeit ja mit Schaltersteuerung/ Fahrstrassensteuerung. Diesen muss man immer wieder drücken wenn der Zug seine Route abfahren soll um dann am Bahnhof wieder zum stehen zu kommen Jetzt würd ich aber gern mal versuchen das ganze komplett automatisch ablaufen zu lassen ohne das man wo drücken muss das wär für mich die championsleague Ist der Weg von der Schaltersteuerung zum kompletten Automatikbetrieb noch weit ? welche ergänzenden Einträge muss ich hierfür noch in da EV machen oder muss ich da eine komplett neue EV für machen ? Markus Bearbeitet 7. Februar von Markus Meier
AndreasWB Geschrieben 7. Februar Geschrieben 7. Februar Hallo @Markus Meier, meine Strategie sieht vor, daß die Fahrstraßen, sobald sie aktiviert wurden, versuchen weitere Folge-Fahrstraßen zu aktivieren. Beispiel: Eine Strecke bestehe aus Block A (Fahrstraße A), Block B, Block C, Block D, ... Sobald Fahrstraße A aktiviert wurde, versucht sie (mit einer gewissen Verzögerung) die Fahrstraße B zu aktivieren. Diese dann entsprechend Fahrstraße C, usw. Die Verzögerung sollte so gewählt werden, daß nicht zuviele Fahrstraßen im Voraus reserviert werden. Hängt also von der Länge der Fahrstraßen und Geschwindigkeit der Züge ab. Bei Einfahrten in Bahnhöfe hast Du natürlich eine Auswahl (Liste) von möglichen Fahrstraßen (Gleis 1, Gleis 2, usw.). Außerdem sollte der Zug eine gewisse Zeit im Bahnhof verweilen, dann seine entsprechende Ausfahrt-Fahrstraße aktivieren. Das ist eine grobe Skizze und wird natürlich durch Deine Art der Anlage und Deine Regeln bestimmt. Gruß Andreas
Markus Meier Geschrieben 7. Februar Autor Geschrieben 7. Februar Ahja ok 🤔 , also arbeitest du zwischen den Fahrstraßenaktivierungen mit dem Befehl Zeitverzögerung irgendwie, wäre cool wenn du vielleicht ein Foto reinstellen könntest das ich den Aufbau vielleicht sehen kann. Ich glaube das ist doch etwas komplexer. Da sollte man mit Bildern arbeiten oder du schaust mal anhand meiner Anlagen wie ich die gemacht hab mit da EV ( hab damals ewig lang gebraucht und es durch viele tipps dann selber irgendwann geschafft mit der schaltersteuerung ) ( Steinheim z.B ) Der EV aufbau is bei mir eigentlich immer dersselbe ( jedoch mach ich mir auch immer fotos wenn ich mal eine neue bauen sollte )
Markus Meier Geschrieben 7. Februar Autor Geschrieben 7. Februar (bearbeitet) vor 55 Minuten schrieb AndreasWB: Hallo Markus Meier, meine Strategie sieht vor, daß die Fahrstraßen, sobald sie aktiviert wurden, versuchen weitere Folge-Fahrstraßen zu aktivieren. Beispiel: Eine Strecke bestehe aus Block A (Fahrstraße A), Block B, Block C, Block D, ... Sobald Fahrstraße A aktiviert wurde, versucht sie (mit einer gewissen Verzögerung) die Fahrstraße B zu aktivieren. Diese dann entsprechend Fahrstraße C, usw. Die Verzögerung sollte so gewählt werden, daß nicht zuviele Fahrstraßen im Voraus reserviert werden. Hängt also von der Länge der Fahrstraßen und Geschwindigkeit der Züge ab. Bei Einfahrten in Bahnhöfe hast Du natürlich eine Auswahl (Liste) von möglichen Fahrstraßen (Gleis 1, Gleis 2, usw.). Außerdem sollte der Zug eine gewisse Zeit im Bahnhof verweilen, dann seine entsprechende Ausfahrt-Fahrstraße aktivieren. Das ist eine grobe Skizze und wird natürlich durch Deine Art der Anlage und Deine Regeln bestimmt. Gruß Andreas P.s. Weisst du wichtig ist für mich immer diesselbe Schritte zu machen dann entwickelt sich ein flow und man kann es gut aufbauen. Ein klares Vorgehen im Aufbau der EV. Das sind ja dann immer wiederkehrende abläufe die einfach nur automatisch abgespielt werden Bearbeitet 7. Februar von Markus Meier
AndreasWB Geschrieben 7. Februar Geschrieben 7. Februar (bearbeitet) Hallo @Markus Meier, in meinem vorherigen Beitrag habe ich ja zwei Szenarien beschrieben: Reservierung entlang einer Strecke, Reservierung einer Einfahrt in einen (Schatten-)Bahnhof. In beiden Fällen sollte dem Zug eine flüssige Fahrt ermöglicht werden. Als Lokführer möchte ich "Freifahrt mit Fahrt erwarten" am Signal sehen. Daher muß ich nach Möglichkeit den übernächsten Block reservieren können. Somit muß man also die Verzögerung bis zur Folge-Reservierung für seine Anlage experimentell einstellen. Bei mir sind es im vorliegenden Beispiel 12 Sekunden. So, nun die konkreten Fälle: 1. Reservierung entlang einer Strecke. Weiter oben in der EV habe ich eine Verzögerung von 12 Sekunden eingebaut. Dann benötigt jede Fahrstraße natürlich die Information über die Folgefahrstraße. Hier die variable "FolgeFS", die in jeder Streckenfahrstraße zu hinterlegen ist. 2. Der letzte Block vor einem (Schatten-)Bahnhof: In dieser Fahrstraße muß die Liste (folgeFSListe) mit allen Fahrstraßen hinterlegt werden, in die der Zug einfahren könnte. Die erst beste freie wird aktiviert. Dumm nur, daß in MBS die Wiederholung eine primitive iterative Schleife ist. Entgegen zu einer echten Programmiersprache muß ich den Abbruch nach Finden einer freien Fahrstraße künstlich mit der Variablen "freieFS" erzwingen. Nun ja - ein Abbruch ist es ja nicht (gibt es in der grafischen EV nicht), sondern ein Ignorieren aller weiterer Listeneinträge, die trotzdem aufgerufen werden. Ich gehe also davon aus, daß die Fahrstraße des aktuellen Listeneintrags nicht aktivierbar ist (freieFS = False), was vor Beginn der Schleife festgelegt wird. Innerhalb der Schleife prüfe ich zunächst, ob ich noch keine freie Folgefahrstraße gefunden habe. Dann prüfe ich, ob die Folgefahrstraße des aktuellen Listeneintrags aktivierbar ist. Wenn ja, wird sie aktiviert und die Variable "freieFS" aus True (wahr) gesetzt. Dann beginnt die Schleife für den nächsten Listeneintrag. Sollte jetzt die Variable "freieFS" auf True stehen, wird das aktivieren des nächsten Listeneintrags übersprungen. So läuft die EV weiter über jeden Listeneintrag, ohne die weiteren Fahrstraßen zu aktivieren. Wie gesagt, MBS bietet hier leider nur diese primitive Möglichkeit. Stammt wohl noch aus vor-Basic Zeiten. Sollte es in der grafischen EV einen "break"-Befehl geben, so zeige man ihn mir. Und wie eingangs gesagt: Das ist meine Strategie, die bisher gut funktioniert. Du muß für Deine Anlagen allerdings Deinen eigenen Weg gemäß Deiner Anlage-Automatik-Regeln finden. Gruß Andreas Bearbeitet 7. Februar von AndreasWB
Markus Meier Geschrieben 7. Februar Autor Geschrieben 7. Februar Ok 😅 Ich werd in nächster zeit mal versuchen mit extra abgespeicherten anlagen das irgendwie mal zu versuchen. Danke erstmal is ja jetzt erstmal nur um sich da bissl ran zu tasten Markus
AndreasWB Geschrieben 7. Februar Geschrieben 7. Februar Ich sag' es mal so: Wenn man so etwas vorhat, sollte man auf jeden Fall Prozeßabläufe formulieren können. Danach übersetzt man sie eben in die jeweilige "Sprache". Gruß Andreas
Markus Meier Geschrieben 7. Februar Autor Geschrieben 7. Februar (bearbeitet) vor 39 Minuten schrieb AndreasWB: Ich sag' es mal so: Wenn man so etwas vorhat, sollte man auf jeden Fall Prozeßabläufe formulieren können. Danach übersetzt man sie eben in die jeweilige "Sprache". Gruß Andreas Ja ich merk schon das ist doch deutlich komplizierter wie das fahren lassen über eine Fahrstrasse oder per Schalter die man immer wieder selbst betätigen muss 😅 das war für mich aber eine riesen nummer selbst DAS hinzubekommen das kannst du mir glauben Ich hab meine Anlagen ganz bewusst sehr simpel gehalten. Entweder sind diese Eingleisig mit 2 Zügen oder mehrgleisig wo sie so gebaut worden sind das alle züge immer gleichzeitig fahren können . Also kein schnick schnack das sich züge kreuzen und andere auf der Strecke dann halten müssen um andere züge wieder gewähren zu können und sowas z.B. Sowas hab ich alles nicht. Jeder Zug bei mir kann jederzeit fahren und keiner blockiert den anderen 😉 Bearbeitet 7. Februar von Markus Meier
Phrontistes Geschrieben 8. Februar Geschrieben 8. Februar vor 11 Stunden schrieb AndreasWB: Sollte es in der grafischen EV einen "break"-Befehl geben, so zeige man ihn mir. Es geht jedenfalls "halbgraphisch": 20250208 AndreasWB break.mbp Nur der erste Wagen verschwindet, obwohl alle das Schlagwort "Hide" haben.
AndreasWB Geschrieben 8. Februar Geschrieben 8. Februar Hallo @Phrontistes, bitte siehe: ich spreche über die Formulierung mittels grafischer EV. vor 12 Stunden schrieb AndreasWB: Sollte es in der grafischen EV einen "break"-Befehl geben, ... Und es wäre doch einfacher, den Code-Schnipsel hier einfach abzubilden. Nicht jeder hat V9.
Phrontistes Geschrieben 8. Februar Geschrieben 8. Februar Wo genau soll in der vorhandenen Struktur vor 51 Minuten schrieb AndreasWB: hier sein? Muss dann Deiner Meinung nach auch noch error und print rein? Oder können das Leute, die programmieren können, das nicht vielleicht auch tippen? vor 54 Minuten schrieb AndreasWB: Nicht jeder hat V9. Sehr witzig! Du willst ein neues Feature und das soll dann rückwirkend erscheinen? Bis 8.5 musste man das "break" halt auch noch in den Kommentar schreiben um es zu sehen.
Goetz Geschrieben 8. Februar Geschrieben 8. Februar vor 48 Minuten schrieb Phrontistes: Sehr witzig! Du willst ein neues Feature und das soll dann rückwirkend erscheinen? Nein, er will nur, dass jeder im Posting sehen kann, wie diese halb-grafische Lösung aussieht. Er wünscht sich deshalb einen Screenshot von deinem Lösungsvorschlag: Weil auch ein V8 User damit etwas anfangen kann.
Phrontistes Geschrieben 8. Februar Geschrieben 8. Februar (bearbeitet) vor 2 Stunden schrieb AndreasWB: Nicht jeder hat V9. Aber jeder kann sich V9 kostenlos parallel installieren um neuere Anlagen zu sehen. Nachtrag: Und ich habe bewusst ein mbp geschickt, damit man nachvollziehen kann, wie es kommt, dass man das "break" in V9 sieht, ohne eine Bemerkung einzutragen. Man muss nur den Kommentarheader rauslöschen. Bearbeitet 8. Februar von Phrontistes Nachtrag
Markus Meier Geschrieben 8. Februar Autor Geschrieben 8. Februar Oh gott. Also bei diesem ganzen Fachgesimpel bin ich wohl ganz klar draussen 😅😵💫am besten wäre es eigentlich aus meiner prakmatischen sichtweise her ( nennt mich von mir aus blondine 😂 ) wenn man einfach eine Sequentz abspielen könnte die man nach beendigung einfach selbst beenden könnte und das Programm merkst sich dann den ablauf und spielt diesen in Dauerschleife immer wieder ab. Aber das ist dann wohl doch zu simpel gedacht 🙁 Ich werde jetzt mal eine Testanlage bauen wo ich meine EV drauf setze und die dann veröffentlichen und ihr könnt dann vielleicht anhand dieser Testanlage das ganze in der ev noch ergänzen. Das wär wohl die beste methode Den die EVs haben bei mir eigentlich immer den selben aufbau. Dann ist eine Basis da die ich dann nur noch ergänzen muss 🤔
Markus Meier Geschrieben 8. Februar Autor Geschrieben 8. Februar (bearbeitet) P.s Ziel ist es hierbei eigentlich immer möglichst viel Fahrbetrieb zu haben und nicht das Motto zu pflegen das ein zug immer auf den anderen warten soll sondern sie möglichst gleichzeitig fahren sollen ( nur mit minimalen unterschieden ) so das möglichst viele zugbewegungen auf der Anlage stattfinden können und so sind diese auch aufgebaut. Inkl. einer realistischen Haltezeit am Bahnhof natürlich Bearbeitet 8. Februar von Markus Meier
AndreasWB Geschrieben 8. Februar Geschrieben 8. Februar Hallo @Phrontistes, auch V9 kostet zunächst neues Geld. So, ich habe aus Spaß mal versucht, Deinen eigentlich ja pragmatischen Ansatz nachzuvollziehen. 1. Deine Variante mit <Script> wird bei mir bei der Umsetzung mit Hinweis auf fehlerhaftes Skript verweigert. Man kann ein derartiges Skript mit nur einem Break-Befehl nicht abspeichern. 2. Dann habe ich die Variante als benutzerdefinierter Aktion gewählt. Das läßt sich wenigstens speichern, weist aber ebenfalls auf fehlerhaftes Skript hin. Und in der Folge läßt sich auch die Ereignisprotokollierung nicht starten.
Phrontistes Geschrieben 8. Februar Geschrieben 8. Februar vor 25 Minuten schrieb AndreasWB: auch V9 kostet zunächst neues Geld. Nein, denn vor 4 Stunden schrieb Phrontistes: jeder kann sich V9 kostenlos parallel installieren um neuere Anlagen zu sehen. vor 36 Minuten schrieb AndreasWB: Hinweis auf fehlerhaftes Skript Deines ist ja auch fehlerhaft, mein Muster ist es nicht. Es hat keiner gesagt, dass die Lua-Anweisung break außerhalb einer Schleife funktioniert, worauf Du ja in der Fehlermeldung auch hingewiesen wirst ("not inside a loop"). Du hattest oben ausdrücklich von einer vor 18 Stunden schrieb AndreasWB: Schleife geredet. MBS-Ereignisse kann man selbstverständlich nicht einfach abbrechen. Das ist auch nicht nötig; man muss sie ja nur logisch und syntaktisch korrekt programmieren.
Phrontistes Geschrieben 8. Februar Geschrieben 8. Februar vor 43 Minuten schrieb AndreasWB: Man kann ein derartiges Skript mit nur einem Break-Befehl nicht abspeichern. Kann sein, dass Neo das in V9 geändert hat. Dort kann man es speichern, obwohl ein einzelnes break natürlich nicht zulässig ist.
AndreasWB Geschrieben 8. Februar Geschrieben 8. Februar Hm, in einem anderen Post hatte ich gelesen, daß eine in V9 neue Möglichkeit eigentlich nicht beabsichtigt und ein Programmfehler war. Was in Deinem Beispiel zufällig funktioniert, war von den Programmierern wohl so nicht beabsichtigt. Außerdem ist das Abbrechen einer Schleife mit "break" keine saubere Programmierung, sondern sollte immer durch Bedingungen im Schleifen-Kopf oder -Fuß geregelt werden. In der grafischen EV ist davon allerdings keine Spur.
Goetz Geschrieben 8. Februar Geschrieben 8. Februar vor 22 Minuten schrieb AndreasWB: in einem anderen Post hatte ich gelesen, daß eine in V9 neue Möglichkeit eigentlich nicht beabsichtigt und ein Programmfehler war. Kannst du mir bitte zeigen, wo du das gelesen hast?
Markus Meier Geschrieben 8. Februar Autor Geschrieben 8. Februar So Liebe Leute, ich hab jetzt mal eine Testanlage erstellt so wie ich meine EV immer aufbaue. Nun wenn ihr wollt könnt ihr diese jetzt entsprechend ergänzen zum vollen Automatikbetrieb und sie dann hier wieder als Download oder so zu Verfügung stellen. Dann kann ich mir das mal anhand meiner EV anschauen was ich noch ändern müsste ID ist : 543F9F76-EB11-4E71-AF16-2C09E0052E7E
Phrontistes Geschrieben 8. Februar Geschrieben 8. Februar Hallo @Markus Meier, zunächst habe ich Deine Schalter von rot/gelb auf rot/grün umgestellt damit gleich klar ist, was passiert und die EVs der Schalter so modifiziert, dass die Schaltposition ausgewertet wird und die Fahrstraße abhängig davon aktiviert/deaktiviert wird. Dann habe ich die Kontakte an denen die Fahrstraßen enden umbenannt (damit man sie findet) und mit einem Schlagwort ("GK FS Ende") versehen. Und schließlich habe ich im neuen Ereignis "GK FS Ende ausgelöst" eine Zufallslogik eingebaut, welche die drei Schalter zufällig stellt wenn ein Zug das Ende seiner Fahrstraße erreicht hat. Es kann (und wird irgendwann) passieren, dass zufällig alle Fahrstraßen deaktiviert werden und alle drei Züge stehenbleiben. Entweder man startet dann einen oder mehrere von Hand oder man muss auch diesen Fall programmieren. Aber ich denke, jetzt fummelst Du Dich da Schritt für Schritt erst mal ein. Zum Starten stellst Du am Besten erst mal alle Schalter auf "grün" und schaust, was passiert. Und frag' nach, wenn etwas unklar ist. 20250208 Markus Meier New Layout Test for automatic operation.mbp
AndreasWB Geschrieben 8. Februar Geschrieben 8. Februar (bearbeitet) Mein lieber @Goetz, vor 3 Stunden schrieb Goetz: Kannst du mir bitte zeigen, wo du das gelesen hast? dafür, daß ich im Forum "etwas" suchen mußte, bist Du mir 'was schuldig. In diese bewußte Diskussion warst Du übrigens auch involviert. Da ging es um die Master-Slave Beziehung zwischen GBS- und verbundenem Signal. Dort letzter Beitrag von Neo. Gruß Andreas P.S. Ich will mal nicht so sein - hier der Link: Bearbeitet 8. Februar von AndreasWB
Goetz Geschrieben 8. Februar Geschrieben 8. Februar (bearbeitet) vor 36 Minuten schrieb AndreasWB: dafür, daß ich im Forum "etwas" suchen mußte, bist Du mir 'was schuldig. abgemacht - danke fürs Finden Aber es ging um eine fehlende Möglichkeit, beziehungsweise darum, dass etwas noch unvollständig war. Bei dir klang es als gäbe es ein Funktion, die gar nicht beabsichtigt war. Und da konnte ich mir keinen Reim drauf machen. Bearbeitet 8. Februar von Goetz
AndreasWB Geschrieben 8. Februar Geschrieben 8. Februar Ähm @Goetz, vor 14 Minuten schrieb Goetz: Aber es ging um eine fehlende Möglichkeit, beziehungsweise darum, dass etwas noch unvollständig war. Bei dir klang es als gäbe es ein Funktion, die gar nicht beabsichtigt war. Und da konnte ich mir keinen Reim drauf machen. ja ist es doch. In V9 funktioniert etwas anders, obwohl es nicht sollte.
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