Jump to content

HaNNoveraNer

Mitglieder
  • Gesamte Inhalte

    1532
  • Benutzer seit

  • Letzter Besuch

Beiträge erstellt von HaNNoveraNer

  1. Hallo

    Tja, eigentlich dachte ich, ich habs fertig.
    Aber irgendwie ist noch der Wurm drin.
    Ich habe ein paar kleine Problemchen:

    Ein SIgnal wird nicht durch seinen Kontakt zurückgesetzt, daher mußte ich einen zusätzlichen Kontakt hinzufügen.
    Manchmal bleiben Züge an den SIgnalen hängen, obwohl sie eine Anforderung gesendet haben müßten.
    Manchmal werden Signale geschaltet, die im Programmcode garnicht angesprochen werden.
    Ich habe lange nach Fehlern gesucht, aber jetzt komme ich nicht weiter. *verzweifelt*
    Und ganz merkwürdig: Bei den FSEnde Kontakten habe ich das Gefühl, daß sie nicht beim Verlassen aktiviert werden, sondern schon früher!?

    Ich habe keine Ahnung, ob es unter euch Lua und MBS Spezialisten gibt, die sich das ganze Konstrukt mal ansehen könnten,
    und es auch verstehen. Aber für Fragen bin ich ja da.
    Vielleicht finden wir gemeinsam irgendwelche Fehler?
    Ich wäre dankbar für jede Unterstützung, unabhängig davon, ob meine Steuerung nun so sinnvoll ist, oder nicht,
    geht es erstmal darum, Fehler zu finden.

    Ich stelle die Testanlage mal hier ein.
    Einfach starten und abwarten, bis ein Fehler passiert.

    Hinweise: Die Fahrtraßen/Routen zu den einzelnen Zugarten (Personen/Güter) stehen in den Signalen.
    Ebenso die Haltezeiten. Zu jeder Fahrstraße exitiert ein Anforderungskontakt und ein Endkontakt, der sie wieder auflöst.
    Die Gleise sind in den FS Listen enthalten. Die aktivierten Fahrstraßen in einer Tabelle im  Modul FS. Und die Anforderungen in einer weiteren Tabelle.
     

    fahrstraßen_test.mbp

  2. Die meinte ich. Danke.
    Ich muß die Haltezeit an Signalen in s vorgeben.

    Diese Zeit ist aber wohl nur im Format "12:00" zu ermitteln
    und nicht als Zahl in Sekunden seit Anlagenstart oder sowas.
    Wie würde man so eine Messung in Sekunden realisieren z. B. zwischen 2 entfernten Gleiskontakten?

    Für jedes Signal einen eigenen Timer spendieren und schalten, wenn der abgelaufen ist?

    Nee, ich habe eine Idee.
    Ich lasse einen TImer jede Sekunde eine Variable Zahl um 1 erhöhen.
    Dann hab ich meinen Sekundenzähler... :-)

    Wäre noch die Frage, wie groß eine Variable als ZAHL werden kann.
    Lohnt es sich, den Überlauf abzufragen?

  3. Ich habe es jetzt mit dem NOT gemacht, da ich mich entschlossen habe, beides anzugeben, damit man Züge auch ohne Route
    fahren lassen kann, die dann alle möglichen bzw. unter R_Alle angegebenen Fahrstrassen nehmen.
    Mir raucht aber schon der Schädel. Es ist garnicht so einfach eine komplette Fahrstraßensteuerung mit Weichen, Routen, Ausweichfahrstraßen und Zufall u.s.w. unabhängig vom
    Programmcode nur mit dem Timer, 2 Kontakten und dem Startsignal zu programmieren.
    Aber ich bin fast fertig...

  4. Hi

    Ich muß in Lua den Inhalt einer Liste (variable in einem Signal) Namens "Liste1" mit 2 Texteinträgen "T1" und "T2"  in einem Objekt auswerten, aber nur wenn sie existiert, ansonsten nehme ich immer "T3"

    Wie mache ich das? Ich laufe da immer auf einen error.

    Danke und Gruß
    Thomas

  5. 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.


     

  6. 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.

  7. 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?

  8. 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.

×
×
  • Neu erstellen...