Jump to content

EV Basics - vorgestellt auf Twitch


Empfohlene Beiträge

Hi Aloys

Da muss dann schon auch fuer jedes signal eine entsprechende bedingte aktion definiert werden damit es ueber schlagwort aufgerufen werden kann. In der demo habe ich auch gleich mal das zurueckstellen des signales nach einer zeitlichen verzoegerung eingebaut, so das es nicht mehr von hand gemacht werden muss.  Dabei ist zu beachten das die bedingung/aktion mit dem signal, das zu dem korespondierendem signal der  gegenfahrt verbunden wurde, oberhalb der bedingung/aktion des verbundenem signales steht (in der EV), da sonst die kommplette aktion um die zeitliche verzoegerung, der vorstehenden bedingung/aktion, auch verzoegert wird. Die kreuzungsweiche habe ich mal auf Märklin schaltung umgestellt (Stellung 0 = beide richtungen abbiegen, Stellung 1 = beide richtungen gerade) Das war noetig um die automatische rueckstellung einfach organisieren zu koennen. Ich habe die beiden einfahrtsweichen so eingerichtet das sie jeweils das freie gleis zuweisen. Das GBS habe ich aussen vor gelassen. Du moechtest ja auch noch was machen.....:D

Aloys's by Tom.mbp

Viel spass

Tom

Bearbeitet von metallix
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor einer Stunde schrieb randermann.tbb:

du kannst ja das Signal als Auslöser hernehmen, oda?

Sicher........dann braucht jedes signal sein eigenes ereigniss. In der von dir modifizierten demo von Aloys war abba schon die ausloesung durch signal mit einem schlagwort vorgegeben. Da verstecken sich dann eben 4 bedingte  aktionen in einem ereigniss.

rander.thumb.JPG.49a06e10678a49648431de6fb80b00f0.JPG

rande.thumb.JPG.ccecc88dc3e64c7fe69efaa644cbcc88.JPG

Was genau sagt dieses bild ueber den vorgang aus?

1 ein unbestimmtes signal mit dem schlagwort "Ausfahrtsignal" schaltet

2 Die bedingung moechte als erfuellt sehen das das signal in stellung 1 (fahrt) steht (nach dem schalten)

3 Als bedingung erfuellte aktionen wird der lok, die unter P201 gespeichert ist, eine andere beschleunigung zugewiesen und der lok,die unter P202 gespeichert ist, eine geschwindigkeit.

Wie soll die EV hier herausfinden welches signal denn fuer die abfahrt der lok unter (nehmen wir mal) P202 zustaendig ist? Die EV macht genau das was man ihr sagt. Und hier wurde ihr gesagt das wenn eines, von 4 moeglichen signalen (alle mit dem schlagwort Abfahrtsignal) auf fahrt schaltet sie einer bestimmten lok eine neue beschleunigung zuweisen soll (was keine sichtbare folgen auf der platte hat) und eine bestimmte lok mit 40km/h losfahren soll ( was auch sichtbar statt findet).

Im ergebniss bringt dieser EV eintrag wohl etwas action auf die platte, abba sehr rudimentaer und willkuerlich.

 

Wenn du runtergeladene anlagen starten moechtest muss das MBS ausgeschaltet sein. Nur dann bewirkt der doppelklick auf die runtergeladene anlage das das MBS startet und die anlage sofort hoch laed. Alternativ geht es mit vorhandene Anlage importieren im startup fenster. Nach klicken auf den text oeffnet sich ein fenster in dem du zum speicherort der gewuenschten anlage navigieren kannst. Nach klicken auf die anlage kannst du gefragt werden ob die noch angezeigte anlage gespeichert werden soll. Wenn du bejahst wird erst noch gespeichert und anschliessend die anlage importiert und hochgeladen und bei nein passiert es sofort.

rand.thumb.JPG.fb47c5d20793e743601f16aa18ebc71c.JPG

Cheers

Tom

Bearbeitet von metallix
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo @aloys63

Deine EV enthielt nur einen klitzekleinen Fehler.  

Du hast im Signal den Namen des Zugs gespeichert. Du musst aber die Objektadresse speichern.
Das sieht oberflächlich betrachtet gleich aus. Aber es sind zwei verschiedene Dinge.

So sieht der Eintrag in der EV bei dir aus:

265840113_Objektadresse1.jpg.2f7974608e9e675a9ce06bb787486320.jpg

 

Und so müsste er richtig aussehen:

615304024_Objektadresse2.jpg.07fc933639b99542ab6673e5ca2b0291.jpg

 

