Wüstenfuchs Geschrieben 4. Februar Geschrieben 4. Februar Hallo zusammen, ich habe ein Problem bei der Steuerung meiner Bahnübergänge mit V9, Eingleisig funktioniert meine Steuerung aber Zweigleisig nicht. Zwar werden die Schranken geschlossen und der Straßenverkehr angehalten, aber die Überwachungssignale werden nicht geschaltet. Hier das Ereignisprotokoll: [21:56:14] Ereignisprotokollierung gestartet [21:56:39] Gleiskontakt wird ausgelöst -> H/V Hauptsperrsignal, Regio Shuttle, 1 [21:56:40] Gleiskontakt wird ausgelöst -> Ne 5 Haltetafel, Regio Shuttle, 1 [21:56:40] Signal schaltet -> H/V Hauptsperrsignal, 0 [21:56:40] Gleiskontakt wird ausgelöst -> H/V Hauptsperrsignal, Regio Shuttle, 1 [21:56:41] Gleiskontakt wird ausgelöst -> Ne 5 Haltetafel, Regio Shuttle, 1 [21:56:42] Gleiskontakt wird ausgelöst -> H/V Hauptsperrsignal, Regio Shuttle, 1 [21:56:48] Gleiskontakt wird ausgelöst -> Bü Ankündigungstafel, Regio Shuttle, 1 [21:56:48] schliessen setzen (2) [21:56:48] Objekt-Variable wird gesetzt -> Bahnwärterhaus BUE#01, "Zugfahrt", 1 [21:56:48] BUE schalten (2) [21:56:48] attempt to index a nil value Und hier die Anlage: ID 426E0E6C-F99B-41ED-8CB3-21AD15CEB509 das Ereignis findet ihr unter Bahnverkehr, Bahnuebergaenge, Zweigleisig, BUE schalten (2). Danke im voraus Wüstenfuchs
Goetz Geschrieben 4. Februar Geschrieben 4. Februar (bearbeitet) vor 21 Minuten schrieb Wüstenfuchs: [21:56:48] attempt to index a nil value Im benutzerdefinierten Ereignis prüfst du in einer Wiederholung über alle Objekte mit einem Schlagwort, ob die Variable "Zugfahrt" in diesem Objekt auf 0 steht. Aber zwei der drei Objekte (nämlich die beiden Kontakte) haben diese Variable gar nicht. Deshalb versucht deine Bedingung eine Variable anzusprechen, die nicht existiert. -> attempt to index a nil value Dieser Fehler führt zum Abbruch. der Rest des benutzerdefinierten Ereignisses wird nicht mehr ausgeführt. Bearbeitet 4. Februar von Goetz Schreibfehler korrigiert
Wüstenfuchs Geschrieben 4. Februar Autor Geschrieben 4. Februar vor 1 Stunde schrieb Goetz: Im benutzerdefinierten Ereignis prüfst du in einer Wiederholung über alle Objekte mit einem Schlagwort, ob die Variable "Zugfahrt" in diesem Objekt auf 0 steht. Aber zwei der drei Objekte (nämlich die beiden Kontakte) haben diese Variable gar nicht. Deshalb versucht deine Bedingung eine Variable anzusprechen, die nicht existiert. -> attempt to index a nil value Dieser Fehler führt zum Abbruch. der Rest des benutzerdefinierten Ereignisses wird nicht mehr ausgeführt. Richtig, die Bedingung soll prüfen bei allen Objekten mit den Schlagwort BUE 2Gl. (Wdh) die Variable Zugfahrt nicht den Wert 0 hat. Wenn ja soll die Signale, die in einer Liste im gleichen Objekt gespeichert sind, (Wdh1) in Stellung 1 schalten, wenn nein in Stellung 0. Bei den eingleisigen Bahnübergängen ist die EV genauso gestrickt, nur mit der Ausnahme das ich da mit Boolischen Werten arbeite. Die Kontakte sind, wie bei der echten Bahn nur die Auslöser, die Steuerung (Variablen und Listen) ist im Bahnwärterhaus BUE#(xx). Lasse einfach mal den Triebwagen im Hauptbahnhof fahren. Auf der Nebenstrecke gehen die Übergange, soll er aber den östlichen Übergang der Hauptstrecke passieren (der Andere ist noch nicht fertig) funktionierts nicht.
Goetz Geschrieben 4. Februar Geschrieben 4. Februar vor 3 Minuten schrieb Wüstenfuchs: Richtig, die Bedingung soll prüfen bei allen Objekten mit den Schlagwort BUE 2Gl. (Wdh) die Variable Zugfahrt nicht den Wert 0 hat. Das kann sie aber nicht bei Objekten, welche diese Variable gar nicht haben. Wenn die Variable nicht existiert, dann kann ich nicht nachschauen, ob sie 0 ist. Wo sollte ich denn nachschauen, wenn es da nix (nil) gibt?
Wüstenfuchs Geschrieben 4. Februar Autor Geschrieben 4. Februar (bearbeitet) vor 12 Minuten schrieb Goetz: Das kann sie aber nicht bei Objekten, welche diese Variable gar nicht haben. Wenn die Variable nicht existiert, dann kann ich nicht nachschauen, ob sie 0 ist. Wo sollte ich denn nachschauen, wenn es da nix (nil) gibt? Die Bedingung bezieht sich doch auf die erste Wiederholung der Wiederholungskette, also fuer alle Objekte mit einen Schlagwort (Wdh), die nachfolgenden Wiederholungen haben deshalb extra eine Nummer als Präfix. Muss mal nachsehen ob ich da was verkehrt gemacht habe. Bearbeitet 4. Februar von Wüstenfuchs
Goetz Geschrieben 4. Februar Geschrieben 4. Februar (bearbeitet) vor 8 Stunden schrieb Wüstenfuchs: Die Bedingung bezieht sich doch auf die erste Wiederholung der Wiederholungskette, also fuer alle Objekte mit einen Schlagwort Richtig. Und zwei deiner drei Objekte mit dem angegebenen Schlagwort haben keine Variable mit dem Namen "Zugfolge" "Zugfahrt". Bearbeitet 5. Februar von Goetz
Wüstenfuchs Geschrieben 4. Februar Autor Geschrieben 4. Februar (bearbeitet) vor 7 Minuten schrieb Goetz: Richtig. Und zwei deiner drei Objekte mit dem angegebenen Schlagwort haben keine Variable mit dem Namen "Zugfolge". Upps welche denn? Da habe ich mich wohl beim Copi and Paste irgendwo vertan. Dann werde ich mich mal auf die suche begeben. Danke Goetz. Bearbeitet 5. Februar von Wüstenfuchs
Goetz Geschrieben 5. Februar Geschrieben 5. Februar (bearbeitet) vor 8 Stunden schrieb Wüstenfuchs: welche denn? vor 10 Stunden schrieb Goetz: zwei der drei Objekte (nämlich die beiden Kontakte) haben diese Variable gar nicht. Viele Grüße Götz Bearbeitet 5. Februar von Goetz Bild korrigiert
Wüstenfuchs Geschrieben 5. Februar Autor Geschrieben 5. Februar vor einer Stunde schrieb Goetz: Viele Grüße Götz Hab sie gefunden, denen muss ich versehentlich das falsche Schlagwort zugewiesen haben. Die Signale schalten trotzdem immer noch nicht, sobald die Verzögerung abgelaufen ist kommt die gleiche Fehlermeldung.
Goetz Geschrieben 5. Februar Geschrieben 5. Februar (bearbeitet) vor 10 Stunden schrieb Wüstenfuchs: Die Signale schalten trotzdem immer noch nicht, sobald die Verzögerung abgelaufen ist kommt die gleiche Fehlermeldung. Da du die Veröffentlichung rückgängig gemacht hast, kann ich nicht nachschauen, woran es jetzt hakt. Die Anlage ist wieder verfügbar. Ich schau mal, was ich noch finde ... Bearbeitet 5. Februar von Goetz Ergänzungen
Phrontistes Geschrieben 5. Februar Geschrieben 5. Februar Ihr solltest Euch vielleicht mal darüber verständigen, ob die Variable "Zugfahrt" oder "Zugfolge" heißen soll.
Goetz Geschrieben 5. Februar Geschrieben 5. Februar vor 17 Minuten schrieb Phrontistes: "Zugfahrt" oder "Zugfolge" Danke für den Hinweis, Phrontistes. Ich hatte mich vertan und habe es jetzt korrigiert.
Wüstenfuchs Geschrieben 5. Februar Autor Geschrieben 5. Februar vor 3 Stunden schrieb Goetz: Da du die Veröffentlichung rückgängig gemacht hast, kann ich nicht nachschauen, woran es jetzt hakt. Hab sie mit aktualisierten Stand neu Hochgeladen. ID 426E0E6C-F99B-41ED-8CB3-21AD15CEB509
Goetz Geschrieben 5. Februar Geschrieben 5. Februar vor 10 Stunden schrieb Wüstenfuchs: sobald die Verzögerung abgelaufen ist kommt die gleiche Fehlermeldung. Das liegt daran, dass du nach der Verzögerung an zwei Stellen die falsche Wiederholung eingetragen hattest: Die Wdh gibt es hier nicht mehr, denn das ist die Wiederholung von oben und die ist hier abgelaufen. Stattdessen benötigst du an den beiden markierten Stellen die neue Wdh0. Im Grunde sind diese Wiederholungen für alle Objekte mit dem Schlagwort BUE 2Gl. an dieser Stelle aber sowieso unsinnig. Es handelt sich ja nur um ein einziges Objekt: Das Bahnwärterhaus. Viele Grüße Götz
Wüstenfuchs Geschrieben 5. Februar Autor Geschrieben 5. Februar vor 6 Minuten schrieb Goetz: Im Grunde sind diese Wiederholungen für alle Objekte mit dem Schlagwort BUE 2Gl. an dieser Stelle aber sowieso unsinnig. Es handelt sich ja nur um ein einziges Objekt: Das Bahnwärterhaus. Bis jetzt ist es nur ein Bahnübergang auf der Hauptstrecke weitere sind in Arbeit und sollen alle Global gesteuert werden, also mit dem gleichen Befehl. Das mit dem Prafix des Widerholungsnamens hatte ich wohl noch drei Wochen gesucht und nicht gefunden.😎👨🦯😎
Goetz Geschrieben 5. Februar Geschrieben 5. Februar vor 1 Minute schrieb Wüstenfuchs: weitere sind in Arbeit Auch wenn es mehrere sind, willst du immer nur einen davon bedienen und nicht alle gleichzeitig. Du kannst das allgemeingültig definieren, das ist schon richtig. Aber mit der Wiederholung würdest du immer alle Bahnübergänge auf einmal ansprechen, wenn irgendwo ein BÜ Kontakt betreten wird. Und das willst du ganz bestimmt nicht.
Goetz Geschrieben 5. Februar Geschrieben 5. Februar (bearbeitet) vor 37 Minuten schrieb Wüstenfuchs: alle Global gesteuert Ich möchte folgende Methode vorschlagen: Im benutzerdefinierten Ereignis legst du einen Parameter für ein Objekt an. Den Namen kannst du frei wählen. Ich habe mich hier für "Schaltkasten" entschieden. Beim Aufruf des benutzerdefinierten Ereignisses übergibst du dann an den Parameter das Objekt, was zum Kontakt gehört. Also jeweils das Ding, was du im Kontakt in der Variablen BUE gespeichert hast. so sieht das dann aus: mehrgleisiger BÜ für Wüstenfuchs.mbp Viele Grüße Götz Bearbeitet 5. Februar von Goetz Schreibfehler korrigiert
Goetz Geschrieben 5. Februar Geschrieben 5. Februar Und dasselbe funktioniert auch für die eingleisigen BÜs: BÜs für Wüstenfuchs.mbp
Wüstenfuchs Geschrieben 5. Februar Autor Geschrieben 5. Februar Danke @Goetz werde ich mir mal ansehen. Mein Ziel ist es die EV so schlank wie möglich zu halten. Deshalb will ich so viele allgemeingültige Befehle wie möglich verwenden. Sonst haben die Kids mit ihren Pc's nachher Probleme mit der Proformens, da die nicht so einen starken Prozessor haben wie ich.
Goetz Geschrieben 5. Februar Geschrieben 5. Februar vor 14 Minuten schrieb Wüstenfuchs: Mein Ziel ist es die EV so schlank wie möglich zu halten. Das habe ich doch längst verstanden, Wüstenfuchs. Deshalb zeige ich dir mit meinem Beispiel, wie du das erreichst.
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