Jump to content

Fahrstraßen per Wiederholung stellen


Recommended Posts

Posted (edited)

Hallo,

ich habe schon die verschiedensten Artikel über Wiederholungen gelesen, bin aber nicht daraus schlau geworden. 

Ich habe eine Liste Fahrstraßen angelegt, darin wieder eine Liste mit den Fahrstraßen 1 bis 4, darunter denn eine Tabelle mit den Weichen und deren Stellung. Aber wie lege ich nun in der EV die Aktion an, dass die Weichen entsprechend der angegebenen Stellung in einer Wiederholung eingestellt wird.

Die zu stellende Fahrstraße steht in einer Variablen im Fahrzeug

Danke für Eure Hilfe

Jürgen

 

Fahrstraßen.jpg

Edited by jloos
Link to post
Share on other sites
Posted (edited)

Hallo Jürgen,

die Liste, welche du abarbeiten möchtest, ist selber ein Element der Liste Fahrstraßen.
Deshalb musst du für die Wiederholung angeben, dass du ein Element einer Liste verwenden möchtest:

327518451_FSTabelle0.jpg.eca82309b170c84e055936c9429e89e1.jpg

Jetzt hast du zwei Felder. Die Variable (für den Listennamen) und den Index (für die Untertabelle, welche du verwenden möchtest:)

1537632419_FSTabelle1.jpg.40b2ace045535f3abf98edc7a2502203.jpg

Damit werden in der Wiederholung nacheinander alle Elemente dieser Untertabelle abgearbeitet.
Und diese Elemente sind wiederum kleine Tabellen, die je eine Weiche und ihre Stellung enthalten.

Also gibst du bei "Weiche schalten" innerhalb der Wiederholung ebenfalls an, dass sowohl die Weiche als auch ihre Stellung in einer Tabelle zu finden sind:

947944741_FSTabelle2.jpg.4a0a21ba5d1436cac560c8e4f7652222.jpg

Für die Weiche ist die Variable jetzt das Element der Wiederholung
und der Index heißt Weiche (weil das so in deiner Tabelle eingetragen ist.)

397097605_FSTabelle3.jpg.bb445f1ff74d672f8ee36ea6e39c5d3b.jpg

Und genauso heißt bei der Stellung die Variable wieder "Wdh" und der Index "Weichenstellung"

Hier hast du noch einmal alles in einem Bild vereint:

1600042190_FSTabelle4.thumb.jpg.867492b2323786c1cb4f71de028fa965.jpg

Ich hoffe, das hilft dir weiter?
Sonst versuche ich gerne, es in einem kurzen Video vorzuführen.

Götz

Edited by Goetz
Bild hinzugefügt
Link to post
Share on other sites

Vielen Dank Goetz,

jetzt habe ich es begriffen. Es funktioniert mit 4 Fahrstraßen. Jetzt kommen noch 11 weitere dazu. (übermütig)

Deine Erklärung kommt jetzt ins Archiv als Lehrstück.

Gruß Jürgen

Link to post
Share on other sites
  • 2 weeks later...

Hallo,

Ich häng mich mal hier dran.

So wie es hier ist, Liste in einer Liste abarbeiten funktioniert wunderbar.

Jetzt habe ich mal was anderes aufgebaut und häng da aber fest.

In einem Signal sind zwei separate Listen.

Liste 1 fünf Weichen als Opjekt

Liste 2 fünf Weichenstellungen als Zahl

Mein Problem ist wie bekomme ich den Wert der Weichenstellung in die EV:

Ich habe die EV wie folgt erstellt, aber so funktioniert es nicht.

EV_01.thumb.jpg.9ab7f59e24b271f11eae83b108427287.jpg

Als Lua-Text sieht es so aus:

local t = signal.variables["Weichen"]
for i, Weichen in ipairs(t) do
  Weichen.state = signal.variables["Weichenstellung"][Weichen]
end

Wenn ich den Lua-Text ändere und [Weichen] ändere in den Zähler [i]:

local t = signal.variables["Weichen"]
for i, Weichen in ipairs(t) do
  Weichen.state = signal.variables["Weichenstellung"][i]
end

dann funktioniert es.

Ich würde es aber gerne nur mit der EV darstellen können und da häng ich irgendwie fest.

Vielleicht kann ja jemand meinen Knoten im Kopf lösen.

 

Gruß

Michael

 

Link to post
Share on other sites

Hallo Michael,

wenn Du das so in der EV machen willst, brauchst Du noch ein dritte Tabelle mit den Weichennummern (in dem Fall 1-5). Diese nimmst Du dann für die Wiederholung. Den Wert in der Wiederholung nimmst Du dann als Index für die Listen Weichen und Stellung.

Als Schleife im Script würde ich es wie folgt erledigen (keine korrekte Lua-Syntax sondern nur als Skizze):