Mit dieser einen Änderung funktionieren bei dir alle Signale so, wie du es vorgesehen hattest: Aloys Versuch (korrigiert).mbp

 

Wenn du Objekte in Variablen speicherst, dann zeigt dir das Modellbahnstudio den Namen des Objekts. Aber es merkt sich nicht den Namen, sondern "das Ding", welches diesen Namen hat. Du könntest drei Loks mit identischem Namen auf der Anlage haben und das Modellbahnstudio wüsste trotzdem immer, welche von den drei Loks gemeint ist, wenn du die Objektadresse speicherst.

Es ist übrigens völlig egal, ob dieses Objekt Leerzeichen im Namen hat oder nicht.

 

Viel Spaß mit deiner korrigierten Anlage und deinen weiteren Experimenten
Götz

Bearbeitet von Goetz
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 12 Stunden schrieb metallix:

Wenn du runtergeladene anlagen starten moechtest muss das MBS ausgeschaltet sein. Nur dann bewirkt der doppelklick auf die runtergeladene anlage das das MBS startet und die anlage sofort hoch laed.

hallo Tom,

weiss ich doch, ging trotzdem nicht. Ich denke es liegt an dem von dir gewähltem Dateinamen mit Leerzeichen und Apostroph.

 

vor 12 Stunden schrieb metallix:

Alternativ geht es mit vorhandene Anlage importieren

das funtioniert.

Prost

Ronald

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo ihr seit (y)(y) immer da Götz kleiner fehler großes Ptoblem deine EV ist super einfach für mich Danke dier auch an Tom (y)(y) aber da Raucht mih der Kopf für mich seeeeehr Komplezirt :$ Tom wie mache ich es mit der Weichen anzeige für die DK 104 zeigt nicht mehr richtig an  Götz geht das im schattenbahnhof nich auch mit weniger

nur Halten_Weichen_Ausfahren  mann kann doch auch Zufällig Züge aus dem Schattenbahnhoff fahren lassen oder ?

Gruß aloys63 seh Durch einander:$:$:$

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 11 Stunden schrieb Goetz:

Es ist übrigens völlig egal, ob dieses Objekt Leerzeichen im Namen hat oder nicht.

Hallo Goetz,
in diesem Fall mag es egal sein, aber Grundsätzlich sollte man Leerzeichen und Umlaute in Variablennamen vermeiden.
Hier ein Zitat aus dem von dir verfasstem Lua-Tutorial:

"Man kann Variablen einen beliebigen Namen geben. Der darf aus einem einzelnen Buchstaben bestehen oder
ein ganzes Wort sein. Aber der Name darf nur aus Buchstaben, Ziffern und dem Unterstrich bestehen. Und er
darf nicht mit einer Ziffer beginnen.
(Ich hatte das in einem früheren Kapitel schon einmal geschrieben. Aber es ist so wichtig, dass ich es hier noch
einmal wiederholen möchte.)
Vermeidet spezielle Buchstaben wie z.B. Umlaute oder das ß. Sicher kennt ihr von E-Mails das Problem, dass
an Stelle solcher Buchstaben manchmal kryptische Zeichenfolgen auftauchen? Dasselbe könnte euch auch im
Programmcode passieren und dann für Probleme sorgen."

Meines Erachtens gilt das auch für Objekt- und Dateinamen.

Hallo @aloys63,

die Korrektur des Ereignisses "Signal schaltet" stammt von mir, Versuch_RRb.mbp. Goetz hat dann nochmal das Ereignis "Halt Kontakt wird ausgelöst" verfeinert.
Schön, dass dir geholfen werden konnte.

Gruß
Ronald

 

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Für Objektvariablen gelten andere Regeln, Ronald.

Denn diese Namen sind Bezeichner in einer Tabelle. Das erkennst du an der Lua-Schreibweise dieser Namen in eckigen Klammern und Anführungsstrichen.

Leer- und Sonderzeichen in Variablennamen bereiten Lua keine Probleme, wenn sie eindeutig als Teil des Namens erkennbar sind. 

 

Ich habe übrigens für meine Korrektur Aloys Original Versuch benutzt. Die enthält keine Änderungen von dir.

Bearbeitet von Goetz
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 36 Minuten schrieb Goetz:

Ich habe übrigens für meine Korrektur Aloys Original Versuch benutzt. Die enthält keine Änderungen von dir.

Hallo Goetz,
ja ok. Ich hatte im Original das Ereignis "Signal schaltet" von Objekt auf Objektname geändert, siehe Versuch_RRb. Auch das hat funktioniert.
Du hast das Ereignis "Halt Kontakt wird ausgelöst" von Objektname auf Objekt geändert.

