Jump to content

HaNNoveraNer

Mitglieder
  • Gesamte Inhalte

    1567
  • Benutzer seit

  • Letzter Besuch

Alle erstellten Inhalte von HaNNoveraNer

  1. Hallo Bahnland Ich bin auch gerade am Grübeln, wie man Autos an beliebigen Stellen so anhält, daß der Hintermann nicht auffährt. Das sollte möglichst irgendwie ohne abruptes Abbremsen, Losfahren und ohne einzelne kurze Straßenstücke erfolgen. Nachdem das erste Auto über einen Gleiskontakt zum Stehen gebracht wird, müssten die folgenden Autos jeweils mit Abstand anhalten. Schöner wäre es natürlich, wenn das Hauptprogramm selber die currentspeed entsprechend zum Vordermann anpassen würde/könnte, da uns eigentlich die "Sensoren" fehlen. Momentan fällt mir leider nur die Lösung mit kurzen Gleisen ein, wo man die targetspeed des aktuellen Gleises der currentspeed das Fahrzeugs auf dem Gleis dahinter anpasst. Da man aber nicht weiß , wie viele Fahrzeuge kommen, müßte man für die ganze Anlage das Straßennetz mit kurzen Gleisstücken bauen.
  2. Und ein fliegender Teppich für den unsichtbaren Spline!
  3. Die Beispielanlage findest Du hier im Forum :-) Letzte Version ganz unten auf der Seite Das mit dem Timer mache ich auch in einem anderen System schon so. Dort läuft das Lua selber in einer 200ms Schleife praktisch als Timer. Grob beschrieben gibt es 3 Listen, die ich dazu brauche: 1. Angeforderte Fahrstaßen 2. Aktive Fahrstraßen 3. Timeout (Ausweichroute, wenn Fahrstraße nicht geschaltet werden kann) Jedesmal wenn ein Zug eine Fahrstraße befahren will, schreibt er eine Anforderung in Tabelle1. Der Endlostimer fragt diese Tabelle im 200ms Intervall ab. Findet er eine Anforderung, versucht er, die Fahrstraße zu aktivieren. Dazu prüft er alle enthaltenen Gleise auf besetzt, oder ob die Gleis schon in einer anderen aktiven FS in Tabelle2 enthalten sind. Klappt das Aktivieren, löscht er die Anforderung und schreibt sie in Tabelle2. Timeout habe ich hier noch nicht realisiert. Also versucht er es so lange, bis die Fahrstraße frei wird. Am Auflösekontakt hat er ja die Fahrstraße besetzt und löscht den Eintrag aus der Tabelle2! Die möglichen Ziele (Fahrstraßen) werden am Signal eingetragen. Man benötigt nur das Startsignal mit den Bremsparametern und 2 Kontakte, denen man eindeutige Nummern gibt, für jeden neuen Block. Das ist ratzfatz parametriert. Alles andere übernimmt das Lua Programm automatisch. Mal so ganz grob ohne Details.
  4. Hallo RB Wie sieht denn Dein Bahndamm bei 90 Grad Kurven aus inkl. der Schottertextur?
  5. Sehr schön, was Du da baust. Das wirkt alles sehr plastisch und natürlich und gut texturiert. Einige Modelle sind doch sehr grell, bunt und knallig, die ich im Katalog finde. Womit baust Du denn? Blender? Gruß Thomas
  6. Ist mir viel zu aufwändig, die ganzen Ausfahrten zu überwachen, besonders, wenn es noch Ausweichgleise oder alternative Möglichkeiten gibt, wo der Zug hinfahren könnte. Zugrichtungsänderungen, Rangieren u.s.w. müssen dann auch berücksichtigt werden. Und bei eingleisiger Strecke muß dann auch noch der Gegenverkehr berücksichtigt werden. Und ich setze gerne mal Züge von Hand ein. Auch das muß dann die Abfrage auslösen. Dem Timer ist das alles egal. Damit kann ich auch mal eine ganze Zugfahrt mit mehreren Fahrstraßen/Blöcken reservieren bei Gegenverkehr vor, hinter und im Bahnhof u.s.w. So ein Timer sollte das System auch nicht wirklich belasten. Vielleicht mache ich mal einen Test mit 100 aktiven Fahrstraßen mit je 20 Gleisen. Kann man im MBS die Zeit in ms messen?
  7. Nee, signal hieß früher o_signal. Hab den ganzen Kontakt vergessen umzubenennen :-( Hier nochmal mit 2 Loks: (Könnte ich stundenlang zugucken... ) Bremsen.mbp
  8. Danke Martin Habs korrigiert. Da hab ich den einen Kontakt vergessen. Ich hab mir hinterher überlegt, alle Schlagwörter groß zu schreiben. Da gibt es auch ein Problem beim Umbenennen im MBS. Man kann groß/klein nicht umbenennen. Gruß Thomas
  9. Ist ja nur EIN Timer für alle Fahrstraßen bei mir. Der arbeitet nur, wenn eine Fahrstraße angefordert ist, sonst läuft er ins Leere, damit ihm nicht langweilig wird. Siehe meine Beispielanlage im anderen Thread. So funktioniert es auch, wenn man das Fahrzeug von Hand entfernt.
  10. Super, das habe ich gesucht! Danke.
  11. Ich habe jetzt dazu passend ein Fahrstraßenmodul gebaut. Neue Fahrstraßen erzeugt man durch kopieren der betroffenen Gleise in globale Listen: FS1, FS2, FS3 u.s.w. für alle Fahrstraßen. Wichtig ist, die Startsignale alle korrekt zu benennen: FSSig0001 bis FSSig9999. Das steuert den ganzen Ablauf! Nur ein Anforderungskontakt und ein Aufhebungskontakt werden benötigt. Die möglichen Fahrstraßen stehen im Signal. Aktivierte Fahrstraßen verriegeln sich gegenseitig. Ich werde das noch um unterschiedliche Routen für unterschiedliche Züge und um eine autom. Weichenschaltung erweitern. Hier die Testanlage: (Wenn Du den Wagen wegnimmst, fährt der Zug weiter. Natürlich vorher die Anlage starten!) (Bitte ein Gleis besetzen BEVOR der Zug den Anforderungskontakt überfahren hat, dann hält er wieder an) Bremsen.mbp
  12. Hi Ich habe in einem Modul eine Tabelle als Variable angelegt. Darin habe ich mehrere Gleise gespeichert. Jetzt möchte ich gerne sehen, welche Gleise das waren. Daher möchte ich sie wieder alle auf einmal selektieren lassen. Wie ist das möglich? Wenn man in Lua Schlagwörter zuweisen könnte, dann könnte ich alle Gleise beim Programmstart mit dem Tabellennamen versehen. Damit wären sie zu filtern für die Selektion. Geht aber wohl nicht.
  13. Du könntest abfragen, ob beim Zug das Schlagwort vehicle.variables["Güterzug"] existiert. ~=nil Oder eben alle anderen Schlagwörter. Ich programmiere auch gerade so eine Logik. Gehe aber etwas anders vor, so daß der Zug am Einfahrsignal eine oder mehrere Fahrstraßen über einen Endlostimer "anfordert" bis sie frei ist. Der weiß genau wer er ist und wohin er will/darf.
  14. Für weitere Funktionen in dem Fahrstrassenmodul, daß ich gerade baue, benötige ich folgendes: s="FSSig0001" local s2=$(s).variables["fahrstrassen"] Das gibt aber einen Fehler. Wie kann ich eine Variable im Objekt ansprechen, wenn ich den Objektnamen nur als string habe? P.S. Habs gerade gefunden: local signal=layout:getEntityByName(s) local s2=signal.variables["fahrstrassen"]
  15. Perfekt, dann brauch ich das Objekt ja nur verdoppeln, um es speichern zu können. Dann könnte man es doch gleich mit sich selbst gruppieren, wenn ihr das aktiviert
  16. Hi Gibt es eine Möglichkeit Objekte mit ihren Schlagwörtern und Variablen in andere Anlagen zu übernehmen? Zum Beispiel einen Gleiskontakt mit 12 Schlagwörtern und 44 Variablen :-) Exportieren als .mbe funktioniert mit dem nicht. Das man andere Anlagen komplett importieren kann, hab ich ausprobiert. Aber auch einzelne Objekte, Ereignisse oder Lua Scripts? Grund: Ich habe mehrere Dinge in kleinen Beispielanlagen entwickelt und möchte diese nun in vorhandene andere Anlagen übernehmen.
  17. Warum nicht auch vorne Module ohne Hintergrund anbauen? 300 ist nicht viel.
  18. Jaja, aber Du hast die Objekte MANUELL umbenannt: ("Gleis 1"), $("Gleis 2"), $("Gleis 3") Normal heißen die Gleise nach dem Einsetzen alle gleich. Dann würde das stehen ("5201","5201","5201"). Das wäre unübersichtlich. Meine Frage bezog sich aber auf die direkte Abfrage EINES Gleises, ohne umbenennen mit dem Lua Befehl.
  19. getVehiclesOnTrack(Gleis) Dabei ist Gleis doch der Name des Gleisobjekts und nicht die ID? Wenn ich nun ein Gleis abfragen möchte, was genau den gleichen Namen hat wie 5 andere?
  20. Hallo Ich suche eine Möglichkeit, ein unter EREIGNISSE stehendes Script EINMALIG auszuführen, ohne es einem Ereignis zuzufügen. Es geht nur um das einmalige initialisieren bestimmter Objekte der Anlage. Wie würde man das realisieren? Wozu sind diese Scripte? Wann werden sie ausgeführt? Gruß Thomas
  21. Ich habe das mit den Gleisen noch nicht ganz kapiert. Die haben ja alle den gleichen Namen "1610" (Bezeichnug des Herstellers) oder so. Wie kann man die denn unterscheiden? Und kann man auch erkennen, ob ein Gleis eine Weiche ist? Und kann man die Weiche irgendwie flankenschützen/sperren? Achja: Kann ich eine Aktion in einer Endlosschleife aufrufen, bis ein bestimmtes Ereignis eintritt? Gibt es da programmintern einen Scheduler, der die Prozessorzeiten für die Aktionen verwaltet? Wenn ich mit Fragen zu viel nerve, einfach sagen! ;-)
  22. Hi Ich kann Gleis befahren und Gleis verlassen abfragen als Ereignis. WIe kann ich aber den Status Gleis besetzt abfragen? Muß ich mir das aus den beiden Ereignissen oben selber irgendwo merken?
  23. Vorher habe ich das Modul weiter optimiert, so daß es jetzt für beliebige Kontakte und Signale nur EIN Modul gibt. Das MBS scheint ja dann verschiedene Instanzen für die Variablen und Verzögerungen anzulegen. Sehr schön. Gesteuert wird es über Schlagwörter "Brems, Stop, Bremssignal". Die Variablen am Bremskontakt, Stopkontakt und am Signal parametrieren das Ganze. (Zielgeschwindigkeit, Abstand, Signalname des zugehörenden Bremssignals) Die original Deceleration wird auch wieder hergestellt. Daher ist keine Codeänderung in LUA mehr nötig. Bremsen.mbp
  24. Das kommt von Timba. Ich habe versucht aus seinen, Deinen und meinen Ideen das Beste zusammenzufügen. Ich baue aber noch ein paar Variablen ein für Signalname, Zugname, Beschleunigungsreset, ABstand u.s.w. Dann braucht man das nur an einer Stelle zu editieren. Außerdem vielleicht ein Flag, das bewirkt, daß der Abstand auf gerader Strecke automatisch berechnet wird. Und irgendwie sollte noch eine Belegtmeldung realisiert werden, so daß vorhergehende Blöcke erkennen können, ob das Zielgleis frei ist.
  25. Eine mitfahrende Kamera über den Fahrzeugen wäre toll. Mit 360° Schwenkmöglichkeit und begrenztem Zoom/Abstand. Gruß Thomas
×
×
  • Neu erstellen...