Jump to content

Empfohlene Beiträge

Geschrieben (bearbeitet)
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

Bearbeitet von Goetz
Fehler korrigiert!
Geschrieben (bearbeitet)

Hallo @Goetz,

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

Es zeigt zwar an was es soll, aber stoppt bei Bü0 nicht den Zug!

Nach einschalten in Fahrtrichtung tut es was es soll !

Diese Implementierung ist genau meine, jetzt muß es nur noch in beiden Richtungen funkionieren, was kein Problem wird.

Leider kann ich aktuell nicht bauen, sondern nur kurz testen 😕

Noch eine Frage zu "$("Gleis BÜ").locked" - das läuft doch parallel zum ÜberwachungsSignal, das macht doch genau das was mein "Waggon liften" getan hat ? Wo hätte ich diese Eigenschaft lesen können ? Hat mich ne Menge Zeit gekostet

Gruß vom Liftboy

Bearbeitet von liftboy
ergänzt, ergänzt
Geschrieben (bearbeitet)
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

Bearbeitet von Goetz
Ergänzungen
Geschrieben (bearbeitet)
Am 24.3.2024 um 15:06 schrieb Goetz:

jetzt mit Bü - Überwachungssignal

ein Bü der in beiden Richtungen befahren wird, müssen dann auch die Bü Überwachungssignale richtungsabhängig schalten oder kann ich die miteinander verbinden?

Gruß Jürgen

Bearbeitet von jloos
Schreibfehler
Geschrieben
vor 1 Minute schrieb jloos:

kann ich die miteinander verbinden?

Kannst du.
Denn sie zeigen nur an, ob der BÜ geschlossen und sicher ist. Unabhängig von der Fahrtrichtung.

Geschrieben

Hallo

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.

Aus Neugier habe ich noch einen anderen Versuch gemacht...
Es geht auch nur mit einem "normalen" Gleis. Eine inaktive Spur verhindert auch das Aktivieren der Fahrtstraße und führt dann zu dieser Meldung...
Bild001.jpg.592095a69b8450ddd0f7f549eb13766d.jpg

--[[
    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Ü").routes[0].active = not running -- wenn die Animation bei 0 begann, ist running wahr
  $("Bü - Überwachungssignal").state = running and 0 or 1
end

Bahnübergang mit Sicherung für FS-4a.mbp

Anmerkung: Es ist etwas schwerer beim Aufbau einen definierten Anfangszustand zu bekommen. Mit der "falschen" Weiche, kann man den gewünschten Anfangszustand notfalls über die Eigenschaften einstellen (Schloßsymbol), bei der Spur nicht, da muß man die Animation der Schranke zuerst einmal durchlaufen lassen, aber da man nie weiß für was es noch zu gebrauchen ist, diese Möglichkeit...

Gruß
EASY

 

Geschrieben (bearbeitet)
Am 24.3.2024 um 15:06 schrieb Goetz:

Wenn eine Animation der Schranke 1 gestartet oder gestoppt wird

Hallo @Goetz,

ich brauche hier noch mal Unterstützung.
Ich habe 3 Bahnübergänge mit dem Schlagwort "Bahnübergang".
Kannst Du mir Dein script bitte auf Auslöser umstellen, damit ich nicht für jeden Bü ein eigenes script benötige.

Danke

Gruß Jürgen

Bearbeitet von jloos
Schreibfehler
Geschrieben
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

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 erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...