Es gibt immer mehrere Wege die zum Ziel führen.

vor 41 Minuten schrieb Goetz:

Leer- und Sonderzeichen in Variablennamen bereiten Lua keine Probleme, wenn sie eindeutig als Teil des Namens erkennbar sind. 

Wieso dann diese Aussagen in deinem Tutorial?
Aber der Name darf nur aus Buchstaben, Ziffern und dem Unterstrich bestehen. Und er
darf nicht mit einer Ziffer beginnen.

Vermeidet spezielle Buchstaben wie z.B. Umlaute oder das ß.

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 6 Minuten schrieb randermann.tbb:

Es gibt immer mehrere Wege die zum Ziel führen.

Die sind in diesem Fall aber in ihrer Auswirkung sehr verschieden. Es ist ratsam, Objekte immer über ihre Adressen anzusprechen und nicht mittels ihrer Namen.

 

vor 8 Minuten schrieb randermann.tbb:

Wieso dann diese Aussagen in deinem Tutorial?

Weil man in Lua auch andere Variablen verwendet als Objektvariablen. 

Wenn du

Eins Zwei = 12

schreibst, dann interpretiert Lua das Leerzeichen als Trenner zwischen zwei Namen oder Schlüsselworten.

Aber die Objektvariable ist eigentlich ein Bezeichner in einer Tabelle. Daher die Schreibweise ["Eins Zwei"] Und die Anführungszeichen deklarieren alles dazwischen als einen String und somit auch als einen Bezeichner. Damit hast du bei Objektnamen und Objektvariablen viel Freiheit.

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 3 Stunden schrieb aloys63:

Tom wie mache ich es mit der Weichen anzeige für die DK 104 zeigt nicht mehr richtig an 

Jetzt schon ...so einigermassen. Die kreuzung ist nun im GBS aus zwei weichen dargestellt, wovon nur die eine (rechte, die von ausfahrenden zuegen umgestellt wird) die jeweilige aktive kreuzungsstellung anzeigt. Es wird nun also nicht mehr ausschlieslich die aktive fahrspur angezeigt sondern nur noch ob die kreuzung gerade oder abbiegen, fuer jeweils beide durchfahrmoeglichkeiten, erlaubt.

Al1.JPG.2985c7778b27f972fbb77c386a12253c.JPG  Al2.JPG.7c754b20032eb1e1c4d7ea7e2bcc24b2.JPG

Das geschieht nicht mehr durch verknuepfen sondern mittels 2 kleiner eintraege die ich hier

Al3.JPG.07f4e80d82d5ab8ea6ad3a02017d458b.JPG

abgelegt habe.

Viel  spass

Tom

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Aloys und Tom,

für die Schaltung einer 2-wertigen Doppelkreuzungsweiche, wie sie beispielsweise von Märklin angeboten wird, ist die GBS-Schaltung mit 2 einfachen 2-wertigen Weichenschaltern ungeeignet.

1000055196_2-phasigerWeichenschalter.thumb.jpg.40fe3e6c87708f2251f84280b159e12a.jpg

Hierfür gibt es stattdessen einen speziellen 2-wertgen GBS-Weichenschalter für "Märklin"-artige Doppelkreuzugsweichen, der als Variation bei den 2-wertigen Weichenschaltern hinterlegt ist. Man werfe also einen der beiden überlagerten Weichenschalter weg und stelle für den anderen die 2-wertige DKW-Variation ein.

1546135489_2-phasigeUmschaltung.thumb.jpg.ca3039f2e7ee3d0f93caab999116af9c.jpg

Das Bild dieses GBS-Weichenschalters zeigt nun jeweils die doppelt gerade oder doppelt abzweigende Stellung der DKW an. Damit kann dieser Weichenschalter direkt mit der 2-wertigen DKW verbunden werden, wodurch die Koppelung in beide Richtungen funktioniert. Im vorliegenden Beispiel musste ich allerdings die Weichenstellungen der DKW vertauschen, damit sie mit der Anzeige des GBS-Weicheschalters korrespondieren.

2064431014_EV-Schaltungobsolet.thumb.jpg.2b3f8612971c0849260fdb0a4c0e0ee5.jpg

Die Ereignsissteuerung für die DKW ist damit nicht mehr notwendig. Ich habe sie daher deaktiviert.

Anbei noch das entsprechend korrigierte Anlagenbeispiel:

Märklin-Schaltung im GBS.mbp

Viele Grüße
BahnLand

Link zu diesem Kommentar
Auf anderen Seiten teilen

