Jump to content

Goetz

Mitglieder
  • Gesamte Inhalte

    4911
  • Benutzer seit

  • Letzter Besuch

Beiträge erstellt von Goetz

  1. Hallo liftboy,

    vor 14 Minuten schrieb liftboy:

    eine Zeile in meiner Initialisierung verursacht das Phänomen:

    ==>   $("Bü_1_ÜberwachungsSignal").link = $("Bü_2_ÜberwachungsSignal")

    weil "link" der mechanischen Kopplung von Objekten entspricht.
    Mit dem link zum anderen Signal hebst du den link zum Gleis auf.

    Die Verbindung der Schaltlogik heißt nicht "link", sondern "connection" (zu finden unter dem Abschnitt Signale)

    $("Bü_1_ÜberwachungsSignal").connection = $("Bü_2_ÜberwachungsSignal")

    Viele Grüße
    Götz

  2. vor 5 Minuten schrieb jloos:

    Kannst Du mir Dein script auf Auslöser umstellen, damit ich nicht für jeden Bü ein eigenes script benötige.

    Nein, das kann ich leider nicht. Weil zu viele individuelle Faktoren reinspielen.

    Beispielsweis ist nicht jede Schranke in Stellung 0 geschlossen und Stellung 1 geöffnet.
    Darüber hinaus weiß ich auch nicht, wie die Gleise an deinen Bahnübergängen heißen und wie ich die jeweils identifizieren könnte.
    Wenn mehrgleisige Bahnübergänge dabei sind, kommen weitere Faktoren hinzu, die zu berücksichtigen sind.

    Meine Beispiele sind als Lernhilfen gedacht, Jürgen.
    Ich halte sie stets klein und übersichtlich, damit man die Mechanismen komplett verstehen und dann das Gelernte auf eigenen Anlagen umsetzen kann.

    Viele Grüße
    Götz

  3. vor 9 Stunden schrieb winpet:

    Kann mit jemand bzgl. Fehlersuche helfen, oder sogar den Fehler identifizieren?

    Der Fehler ist, dass dein Einfahrsignal in Version 2.4 aktuell auf Fahrt steht und sämtliche Weichen der Bahnhofseinfahrt gesperrt sind.
    Das Signal wird nie auf Halt zurückgesetzt, weil aufgrund der gesperrten Weichen nie eine Fahrstraße in den Schattenbahnhof aktiviert wird.
    Deshalb fahren alle Züge ungehindert ins Gleis 1 ein.

    Wahrscheinlich ist dieser Zustand durch Umbaumaßnahmen entstanden.

    Stell bitte dein Einfahrsignal auf Halt und entsperre alle Weichen in der Bahnhofseinfahrt.

    Viele Grüße
    Götz

  4. vor einer Stunde schrieb liftboy:

    dein neu eingebautes Bü - Überwachungssignal ist nicht eingeschaltet (Eigenschaften) und kommt so nicht zur Wirkung.

    Das war auch so beabsichtigt.
    Eigentlich bräuchte es an der Stelle gar kein Signal, da der BÜ direkt hinter dem Bahnhof liegt und so durch das Ausfahrsignal gedeckt ist.

    Ich wollte mit dem Signal nur den Status visualisieren.

    Den Kontakt hatte ich deaktiviert, damit das Signal nicht mit in die Fahrstraße aufgenommen wird.
    Für die Gegenrichtung musst du selbstverständlich den Kontakt im Signal aktiv lassen, damit der Zug davon beeinflusst wird.

    vor einer Stunde schrieb liftboy:

    "$("Gleis BÜ").locked" - das läuft doch parallel zum ÜberwachungsSignal, das macht doch genau das was mein "Waggon liften" getan hat ?

    Korrekt.

    Die Beschreibung dazu konntest du in einem Posting davor lesen:

    Am 24.3.2024 um 13:59 schrieb Goetz:

    Du kannst in den Bahnübergang eine Weiche einbauen, die keinen sichtbaren Abzweig hat.
    Eine Weiche kannst du sperren. Und eine Weiche, die "falsch" steht und gesperrt ist, verhindert die Aktivierung einer angeforderten Fahrstraße.

    Ich habe das "Gleis BÜ" in eine Weiche umgewandelt, indem ich ihm im Gleis-Editor zwei Weichenstellungen spendiert habe.

    Sie unterscheiden sich nur dadurch, dass Stellung 0 eine aktive Fahrspur hat und Stellung 1 nicht. Später habe ich festgestellt, dass selbst diese Unterscheidung nicht notwendig war. Ich muss die Weiche auch gar nicht umstellen. Sie benötigt nur zwei Stellungen, damit sie als Weiche anerkannt wird. Denn eine Weiche kann ich sperren, ein normales Gleis hingegen nicht.

    Viele Grüße
    Götz

  5. vor 3 Stunden schrieb EASY:

    warum es bei running=true 0 ergibt und bei running=false 1

    Hallo EASY,

    @Eggu hat die richtige Stelle auf Lua org verlinkt.

    Ich schreibe es hier noch einmal auf Deutsch und mit meinen eigenen Worten, für die Mitleser, die dem Link nicht folgen mögen oder sich mit Englisch schwer tun.

    Wenn man zwei booleans mit and verknüpft, dann ist das Ergebnis nur wahr, wenn beide Eingaben wahr sind.

    Drum haben findige Entwickler von Programmiersprachen sich gedacht:

    • Wenn das erste der beiden Elemente falsch ist, muss ich das zweite nicht untersuchen. Ich gebe einfach dieses erste Element als Ergebnis aus.
    • Wenn das erste hingegen wahr ist, hängt das Ergebnis vom zweiten Element ab. Also untersuche ich das nicht, sondern gebe es einfach als Ergebnis aus.

    Wenn man zwei booleans mit or verknüpft, muss mindestens eins von beiden wahr sein, damit das Ergebnis wahr ist.

    • Wenn das erste Element wahr ist, gebe ich das aus und spar mir die Untersuchung des zweiten.
    • Wenn es falsch ist, dann gebe ich das zweite Element als Ergebnis aus.

    Und in Lua gilt jede Zahl (einschließlich der 0) als wahr.

    ist running wahr, dann bekomme ich die 0 als Ergebnis. Das and gibt das zweite Element zurück. Und diese 0 wird vom or als wahr betrachtet.
    ist running falsch, dann ist das ganze and Konstrukt falsch und ich bekomme das zweite Element aus dem or Konstrukt als Ergebnis, also die 1

    Man spart sich so die if-Verzweigung (auf Kosten der Lesbarkeit)

     

    Viele Grüße
    Götz

  6. Mit Brummis MiniMax Modulen habe ich eine kleine Beispielanlage für dich gebaut, Liftboy
    Und in der Zeit habe ich leider weder deine Antwort noch die von EASY gesehen.

    Ich glaube persönlich, dass es näher an der Realität ist wenn eine FS bei offenem BÜ nicht aktiviert werden kann.

    Beispielanlage: Bahnübergang mit Sicherung für FS.mbp 

     (jetzt mit Bü - Überwachungssignal und Kommentaren)

    BmitSicherungfrFS.thumb.jpg.154c014e1f91c9878ecb7884c0daee27.jpg

     

    EASYs Lösung ist einfacher umzusetzen. Deshalb ist seine Lösung die praktikablere.
    Mein Beispiel war eher eine Fingerübung, weil ich für mich probieren wollte ob meine Vorstellung stimmte.

    Wenn eine Animation der Schranke 1 gestartet oder gestoppt wird, löst das die folgenden Aktionen aus:

    --[[
        BÜ Gleis wird gesperrt, wenn das Öffnen des BÜ beginnt
        und entsperrt, wenn das Schließen des BÜ beendet ist.
        Im ersten Fall beginnt die Animation bei 0,
        im zweiten Fall endet sie dort.
        Das Bü Überwachungssignal zeigt den Zustand der Sperre
        weißes Blinklich = BÜ gesichert
    ]]--
    
    if name == "Schranke Oeffnen/Schliessen" and entity.animations[name].position < 1 then
      $("Gleis BÜ").locked = running -- wenn die Animation bei 0 begann, ist running wahr
      $("Bü - Überwachungssignal").state = running and 0 or 1
    end

    Viele Grüße
    Götz

    Nachtrag: Und nun hat sich mein Posting mit dem von EGGU zeitlich überschnitten  :D

  7. vor 34 Minuten schrieb liftboy:

    eine externe Kondition für die Fahrstrasse (true/false) für die Freigabe (nicht für die Reservierung!)

    wäre eine gute Erweiterung! 
    Hier eine Notlösung, ähnlich deinem unsichtbaren Waggon:

    Du kannst in den Bahnübergang eine Weiche einbauen, die keinen sichtbaren Abzweig hat.
    Eine Weiche kannst du sperren. Und eine Weiche, die "falsch" steht und gesperrt ist, verhindert die Aktivierung einer angeforderten Fahrstraße.

    Nimm das Gleisstück, welches im BÜ von der Straße gekreuzt wird. Gib ihm zwei Weichenstellungen.
    Nur eine der beiden Stellungen aktiviert eine Fahrspur. Die andere nicht.

    Viele Grüße
    Götz 

  8. vor 38 Minuten schrieb liftboy:

    Timer sind nach meiner  Auffassung nicht geeignet Konditionen abzusichern.

    Da stimme ich dir zu.
    Aber du kannst beim Absenken der Schranken ein Ereignis aktivieren, welches durch das Stoppen der Animation angestoßen wird.
    Jetzt weißt du, dass die Schranken geschlossen sind, wenn die Animation stoppt.
    Das Ereignis deaktiviert sich selbst, damit es beim Öffnen der Schranke nicht angestoßen wird.
    Dieses Ereignis "Animation wurde gestoppt" benutzt du, um eine Boolean Variable auf "wahr" zu setzen.
    Diese Variable dient dir als Bedingung dafür, dass die Fahrstraße aktiviert werden darf. Oder gleich als Auslöser für die Aktivierung der Fahrstraße. Je nach Bedarf.

    Viele Grüße
    Götz 

  9. vor 24 Minuten schrieb liftboy:

    Wie kann ich die Position eines Vehicle ändern, z.bsp. "hochheben" und wieder absenken.

    Ich habe für dich ein Beispiel gebastelt:

    Lok anheben und absenken.mbp

    Lokanheben.jpg.11c9acfe65cf31e6691d3c522e7042a7.jpg

    als Lua Skript:

    if controller.state == 0 then
      $("Zug 4 - BR 80").transformation.position = {x = 0, y = 0, z = 0.382}
    else
      $("Zug 4 - BR 80").transformation.position = {x = 0, y = 0, z = 10}
    end

    Viele Grüße
    Götz

  10. vor 35 Minuten schrieb liftboy:

    Kann ich dieses Verhalten ändern, wo ?

    Ja, kannst du.

    Oben rechst findest du eine Schaltfläche, mit der du diese Menüs "anpinnen" kannst:

    1184774709_unpinmenu.jpg.e1b79bdac364cb71106a02fa55ee4c38.jpg

    Dieses Verhalten kann individuell für den Simulations- und den Planungsmodus festgelegt werden.
    Beispiel: die Menüs verschwinden im Simulationsmodus, aber beim Wechsel in den Planungsmodus bleiben sie angepinnt.

  11. vor 7 Stunden schrieb oberrrrroller:

    Wie kann man den ganzen Ablauf auf mehrere Situationen anwenden, z. B. Wagen vorwärts und rückwärts oder mehrere Signale universell mit einem EV-Eintrag bedienen?

    Hallo Frank,

    dafür sind die Objektvariablen gedacht. Damit kannst du jedem Fahrzeug, jedem Signal etc. die individuellen Daten geben, damit ein universeller EV Eintrag jeweils die individuellen Daten findet, die gerade benötigt werden.

    Viele Grüße
    Götz

  12. vor 44 Minuten schrieb Uli:

    Anfängerpech

    Die Platte war wirklich gekippt, Uli. Nachdem @prinz das schrieb, konnte ich es auch erkennen.
    In 2D passiert das für gewöhnlich nicht, das stimmt.
    Aber wenn es dir (vielleicht schon vorher in 3D?) passiert ist, erkennst du den Fehler in 2D kaum.

    Lediglich der Vergleich der angegebenen Breite de Platte mit dem Maßband am linken Rand gibt den Fehler preis. Denn senkrecht von oben betrachtet wirkt die angekippte Platte natürlich schmaler.

  13. vor 29 Minuten schrieb 42loop:

    die kupplung wird doch durch eben diesen gleiskontakt erst gelöst

    Beim Ablaufberg wird die Kupplung des ersten Waggons gelöst, wenn sein anderes Ende (Zuganfang!) den Kontakt berührt.

    AblaufbergWaggon1triggert.thumb.jpg.2284d934b493e3fbddb54dc653d5c5ec.jpg
    Der Berg ist steil genug um den Waggon zu beschleunigen. Er fährt schneller den Abhang runter als der restliche Zug.
    So entsteht eine Lücke, bevor der zweite Waggon den Kontakt erreicht.

    Beim Oval entsteht dieser Abstand hingegen nicht. Da werden die Waggons dicht an dicht geschoben.

  14. hallo @42loop,

    die Ursache findest du in der Tatsache, dass du beim Ablaufberg einen Abstand zwischen dem ersten und zweiten Waggon hast, im Oval hingegen nicht.

    OvalWaggon2.thumb.jpg.b535335c62ad7a02592374795fa79394.jpg

    Waggons werden auch dann einem Zugverband zugerechnet, wenn sie ungekuppelt geschoben werden.
    Sonst könnte eine Lok sie nicht schieben, denn eine physikalische Verbindung besteht nicht.

    Und ein Zugverband triggert einen Kontakt nur, wenn das erste Fahrzeug den Kontakt berührt
    (oder die Zugmitte den Kontakt passiert oder das Ende des letzten Fahrzeugs ihn verlässt.)

    AblaufbergWaggon2.thumb.jpg.468b866dcc428e4b26f923442caf75cc.jpg

    Beim Ablaufberg sorgt die Schwerkraft dafür, dass der erste, abgekuppelte Waggon sich weit genug vom zweiten Waggon entfernt hat, wenn dieser den Kontakt berührt. Zu diesem Zeitpunkt ist der zweite Waggon das neue Ende des Zuges.

    Viele Grüße
    Götz

  15. vor 41 Minuten schrieb Uffi:

    In der Beschreibung heisst es "Automatisieren Sie Ihre Anlage mit Hilfe der EV"

    Das ist nur ein Teilaspekt, Uffi. 
    Die EV (= Ereignisverwaltung) ermöglicht es, dass du an ein Ereignis (z.B. Taster wird gedrückt) eine Liste von auszuführenden Aktionen koppelst.

    In diesem alternativen Beispiel schaltet jeder der vier Taster auf der linken Seite per EV die Weichen zum Zielgleis und das Einfahrsignal auf HP1 oder HP2.

    per Stellknopf zum Gleis.mbp

    Eine Bedingung sorgt dafür, dass nur in der Stellung "Ein" der Weg gestellt wird.
    Außerdem werden die anderen drei Schalter auf "Aus" gesetzt.

    Viele Grüße
    Götz

  16. vor 1 Stunde schrieb Uffi:

    Mangels "Mehrfachverbindungstaster"

    Mehrfachverbindungen erstellst du, indem du etwas in die Ereignisverwaltung einträgst.
    Eventuell verstehe ich deinen Wunsch falsch?

    In der Beispielanlage oben musst du nur eine Weiche verstellen, um ins Zielgleis zu fahren. Nie mehr.
    Wenn du die letzte falsch stehende Weiche umstellst, passen sich alle anderen automatisch an.
    Und dafür sorgt ein einfacher Eintrag in der EV.

  17. vor 2 Stunden schrieb EASY:

    Wenn du einen Schalter mit einer Weiche verbindest

    Das wäre auch meine erste Empfehlung, @Uffi

    Setz ein Stellpult auf die Anlage, öffne für jeden der Schalter die Eigenschaften und gib dort die Verbindung zu einer Weiche oder einem Signal an.
    Im selben Menü wählst du auch aus, ob der Taster ein linkes, mittleres oder rechtes Stück des Stellpults darstellen soll. Alle Teile docken aneinander an.
    Und du kannst in diesem Menü auch den Text für die Beschriftung vorgeben.

    SchaltverbindungPultundWeiche.jpg.a8f0d8d35dc7ee3a557eb861f1835268.jpg

    Die Eigenschaften bekommst du entweder über das Zahnrad unten

    Eigenschaften1.jpg.db163b629205d6d04761b3c4e0ac656f.jpg

    im Auswahlmenü (nach einem Rechtsklick auf einen Schalter)

    Eigenschaften2.jpg.39116cb4323b33b7d02494e03fc81775.jpg

    Oder mit der Taste P

    "Verbindung" ist das, was du real mit Klemmen und Lötkolben erledigen würdest.

    Wenn du dann Lust verspürst die Sache etwas pfiffiger auszustatten, dann nimmst du die EV zur Hilfe.
    Dort kannst du beispielsweise angeben, dass Weiche 2 immer auf Fahrt springen soll, wenn Weiche 3 sich ändert.
    Und dass die 1 auf Abzweig gehen soll, wenn 2 sich ändert.

    Nun müsstest du nur noch eine Weiche stellen, um den ganzen Weg von der Einfahrt bis ins Zielgleis zu legen.

    Das oben gezeigte Beispiel als Demoanlage:  Stellknopf mit Weiche verbinden.mbp

    Viele Grüße
    Götz

     

×
×
  • Neu erstellen...