for i = 1 to AnzahlWeichen

   WeicheStellen (ListeWeiche(i), ListeStellung(i))

next

Die Variable AnzahlWeichen muß im Signal hinterlegt werden.

Gruß Old Grey 

 

Link to post
Share on other sites

Hallo EmKo, ich kann es dir leider nur in der graphischen Ebene zeigen, weil ich noch kein Lua kann. Vielleicht kannst du das ja irgendwie in ein Lua Script umwandeln. 

LG  Atrus 

Forum EV04.jpg

Forum EV13.jpg

Link to post
Share on other sites

Hallo Atrus, ich möchte es ja auch in der grafischen Darstellung  machen. Und so wie Du es zeigst ( Liste in einer Liste) funktioniert es ha auch. Das hat Goetz ja oben auch super erklärt.

Ich habe aber zwei einzelne Listen. Mit der ersten in der die 5 Weichen stehen starte ich die Wiederholung.

Beim ersten durchlauf möchte ich jetzt den ersten Wert aus der zweiten Liste haben. Beim zweiten Durchlauf den zweiten Wert usw.

In Lua bekomme ich das auch hin, nur in der grafischen Darstellung  nicht.

Gruß

Michael

Link to post
Share on other sites

Ja da muss ich erst einmal nachdenken, um deine Frage zu verstehen. Also bei mir wird jede Fahrstraße in einer eigenen Wiederholung mit den dazu gehörenden Listen ausgeführt die in dem jeweils betroffenen Signal hinterlegt sind. Da ich ja auch gleich die Reservierungen, Gleisbesetztmeldungen und die GBS Bausteine mit schalte. Nachdem ich weit über 100 Fahrstraßen benötige wäre mir das viel zu kompliziert, alles in einem Programm zu schreiben. Darf ich dich fragen was du damit genau bezweckst?

LG  Atrus

Link to post
Share on other sites

Vielleicht hat es auch mit dem Namen "Element" in einer Liste bzw. bei Weiche schalten "Variable Liste/Tabelle" zu tun, wie du auf meinem Foto sehen kannst. Bei mir ist der Auslöser ja auch ein Signal aber eben anders formuliert.

LG  Atrus

Link to post
Share on other sites

In meiner letzten Anlage

https://community.3d-modellbahn.de/forums/topic/6406-kleine-anlage-aus-maerklin-magazin-012019/

habe ich die Fahrstrassen über ganz viele Bedingungen gestellt (wenn Weiche vorhanden dann stelle Weiche in Weichenstellung ... usw)

Das ganze wollte ich jetzt etwas optimieren da sich ganz Teile in der EV wiederholen und da bin ich auf diesen Beitrag hier gestossen.

Natürlich ist es sinnvoll die Weiche mit der Weichenstellung in eine Liste zu schreiben da das ja zusammengehört.

Ich hatte nun aber einfach den Gedanken es mit zwei einzelnen Listen zu versuchen.

Ist nur eine Spielerei und funktioniert ja vielleicht auch in der grafischen Darstellung gar nicht.

Versuche es gerade mal mit dem Vorschlag von @modellbahn-old-grey mit einer Dritten (Zählerliste).

Mach Dir wegen mir da keine Kopfzerbrechen.:D

 

Gruß

Michael

 

Link to post
Share on other sites

Also einmal bin ich noch da. Meine EV sieht ja mittlerweile ganz anders aus. Hatte ich ganz vergessen. Bin gerade ganz woanders auf der Anlage, sorry!  Ich habe die Blockstrecken inzwischen in den Fahrstraßen integriert, um die Ereignisse in den Signalen zu verringern und das Ganze etwas übersichtlicher zu gestalten!

LG  Atrus

Forum EV30.jpg

Link to post
Share on other sites

Natürlich kannst du zwei Listen anlegen und die dann unabhängig von einander abfragen/abarbeiten. Aber dann würdest du ja einmal fragen ob es die Weichen überhaupt gibt  und dann erst die Weichenstellungen ausführen, aber du wirst ja kaum Weichenstellungen abfragen wollen die es gar nicht gibt? Wenn ich dich da jetzt nicht komplett falsch verstanden habe.

LG  Atrus 

Link to post
Share on other sites

@Atrus

Zitat

Aber dann würdest du ja einmal fragen ob es die Weichen überhaupt gibt  und dann erst die Weichenstellungen ausführen

Hahaha, genauso kompliziert habe ich es aber angestellt. Und da geht es jetzt mit Gewalt dran das zu ändern. :)

Gruß

Michael

 

Link to post
Share on other sites

Sehr erstaunlich, aber alle Wege führen eben nach Rom. Sempre!  Tja, also alles was ich zu diesem Thema weiß habe ich dir jetzt gesagt/gezeigt. Viellicht hilft es dir. Viel Glück und

LG  Atrus 

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...