typisch @BahnLand(y)

Ich haette es mir ja denken koennen das du auch diese "sonderformen" beruecksichtigt hast bei deinen modellen. Gut das du erwaehnt hast, das die weichenschaltung entgegengesetzt werden musste. Ich habe jetzt noch schnell die beiden eintraege, die diese weiche immer auf gerade zurueck stellen bzw. fuer den auesseren zug auf abbiegen (bei der ausfahrt) entsprechend angepasst.

Danke fuer die hinweise

Tom

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Götz Habe da ein Problem das Ausfahr Signal 201 löscht die GPS anzeige nicht 202-204 ist in ordnung habe aus deiner EVnur ein par sachen genommen past so weit bis Signsl 201 fur Beschriftung hab ich das betrit Gleis wie du genommen aber das Löschen der Beschriftung Gleis ferlassen mus der Bezug auf einer Varible im aulöser sein

Beschriftung Löschen solte mid in das Ausfahr signal

 

Mein Schattenbahnhof.mbp

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wow - das hast du alles sehr gut umgesetzt, Aloys (y)
Funktioniert prächtig.

Dass am Signal 201 die Besetztanzeigen nicht gelöscht werden. liegt am vorherigen Schritt.
Der kann beim Signal 201 nicht ausgeführt werden
Es soll eine Weiche umgestellt werden. Und das Signal 201 hat als einziges keine zugeordnete Weiche.

Gleisbesetzt-Anzeige.thumb.jpg.7b934f3cf7c113c8abfc9d880fff74ca.jpg

Deshalb habe ich, wie du im Bild oben siehst, diesen Schritt in eine Bedingung gesetzt.
Ich prüfe damit zuerst, ob überhaupt im Signal eine Weiche gespeichert ist.
Wenn nicht, dann wird auch nicht versucht eine Weiche umzuschalten.

Wenn ein Befehl "ins Leere greift" - also beispielsweise die benötigte Variable nicht findet - dann werden alle nachfolgenden befehle nicht mehr ausgeführt.
Das ist eine Schutzmaßnahme, die verhindert dass an solch einer Stelle Unsinn passiert.

Anbei die korrigierte Fassung: Aloys Schattenbahnhof (korrigiert).mbp.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Danke Habe versucht das in meine Aktuelle Anlagen  zu verbessern  Da ist die EV jetzt gans durcheinader habe alle raus geschmissen nur deine korrigirte leuft:)

kan der bezug zu einer vareable auch in einem anderen Objekt sein oder mus er im auslöser sein köntest du die Beschriftung löschen ins Ausfahr Signal setzen

und kann ich das Ausfahr Signal auch als einfahr signal nemen

ich bedanke mich schon mahl fur die antwort

Gruß aloys63

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 4 Stunden schrieb aloys63:

kan der bezug zu einer vareable auch in einem anderen Objekt sein oder mus er im auslöser sein

Hi Aloys

Grunsaetzlich kann eine variable als Modul oda Objektvariable in einem beliebigen Modul oda Objekt beheimatet werden. Bei ausloesenden objekten bietet es sich halt an, sie in dem objekt das ausloest, anzusiedeln.

vor 4 Stunden schrieb aloys63:

köntest du die Beschriftung löschen ins Ausfahr Signal setzen

Dazu sehe ich in deiner demo 2 Loesungswege:

1 Die Ev entsprechend aendern, was auch das speichern der variablen mit der lok im jeweiligen signal bedeuten kann...

2 Die Haltegleise verlaengern. Du hast am ende jedes haltegleises noch ein stopgleis, das abba nicht in die EV eingebunden ist. Die koenntest du loeschen und anschliessend die haltegleise entsprechend (flexibles biegen) verlaengern. Danach schliessen sie quasi mit den signalen ab und so wuerde die beschriftung mit der belegungsanzeige geloescht wenn das signal wieder auf halt geht.

vor 4 Stunden schrieb aloys63:

kann ich das Ausfahr Signal auch als einfahr signal nemen

:DIm prinzip ja:D dem signal ist es wurscht auf welcher seite und an welcher stelle es in einer anlage steht.......

(n) In der realen welt geht das nicht. Den vorschriften ist es nicht wurscht wo und wie ein signal plaziert ist.......

Cheers

Tom

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 7 Stunden schrieb aloys63:

kan der bezug zu einer vareable auch in einem anderen Objekt sein oder mus er im auslöser sein

Er muss im Auslöser sein.

