Wüstenfuchs Posted Tuesday at 09:07 PM Posted Tuesday at 09:07 PM 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 Posted Tuesday at 09:28 PM Posted Tuesday at 09:28 PM (edited) 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. Edited Tuesday at 09:29 PM by Goetz Schreibfehler korrigiert
Wüstenfuchs Posted Tuesday at 11:25 PM Author Posted Tuesday at 11:25 PM 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 Posted Tuesday at 11:30 PM Posted Tuesday at 11:30 PM 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 Posted Tuesday at 11:41 PM Author Posted Tuesday at 11:41 PM (edited) 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. Edited Tuesday at 11:43 PM by Wüstenfuchs
Goetz Posted Tuesday at 11:52 PM Posted Tuesday at 11:52 PM (edited) 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". Edited Wednesday at 08:21 AM by Goetz
Wüstenfuchs Posted Tuesday at 11:59 PM Author Posted Tuesday at 11:59 PM (edited) 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. Edited Wednesday at 12:01 AM by Wüstenfuchs
Goetz Posted Wednesday at 12:02 AM Posted Wednesday at 12:02 AM (edited) 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 Edited Wednesday at 08:25 AM by Goetz Bild korrigiert
Wüstenfuchs Posted Wednesday at 01:23 AM Author Posted Wednesday at 01:23 AM 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 Posted Wednesday at 08:04 AM Posted Wednesday at 08:04 AM (edited) 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 ... Edited Wednesday at 12:01 PM by Goetz Ergänzungen
Phrontistes Posted Wednesday at 08:06 AM Posted Wednesday at 08:06 AM Ihr solltest Euch vielleicht mal darüber verständigen, ob die Variable "Zugfahrt" oder "Zugfolge" heißen soll.
Goetz Posted Wednesday at 08:24 AM Posted Wednesday at 08:24 AM 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 Posted Wednesday at 12:01 PM Author Posted Wednesday at 12:01 PM 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 Posted Wednesday at 12:16 PM Posted Wednesday at 12:16 PM 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 Posted Wednesday at 12:30 PM Author Posted Wednesday at 12:30 PM 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 Posted Wednesday at 12:34 PM Posted Wednesday at 12:34 PM 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 Posted Wednesday at 01:07 PM Posted Wednesday at 01:07 PM (edited) 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 Edited Wednesday at 01:08 PM by Goetz Schreibfehler korrigiert
Goetz Posted Wednesday at 01:25 PM Posted Wednesday at 01:25 PM Und dasselbe funktioniert auch für die eingleisigen BÜs: BÜs für Wüstenfuchs.mbp
Wüstenfuchs Posted Wednesday at 04:14 PM Author Posted Wednesday at 04:14 PM 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 Posted Wednesday at 04:29 PM Posted Wednesday at 04:29 PM 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.
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