Jump to content

Rainer

Mitglieder
  • Gesamte Inhalte

    142
  • Benutzer seit

  • Letzter Besuch

    Nie

Beiträge erstellt von Rainer

  1. Hallo BahnLand,

    du hast mich richtig verstanden. Allerdings lese ich tatsächlich am letzten Gleis vor der Weiche aus.

    Ich könnte natürlich alle Gleise so verlängern bzw.  zusätzlich eine Sperrweiche einsetzen, damit der Bus unbedingt vor dem Weichengleis zum stehen kommt.

    Da ich aber jetzt schon 5 Bus-Längen für Steuerung Halt und Brems Gleise verbraucht habe, möchte ich darauf verzichten. Denn der Platz zwischen 2 Kreuzungen ist damit schon verbraucht. 

    Das Problem tritt ja auch nicht jedes mal auf, sondern nur wenn 2 Busse diese symmetrische Anordnung der Steuergleise exakt zum gleichen Zeitpunkt befahren.

    Dann kann es vorkommen dass der haltende Bus das Weichengleis berührt/befährt bzw. darauf zum Halten kommt.

    Gruß

    Rainer

  2. Hallo,

    ich möchte eine Schaltaufgabe für Weichen zwischenspeichern und später zu Ausführung verwenden.

    Problem-Beschreibung: eine Straßenkreuzung, darauf fahren Busse im Linienverkehr. Diese lösen eine Weichenschaltung je nach Linien-Nr. aus.

    Jetzt kommen 2 Busse gleichzeitig an diese Kreuzung. Nur ein Bus hat freie Fahrt, aber beide haben die Weichenschaltung vorgenommen.

    Bis jetzt funktioniert noch alles. Aber, die Weichenschaltung des haltenden Busses ist verloren. Dies bedeutet beim Anfahren stehen die Weichen falsch.

    Im Moment wird mit Betreten eines Gleises die Linie des Busses ausgelesen und mittels gesetzter Variable die beiden Weichen geschaltet.

    Mein Problem ist, wie kann ich diese gespeicherte Linien-Variable beim Anfahren des Busses dazu verwenden die Weichen zu schalten?

    Gruß

    Rainer

     

  3. Hallo,

    habe eine Weile gebraucht um meinen Fehler zu "verstehen".

    Aber... Gut Ding braucht halt ne weile :-)

    Jetzt klappt es, zuerst zurück auf "eine" Variable mit sich änderndem Wert (war ja der Grundfehler) dann nachvollziehen ohne Variable mit Gleissteuerung. Jetzt geht es auch mittels Trigger.

    Puh, war ne schwere Geburt. Danke für eure Hilfe, auch wenn ich meine Idee der Steuerung nicht aus dem Kopf bekam. Bin halt doch manchmal sehr stur. :-))

    Gruß

    Rainer

  4. Hallo Elgiloy,

    richtig, die Werte sind immer gleich je nach Linie. Das sollen sie auch sein.

    Wenn du dir meine Nachricht nochmal anschaust. Ich wäre froh, wenn die Weiche schalten würde.

    Genau das tut sie aber nicht!, sondern es wird "immer" das in der EV an "zweiter Stelle" stehende Ereignis verwendet.

    Gruß

    Rainer

  5. Hallo,

    Ich habe ein kleines Problem und sehe keine Lösung.

    Gruppe:    Ereignisse
      Ereignis:  Namen auslesen 1
        Auslöser:  Zug betritt ein Gleis                            Lok='[Alle Loks]'     Gleis='Namen1' 
        Aktion:    Variable setzen                                  Name='BusNamen1'   Wert='$_trigger1._Name' 
        Aktion:    Variable setzen                                  Name='Linie31'            Wert='$Bus31.Linie' 
     
      Ereignis:  Namen auslesen 2
        Auslöser:  Zug betritt ein Gleis                             Lok='[Alle Loks]'     Gleis='Namen2' 
        Aktion:    Variable setzen                                  Name='BusNamen2'   Wert='$_trigger1._Name' 
        Aktion:    Variable setzen                                  Name='Linie32'            Wert='$Bus32.Linie' 
     
      Ereignis:  W11 Bus31 Linie1
        Auslöser:  Zug betritt ein Gleis                             Lok='[Alle Loks]'     Gleis='W11 SchW11-1' 
        Bedingung: Variable besitzt den Wert           Name='Linie31'            Wert='Linie1'                    Negieren='0' 
        Aktion:    Weiche schalten                             Weiche='W11'                  Position='0' 
     
      Ereignis:  W11 Bus32 Linie2
        Auslöser:  Zug betritt ein Gleis                              Lok='[Alle Loks]'  Gleis='W11 SchW11-1' 
        Bedingung: Variable besitzt den Wert            Name='Linie32'         Wert='Linie2'                   Negieren='0' 
        Aktion:    Weiche schalten                              Weiche='W11'                Position='1' 
     
    Variable:  BusNamen1                                    'Bus31'
    Variable:  BusNamen2                                   'Bus32'
    Variable:  Linie31                                             'Linie1'
    Variable:  Linie32                                            'Linie2'

    OBJ-Variable
    Variable:  Bus31.Linie                                     'Linie1'
    Variable:  Bus32.Linie                                    'Linie2'
     

    Wie man aus obiger EV erkennen kann funktioniert das Auslesen der 2 Busse (31 u.32).

    Jetzt fahren diese auf ein Gleis (W11 SchW11-1) um eine Weiche zu steuern.

    Die Weiche soll je nach Linie (1 o.2) unterschiedlich schalten.

    Leider werden die 2 unterschiedlichen Bedingungen nicht beachtet.

    Es wird immer nach dem 2 Eintrag "Ereignis:  W11 Bus32 Linie2" verfahren

    Tausche ich diese Einträge platzmäßig in der EV wird "Ereignis:  W11 Bus31 Linie1" verfahren.

    Dies würde doch bedeuten dass die Bedingung  keine Rolle spielt sondern der Platz in der EV.

    Wo ist mein Denkfehler? Ich habe schon alle Variablen im Namen und Wert geändert.

    Gruß

    Rainer

     

     

  6. Hallo Neo,

    ja habe die Mail bekommen. Danke.

    Ich hatte diese Methode ja schon oft angewendet und nur 1-2 mal Probleme gehabt.

    Aber in dem Zusammenhang fällt mir auf, dass es eigentlich nichts aktives geben sollte, wenn die Anlage ohne aktive Animation geladen wird.

    Ich hatte schon öfters den Verdacht, dass hier beim Speichern/Laden keine Urzustände hergestellt werden.

    Gruß

    Rainer

  7. Hallo,

    Aufgrund eines unbekannten Fehlers konnte ich eine von mir erstellte Anlage2 nicht in Anlage1 importieren.

    Die EV wurde nicht importiert, nur die Objekte. Aber, genau auf die EV kam es mir an. Also musste ich diese EV mühsam in meine vorhandene EV händisch einfügen.

    Ich würde mir wünschen, ich könnte diese EV(Anlage2) als gesamtes aus der zuvor abgespeicherten HTML/XML importieren.

    Mir ist klar, dass dabei verschiedene Einträge verloren gehen und diese händisch nachgearbeitet werden muss.

    Es kommt mir eigentlich mehr darauf an, dass die Struktur ohne Fehler vorhanden ist.

    Gruß

    Rainer

  8. Hallo EASY,

    Danke für das Beispiel. Ich habe diese Erweiterung auch gefunden und sogar verstanden.:-) Wenn man weis nach was man suchen soll, dann findet man es auch.:-)

    Die Trigger-Geschichte macht mir allerdings noch Probleme, da sie mal funktioniert und mal nicht. Das dumme dabei ist ich sehe nicht was passiert. Ein Trace(bzw. Anzeige der Countdowns und variablen) wird jetzt umso wichtiger. Jedenfalls für mich, damit ich nicht dauernd irgendwelche Lampen ansteuern muss um zu sehen was tatsächlich passiert.

    Gruß

    Rainer

  9. Hallo Neo,

    "So, jetzt habt ihr mit Version 1.2.10.0 auch eure alternativen Aktionen"

    Hmm. Was soll mir dieser Satz sagen?

    Ich bin leider kein Hellseher, auch meine Programmierkenntnisse halten sich in Grenzen.

    So habe ich schon Probleme mit _Name oder _Targetspeed. Da bekomme ich kein Ergebnis hin.

    Ich würde mich deshalb freuen, wenn "ganz einfache" Beispiele aufgezeigt würden.

    Dies würde Menschen wie mir unwahrscheinlich helfen.

    Ich freue mich über jeden Beitrag aus dem ich so ein Beispiel entnehmen kann.

    Aber aus Sätzen wie dem obigen kann ich leider garnichts  entnehmen.

    Bitte helft mir mit "kleinen" Beispielen.

    Gruß

    Rainer

  10. Hallo,

    Danke für die Erklärungen.

    Wenn man gleich geschrieben hätte: Bei "Zug betritt/verlässt Gleis" ist Trigger1 für Loks und Trigger2 für Gleise, wäre ich wohl selbst darauf gekommen.

    In die Irre geführt hat mich die Aussage Trigger1, ..2,..3,..4.

    Man sollte immer bedenken, dass der Gegenüber weder den gleichen Wissensstand noch die gleichen Gedankengänge des Schreibenden hat. Was dem einen klar ist muss beim anderen erst klar werden.

    Gruß

    Rainer

  11. Hallo,

    erste Teilerfolge habe ich ja erreicht, aber sobald ich "_Trigger2.xxx" verwenden will. geht nichts mehr. Die Lok steht hin.

    Zum Aufbau: 4 Loks mit Objektnamen, Objektvariable und Geschwindigkeit versehen. (Lok1(-4).Speed)

    Ein Zugangsgleis  als Ereignis. Aktion Lokgeschwindigkeit setzen. Auslöser 1: Lok , Geschw. _Trigger1.Speed. Alles Ok, alle 4 Loks fahren mit der ihnen zugeteilten Geschwindigkeit weiter, wenn sie das Zugangsgleis überfahren.

    Jetzt das Problem:

    ein zweiter "_Trigger2.xxx" über das selbe Gleis geht nicht. 

    Dachte ich nehme ich ein anderes Gleis. Auch da geht "_Trigger2.xxx" nicht.

    Neo schrieb aber von Trigger1,2,3,4...

    Wo denke ich hier falsch?

    Gruß

    Rainer

  12. Hallo Neo,

    Habe mir die neue Beta angesehen, fast alles toll.:-)

    Zu den Objektvariablen:

    Ich habe mir 4 Loks auf Platte gezogen und Objektnamen X1-4, ebenso Variablennamen L1-4 vergeben.

    Bei Auslöser "Lokgeschwindigkeiten setzen" steht, wenn Ereignis "Zug betritt/verlässt" ausgewählt ist, "Auslöser 1: Lok" unter "Alle Loks" im Selektionsfenster.

    Mehr geht hier nicht, außer den Original-Objektnamen auszuwählen.

    Jetzt habe ich noch nicht verstanden, was ich mit "Auslöser 1: Lok" anfangen kann.

    In Wiki habe ich diesbezüglich noch nichts gefunden. Hier würde ich mir eine Suchfunktion wünschen, damit man nicht alles durchblättern.

    Gruß

    Rainer

  13. Hallo EASY,

    ich schrieb ja, dass ich die EV so einfach wie möglich halten möchte.

    Einfach: Zug betritt Gleis, Geschwindigkeit alle Loks x. Reicht in vielen Fällen vollkommen aus.

    Aufwendig: Zug betritt Gleis, Bedingung welche Lok, Geschwindigkeit dieser Lok x. Wenn mehrere Loks dieses Gleis überfahren sind mehrere Bedingungen nötig.

    Einfach gleich wenig Ressourcenverbrauch, Aufwendig gleich hoher Ressourcenverbrauch.

    Kommt jetzt diese unnatürliche Summierung der Einzelgeschwindigkeit dazu muss ich noch mehr Bedingungen einbauen/Ressourcen verbrauchen.

    Du selbst hast das "Rauchen der Dampfloks" aufgeführt, dies ist auch ein Grund.

    Die Brems-Lok am Berg geht vermutlich nicht mehr wenn "auf den Zug verteilen" aktiviert ist, oder macht es wieder sehr aufwendig in der EV.

    Ach, man könnte vermutlich noch X Fälle aufzeigen und begründen nur weil die momentane Summierung ein unnatürliches Verhalten darstellt.

    Was mir noch keiner begründet hat, ist warum und unter welchen Bedingungen die vorhandene Summierung Sinn machen sollte.

    Gruß

    Rainer

  14. Hallo,

    du schreibst es ja selbst es ist eine Sache der Definition. Ein Problem sehe ich nicht, wenn man nicht Kraft mit Geschwindigkeit verwechselt.

    Eigentlich ist es ganz logisch:

    eine Lok fährt 100, 2 Loks fahren auch 100, und dabei ist es egal ob die Loks einzeln, im Tandem, oder im Zug fahren. Ausgenommen sind hier nur Triebköpfe da ihr Ursprung in zwei Richtungen geht.

    Warum das bei entgegengesetzten Loks ein Problem geben soll ist mir nicht klar, da die Loks entweder getrennt angesteuert werden müssen, oder eine im Rückwärtsgang fährt. Dann ist aber wieder das Problem der Summierung vorhanden.

    Eine Erweiterung mit "auf den Zug verteilen" halte ich für falsch, genauso wie die Umschaltung Lok/Wagen per EV, das gehört in die Lok Eigenschaften.

     Warum ich meine EV kurz beschreiben soll? das habe ich bei einem anderen Problem auf Wunsch schon einmal  gemacht und dann war Ruhe im Karton.

    Meine EV ist ganz normal, eher auf sparsamen effizienten Ereignisverbrauch aufgebaut und im Moment arbeite ich an einer EV welche auf Variablen-Steuerung ausgelegt ist.

    Gruß

    Rainer

  15. Hallo BahnLand,

    stimmt mit dem aufsummieren und hier muss ich meine vorherige Aussage berichtigen. Es sielt keine Rolle ob die Loks direkt verbunden oder mit Wagen getrennt fahren.

    Dass man für 2 Triebköpfe eine spezielle Regelung braucht ist ja noch einzusehen, da diese für den Betrieb in zwei Richtungen gebaut sind.

    Nur diese unsinnige Aufsummierung macht einfach keinen Sinn und jedes mal die zweite Lok explizit abzuschalten bläht die EV unnötig auf.

     

    Gruß

    Rainer

  16. Hallo Neo,

    Dass sich die Kräfte summieren ist mir schon klar. Nur Kräfte sind nicht gleich Geschwindigkeit.

    Im 3D-MS bedeutet dieses Verhalten eine Verkomplizierung in der Steuerung, da ich jede Regelstelle für diese Doppellok neu und explizit einstellen muss. Denn der nächste Zug ist einer mit einer Zug- und einer Schiebe-Lok, also zwischen drin befinden sich Wagen, da muss ich die Einstellungen wieder verdoppeln.

    Dieses Phänomen tritt nur auf wenn beide Loks direkt verbunden sind, und das scheint mir nicht logisch zu sein.

    Gruß

    Rainer

     

     

  17. Hallo Neo,

    zwei Loks fahren hintereinander "nicht angedockt" mit eingestelltem Tempo x.

    Docken sich die 2 Loks an verdoppelt sich die Geschwindigkeit beider Loks. Angezeigt wird aber die eingestellte Geschwindigkeit.

    Müssten die zwei Loks nicht mit der eingestellten Geschwindigkeit fahren?

    Gruß

    Rainer

  18. Hallo,

    also gut, versuche ich es mal zu erklären.

    Ich möchte für meine Anlage eine Variablen gesteuerte EV schreiben.

    Grundgedanke war: weniger Einträge für ein und das selbe Ereignis. Denn je mehr Einträge die EV hat, desto mehr Ressourcen werden verbraucht.

    Wenn ich die Steuerung per Gleis mache, ist sie bei einer Straßenanlage mit nur 18 Kreuzungen (pro Kreuzung werden 6 bzw. 8 Weichen benötigt, aktiv 3 bzw. 4 Weichen.) riesig.

    Also versuche ich per Variablen diese Menge an Einträgen zu verkleinern.

    Theoretisch gibt es dann nur 3 bzw. 4 "Zug betritt Gleis" und 3 bzw. 4 "Zug verlässt Gleis" um die gesamte Kreuzung zu steuern. Alles andere soll mittels Variable definiert und gesteuert.

    Also egal ob Countdown, Zug halt bzw. Weiterfahrt , oder Weichenschaltung soll mittels wechselnden Variablen welche im 1. zutreffenden "Zug betritt Gleis" erzeugt werden.

    Versuch den Ablauf zu erklären:

    Linie1 kommt an Kreuzung, steuert seine Richtung, hält Linie2 und 3 an. Linie1 verlässt Kreuzung startet (eventuell vorhandene gehaltene) Linie2 bzw. 3.

    Sind beide Linie2 und 3 gehalten, steuert Linie1 die Ausfahrt von Linie2 und Linie2 die Ausfahrt Linie3.

    Jetzt kommt bestimmt Blockschaltung. Richtig, aber nicht mit 5- 20 Steuergleisen (betritt, verlässt, stopp etc.) sondern mit 3-4 Einfahrt und 3-4 Ausfahrt Gleisen.

    Eben alles per Variable definiert.

    Aufgefallen ist mir dabei dass oben genanntes Problem Ereignis "Variable gesetzt" Aktion "Lokgeschwindigkeit mit benanntem Gleis" nicht geht. Da zwar die Lok nicht aber die Bedingung des Gleises gespeichert wird bzw. so gut wie nie zutrifft. Wodurch die Beschränkung im "Variable gesetzt" als Ereignis eigentlich unsinnig ist. Bei Ereignis "Zug betritt Gleis" funktioniert es.

    Ein ähnliches Problem tritt bei Ereignis "Weiche schaltet" auf. Denn solange die Weiche "nicht Real neu geschaltet" wird werden die folgenden Aktionen nicht ausgeführt. Hier lag allerdings ein Denkfehler meinerseits vor, da ich dachte, dass der Befehl Aktion "Weiche schalten" im System auch als Schalten registriert wird. Dem ist nicht so, es wird als "keine Veränderung" im Zustand registriert und somit passiert beim folgenden Ereignis "Weiche schaltet" nichts. Es ist also so, dass ich wie Weiche erst "falsch" und dann "richtig"  stellen muss, damit die Funktion Ereignis "Weiche schaltet" funktioniert.

    PS.

    Das mit dem Timer werde ich mal versuchen, vermute aber, dass ich für jede Kreuzung (ca.18) mehrere Timer (3-4) benötige, was vermutlich tierisch Rechenleistung abverlangt.

    Neo, natürlich kann ich ein anderes Ereignis auswählen, dies ändert aber nichts an der Tatsache, dass dies dem nächsten nicht auch stundenlange Versuche beschert, bis er denkt das funktioniert nicht, warum steht es dann zur Verfügung. Wir alle suchen den Fehler ja erst bei uns selbst. Dann fragen wir hier und hoffen einen eventuellen Denkfehler unsererseits aufgezeigt bekommen. Lieber ist natürlich jedem wenn das Problem behoben wird. :-)

    Gruß

    Rainer

     

  19. Hallo EASY,

    leider stimmt es was du schreibst.

    Schade, da müsste ich ja mit der Stoppuhr messen und das "Stoppgleis" dann so lang machen, dass zu der Millisekunde wo das Ereignis "Variable wird gesetzt" der Zug sich tatsächlich auf dem Stoppgleis steht. Was aber bedeutet, dass der Zug dann "irgendwo" auf diesem Stoppgleis stehen bleibt und nicht am tatsächlich beabsichtigten Haltepunkt.

    Da kann ich diese Bedingung auch weglassen, denn da bleibt der Zug auch "irgendwo" stehen sobald das Ereignis eintritt.

    Ich denke  diese Bedingung ist hier unsinnig.

    PS. Das zurücksetzen der Variable wurde hier nur gemacht, damit ein klar definierter Zustand vorhanden ist.

         Wenn das die EV "etwas durcheinanderbringt", dann wäre das schlimm. :-))

    Gruß

    Rainer

  20. Hallo Neo,

    habe etwas herausgefunden.

    Wenn Ereignis "Variable wird gesetzt" durch Variablenwechsel ausgelöst wird, kann ich unter Aktion "Lokgeschwindigkeit setzen" auswählen.

    Um zusätzliche Einträge in der EV zu vermeiden, dachte ich, das ist toll.

    Wähle ich die Aktion "Lokgeschwindigkeit setzen" aus, kann ich einmal die Lok, das Gleis und die Geschwindigkeit auswählen.

    Wähle ich "nur" Lok und Geschwindigkeit aus funktioniert das ganze, allerdings bleibt die Lok ja sofort stehen.

    Da ich das Gleis zusätzlich auswählen kann, dachte ich, trage hier das Stoppgleis ein.

    Jetzt geht es nicht mehr, die Lok bleibt nicht mehr stehen.

    ebenfalls Probleme anstatt Lokgeschwindigkeit wenn ich Weiche schalten nehme mal geht mal nicht trotz Reset Variable

    Gruß

    Rainer

  21. Hallo,

    im Moment beschäftige ich mich sehr mit der Steuerung mittels EV.

    Darin ins besonderes mit Variablen.

    Als "Ereignis : Variable wird gesetzt" habe ich so verstanden, dass sobald diese Variable auf den eingestellten Wert gesetzt wird, folgende "Aktionen" ausgeführt werden.

    Bei mir ist das nicht so. Manchmal aber doch, aber nur "eine" Aktion. Stehen mehrere Aktionen an, geht es nie.

    Die Variable wird natürlich jedes mal  auf 0 gesetzt bevor sie ihren neuen Wert z.B. 1  bekommt, auf den dieses Ereignis dann reagieren soll.

    Denkfehler bei mir oder im Programm?

    PS. Test mit neuer Anlage und geänderten Daten bereits durchgeführt, selbe Auswirkung.

           Test mit "Zug betritt Gleis" geht

    Gruß

    Rainer

×
×
  • Neu erstellen...