Der Kern meiner EV ist ja, dass eine einzige Definition für alle Ausfahrsignale funktioniert. Es gibt aber individuelle Unterschiede, je nachdem, welches Signal gerade das Ereignis auslöst. Also möchtest du über diesen Auslöser an die individuellen Unterschiede kommen. Zum Beispiel die individuellen Anzeigen im Pult. Und das erreichst du, indem du diese individuellen Dinge in den auslösenden Objekten speicherst.

du schreibst also ins Signal: "zu dir gehört dieses Gleis und jene Besetztanzeige"

Die Definition für das Einfahrsignal habe ich von den Ausfahrsignalen getrennt, weil ich bei der Einfahrt andere Faktoren beachten muss als bei der Ausfahrt. Ich muss zum Beispiel bei der Einfahrt prüfen, ob im Schattenbahnhof noch mindestens ein Platz frei ist.

vor 2 Stunden schrieb metallix:

In der realen welt geht das nicht. Den vorschriften ist es nicht wurscht wo und wie ein signal plaziert ist.

Aloys verwendet Flügelsignale. Bei denen gibt es noch keinen optischen Unterschied zwischen Ein- und Ausfahrsignalen. Der kam erst mit den Lichtsignalen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 39 Minuten schrieb Goetz:

Bei denen gibt es noch keinen optischen Unterschied zwischen Ein- und Ausfahrsignalen

Ist denn die position und der standort kein optischer unterschied? Wenn ein signal fuer beide richtungen auf einem gleis zustaendig waere, waere bei stellung fahrt ja eine kolission erlaubt/angeordnet:/ Ich habe Aloys's frage zumindest so verstanden.

Cheers

Tom

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi Tom, 

ich hab Aloy's so verstanden, ob er den Typ Ausfahrsignal auch als Einfahrsignal nehmen kann. Wobei es diese Typen bei Flügelsignalen garnicht gibt. Ein gleiches normales Flügelsignal wird erst durch seinen Standort am Einfahrgleis oder am Ausfahrgleis in seiner Bedeutung zu einem Einfahr-oder Ausfahrsignal. 

Zu den unterschiedlichen Lichtsignalen: Einfahrsignale können keine zwei weißen Lichter anzeigen. Ausfahrsignale können zwei weiße Lichter anzeigen

                                                                Einfahrsignale haben ein rotes Licht                                       Ausfahrsignale haben zwei rote Lichter

Gruß

streit_ross

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Danke  bin durcheinander kan ich oder darf ich einen Bezug in zwei Objekt speichern zb  Variable .Bezug GPS  im Signal und im Gleis speichern oder nur in einem in der Koregtur steht die Widerholung für die Beleganzeige im GPS Gleis ein und aus im Signahl habe ich genau so in der anderen Anlage die ich noch hatte eingegeben da wurde die Anzeige nicht gelöscht :$ weni ch in der EV was Lösche oder andere kan da was Hängen bleiben was die EV durcheinander bringt oder wiel ich oft zwischen zwei Anlagen hin und her bin??:$

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor einer Stunde schrieb aloys63:

kan ich oder darf ich einen Bezug in zwei Objekt speichern

Ja, das darfst du tun. Das hat keine negativen Auswirkungen.

Ich wollte gerne nur ein Objekt dafür verwenden, weil

  1. ich dann nur ein Objekt ändern muss, wenn ich neue Ideen ausprobieren will
  2. ich zeigen wollte, wie man bei diesem (komplizierteren) Weg an die benötigten Daten dran kommt.

Ich benutze den kleinen Schattenbahnhof ja eigentlich nur, um die verschiedenen Methoden vorzustellen, die man in der EV anwenden kann.
Pick dir davon das raus, was dir gefällt.

vor einer Stunde schrieb aloys63:

weni ch in der EV was Lösche oder andere kan da was Hängen bleiben was die EV durcheinander bringt

Das Einzige, was hängen bleiben kann, sind Werte in deinen Variablen. Und die kannst du leicht überprüfen, wenn dir etwas komisch vorkommt.
Und beim Wechsel von einer Anlage zur anderen bleibt ganz bestimmt nichts hängen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Mache ich ja :D mis Schommeln ich habe die Beschriftung jetz auch im Signahl habe es jetzt ferstanden Das Signahl hat ein bezug zum GPS gleis und das ein Bezug zur Beschriftung und sie soll gelöscht werden es leuft(y)(y) Fehlen noch Einfahr und Block Signahle Einfahr Weiche sichern damit züge nicht getrent werden und das reicht dann

noch mahl (y)(y)Danke für eure Hilfe

aloys63

Link zu diesem Kommentar
Auf anderen Seiten teilen

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