Jump to content

Problem Automatik Steuerung


Empfohlene Beiträge

Hallo Modellbahnfans,

ich bin mom. dabei meine geplante Modellbahnanlage in 3D-MS nachzubilden und so zu automatisieren, wie sie später Digital fahren soll. Um die Materie der Steuerung zu verstehen, habe ich mir ein Testmodul erstellt, in dem ich es ausprobieren kann.

Schalten von Weichen und Signalen funktioniert, auch die Verknüpfungen. Jedoch die Steuerung der Loks macht mir zu schaffen. Irgendwie hängts da bei mir.

Zum Problem:

Gleis rot = Stoppgleis; Gleis blau = Blockgleis; Gleis grün = Beschleunigung (mom. außer Funktion)

In meinem Testmodul fährt die V100 vom Gleis links oben, nach dem Betätigen des grauen Druckknopfs, auf das Gleis rechts oben. Beim Erreichen wird die Linksweiche auf gerade und die Signale geschaltet (siehe Schaltpult). Nun fährt die V200 los, von Gleis/Block rechts unten nach links oben.

Soweit so gut.

Aber obwohl ich das Stoppgleis links in der Ereignisverwaltung deaktiviert habe, kehrt die V200 wieder um. Es sollte aber so sein, dass die V200 bis zum Prellbock fährt, dort schaltet die EV wieder das Stoppgleis scharf, die V200 fährt zurück ans Stoppgleis und hält dort an. dabei löst sie weiter Aktionen aus.

Alles weitere was ich vor habe, kommt noch. Erst muss ich dass mal hinbekommen.

Habe gestern und heute wieder mehrere Stunden mit der Fehlersuche verbracht, ohne Erfolg. Irgend etwas habe ich übersehen.

Vielleicht kann mir jemand von Euch auf die Sprünge helfen. Vielleicht mache ich es auch zu umständlich. Irgend wann, wenns funktioniert, will ich meine Bahn per Rocrail automatisieren.

 

Jetzt muss ich nur noch schauen, wie ich euch meine Testanlage zum ausprobieren zur Verfügung stellen kann. ich hoffe es hat geklappt.

 

Testmodul_steuerung.mbp

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn deine V200 nach links oben fährt, dann ist ihre Geschwindigkeit -50 ( minus fünfzig )

In der Ereigmisverwaltung steht unter Zug fährt -> Zug fährt links oben:
Geschwindigkeit setzen auf -> 50 ( plus fünfzig )
und die Bedingungen dazu ( Signal offen, Weiche auf Stellung 0 ) sind beide erfüllt.

Also kehrt die V200 um.

Schalt mal das Signal oben links auf HP0 um, dann siehst du, dass deine V200 weiter fährt (weil jetzt eine der zwei Bedingungen nicht mehr erfüllt ist.)

 

Und ja, die Ereignisverwaltung ist zu verworren und schlecht strukturiert.

Auf einer Anlage gibt es Ereignisstellen. Und an diesen Punkten entscheidet sich etwas. Je nach Situiation und Bedingung.
Deshalb ist es schlau die EV nach solchen Triggerpunkten zu sortieren und nicht nach Aufgaben. Damit kriegt man die gesamte Logik besser in den Griff.

Du hast deshalb das Ereignis übersehen, welches dein Problem verursacht, weil du es unter Zug fährt gar nicht gesucht hast.

Hättest du deine Ereignisse nach Zug betritt Gleis organisiert, dann hättest du sofort alles relevante gefunden.

 

Mein Tipp wäre, dass du die komplette EV löscht und neu beginnst.

Sonst verstrickst du dich immer tiefer und verlierst irgendwelche vererbten Logikfehler völlig aus den Augen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Goetz,

deine Sortierung in der EV nach Triggerpunkten macht mich neugierig wie das aussieht. Kannst du mal eine Anlage mit einer EV als ZIP-Datei beifügen, in der die EV nach solchen "Ereignisstellen" aufgebaut ist. Würde mich nur als Anschauungsobjekt sehr interessieren.

Gruß Wolfgang
wopitir

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dazu müsste ich erst einmal eine solche Anlage bauen, Wolfgang. ;-)
Ich mache bislang nur kleine Tests, um die Möglichkeiten des MBS und insbesondere der EV auszuloten.
Und diese Testanlagen sind alles andere als sauber strukturiert. Sie sind eher das, was ein Bekannter von mir "rapid prototyping" nennt.

Aber unabhängig von Software und spezifischen Anforderungen gibt es auf Anlagen Entscheidungspunkte.
Knoten, an denen Ereignisse Konsequenzen haben.

Wenn ich mit meinen Experimenten etwas weiter bin, dann kann ich bestimmt mal ein Beispiel zeigen. Ich bin nur zur Zeit furchtbar langsam in meinen Tests, weil ich aktuell sehr schlecht sehe und immer nur ein paar Minuten an der EV arbeiten kann, bevor ich meine Augen wieder ausruhen muss.
 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Wolfgang,
von einer funktionierenden Anlage bin ich noch sehr weit entfernt.

Und da ich erst wenig Erfahrung mit dem MBS habe, sind meine Überlegungen zur EV bisher nur Theorie.

Um trotzdem ein wenig deutlicher zu machen was ich gemeint hatte, möchte ich hier eine Dummy EV zu einem Kreuzungsbahnhof an zwei eingleisigen Strecken zeigen.

Mbs_bahnhf_gbs.jpg

Mbs_bahnhf_ev.jpg

Diese Beispiel-EV besteht fast ausschließlich aus einer leeren Ordnerstruktur. Lediglich ein paar Dummy Einträge sollen andeuten, worauf ich hinaus will.

Bei den Einfahrten habe ich zwischen Anfahrt und Einfahrt unterschieden.

Mit Anfahrt meine ich den Punkt, an dem ein Zug den Block vor dem Einfahrsignal betritt. Das ist das letzte Blocksignal auf der Strecke, außerhalb des im GBS dargestellten Bereichs. Wenn ein Zug diese Stelle betritt, dann sollte er sich schon anmelden, damit der Weg in den Bahnhof gesucht werden kann.

Mit Einfahrt meine ich dann den Punkt am Einfahrsignal. Wenn ein Zug hier ankommt, dann muss geprüft werden, ob der Weg in den Bahnhof schon frei und gesichert ist. Falls nicht, dann muss der Zug am Signal gestoppt und ein "Zug wartet" Flag gesetzt werden.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Folgendes macht meine Taktik vielleicht noch etwas deutlicher:

Im Skript findest du keinen Abschnitt "Bahnübergang".
Weil die Regelung des BÜ keine eigenständige Sache ist, sondern etwas, dass sich als Konsequenz aus den EIn- und Ausfahrtregelungen ergibt.

 

Was mir übrigens am MBS und der EV ganz besonders gut gefällt ist die Tatsache, dass jedes Objekt User-spezifische Variablen erhalten kann. So kann man z.B. in einem Zug (resp. einer Lok) den priorisierten Bahnsteig in jedem Bahnhof sowie ein oder zwei alternative Bahnsteige festlegen. Da steckt unglaublich viel Potenzial drin.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Goetz,

ich weiß nicht ob du mein letztes Video über die Bahnübergänge angeschaut hast. Im 2. Teil habe ich mit einer temporären Objektvariablen gearbeitet die beim Betreten des Anfahrtgleises angelegt und definiert wird und nur zu einer bestimmten Laufzeit existiert (solange Zug im Bereich Bahnübergang ist). Dadurch bleibt die Variablenliste kürzer und übersichtlicher.

Gruß Wolfgang
wopitir

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich gestehe, dass ich dieses Video noch nicht angeschaut habe.
Aber ansonsten habe ich deine Videos schon sehr schätzen gelernt, denn sie haben mir den Zugang zum MBS erheblich erleichtert.

Ohne deinen Ansatz zu kennen hätte ich vermutlich im BÜ selber - z.B. in einer der Schranken - eine Zugzähler-Variable angelegt, damit ich vor dem Öffnen der Schranken stets prüfen kann, ob wirklich alle Züge den Bereich passiert haben.

Aber deinen Hinweis auf temporäre Variablen werde ich fortan im Hinterkopf behalten. Das ist für viele Zwecke bestimmt der bessere Weg.

Vielen Dank.

 

Edit:

Ich habe mir jetzt beide Videos zur BÜ-Steuerung angesehen.
(Das zweite zur Hälfte, bis die temporäre Objektvariable erklärt wird.)

Das ist genial!

Link zu diesem Kommentar
Auf anderen Seiten teilen

hallo juergen.kalinowski, Goetz, Wolfgang und alle die es interessiert,

zunächst mal mich auf den ersten eintrag hier und die antwort darauf beziehend, wird das problem das juergen hat nicht einfach durch das umdrehen der lok gelöst werden kann.

da ich der meinug bin das man sich wiederverwendbare teilstücke anfertigen kann, habe ich mir gedanken zu einem bahnhofsgleis gemacht,
wo loks/züge vorwärts/rückwärts, geschoben oder gezogen, aus verschiedenen richtungen einfahren und halten oder einfach nur durch fahren können.

eine rückfahrt auf dem gleis (pendelverkehr) ist noch nicht enthalten, auch fehlt noch die schaltung von signalen.

mir geht es hier darum die problematik auf zu zeigen. ich arbeite mit eindeutigen kürzeln für gleisbezeichnungen und variablen. diese haben den vorteil leicht umbenannt zu werden. zb "!H1_30_ga1" wobei != leichteres auffinden, H1= hauptbahnhof1, 30= eine dem gleis zugeordnete geschwindigkeit, g=bahnsteigsgleis,
a=aus welcher richtung kommend, 1=nummer des bahnsteigsgleises.

das hat für mich den vorteil nach kopieren der gleisstrecke und kopieren des ev-ordners (Gleis1) bei den gleisen wie auch in der ev einfache änderungen vorgenommen werden können. aus ordner Gleis1 wird ordner Gleis2 und aus gleis "!H1_30_ga1" wird "!H1_30_ga2".

sollte ein zweiter bahnhof her kann alles kopiert und in H2... umbenannt werden.Ev_schnipsel01.jpg Ev_schnipsel02.jpg

hier das beispiel für eine gleisanordnung im bahnsteigsbereich. die zugehörigen ev einträge wurden in den gleisfarben gekennzeichnet.
da ich das beispiel leider auf grund der nutzen einer testversion nicht einstellen kann und auch zufaul bin es nochmals neu zu scheiben (hoch leben die schnipsel)
habe ich in der angehängten zip datei mit einer (ein tool von BahnLand machte das möglich) text datei versehen, wo die einträge innerhalb der ev ersichtlich werden.

Ev_schnipsel03.jpg

wie ab nun immer distanziere ich mich von einen eigenen arbeit und hafte nicht für evtl. unfälle im bahnbetrieb B|

vg quackster

Ev_schnipsel_hbf_einzelgleis.zip

Link zu diesem Kommentar
Auf anderen Seiten teilen

Nimm es mir bitte nicht übel, Quackster, aber das ...

Zitat

wobei != leichteres auffinden

... würde ich keinesfalls zur Nachahmung empfehlen!

Das Risiko, dass ein Unbedarfter dabei als Sonderzeichen etwas wählt, das für andere Zwecke reserviert ist, ist einfach zu groß.

Außerdem erinnert es mich fatal an zig Ordner- und Filenamen, die alle A, AA, AAAA, AAAAAAA lauten, wie ich sie bei Leuten sehe, die mit PCs nur Probleme haben. Getreu dem Motto: "Alles ist besonders wichtig, also muss alles in der Liste ganz nach oben."

Ich möchte aus eigener Erfahrung zu einer vernünftigen, lesbaren Benennung raten.

Und Namenskürzel sind auch nur für den Eigenbedarf sinnvoll. Soll ein Skript als Beispiel dienen, dann sind solche verklausulierten Namen tödlich. Egal, wie clever das zugrunde liegende Schema auch sein mag. Ein Fremder wird sich nur mit Mühe in so etwas rein denken können, weil es nicht "auf seinem Mist gewachsen" ist und somit auch nicht seiner eigenen Sichtweise entsprechen wird.

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

hallo Goetz,

da bekanntlich viele wege nach rom führen, kann ich dir gar nicht und bin auch nicht gewillt böse zu sein, es bleibt ja die namensgebung jedem selbst überlassen.
nach nun 30 jahren pc erfahrung von lochkarten angefangen, bis hin zu php und verschiedenen sql variationen und verschiedensten scriptsprachen zähle ich mich nicht zu leuten die mit pc's nur probleme haben.

aber egal, sicher ist es am anfang besser mit lesbaren benennungen zu arbeiten, aber glaube mir das ich nicht der einzigste bin der auf ein ähnliches  namensgebungssystem zurückgreift, den je größer eine anlage ist desto einfacher wird es dann mit der ev.

vg quackster

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Quackster,

Zitat

zähle ich mich nicht zu leuten die mit pc's nur probleme haben.

Das wollte ich dir auch bestimmt nicht unterstellen.

Ich dachte dabei an diejenigen, die hier mitlesen und zu den AAAAAA Kandidaten gehören. Die würde ich lieber von solchen Taktiken weg führen.

 

@ juergen.kalinowski

Entschuldige bitte, dass dein Thread jetzt durch die von mir angezettelte Diskussion zunehmend entgleitet.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo zusammen,

zu erst mal Dank an Euch für die schnellen Antworten.

Ich dachte mir schon, dass meine Vorgehensweise kompliziert und verwirrend ist, denn ich habs ja selbst nicht mehr auf die Reihe bekommen. Ich hatte am Anfang ja noch mehr in der EV, denn es waren ursprünglich 3 Loks die ich nacheinander auf ein gerade freies Gleis schicken wollte.

Wahrscheinlich wollte ich auch zu schnell weit kommen. Ich habe meine Bahn und dies kleine Teststück in 2 Tagen runtergerasselt. Aber es ist halt nicht so einfach.

Goetz: Ich werde deinen Tipp beherzigen, alles aus der EV raus schmeisen und frisch, langsam und strukturiert an die Sache ran gehen. Auch habe ich so bemerkt, dass ich in meiner Bahn mehr Schalt-, Aktionsgleise, Blöcke etc. benötige um mehr abzufragen und schalten zu können

Und es mach mir nichts aus, wenn man abschweift. Hauptsache man kommt wieder zurück :D;)

Grüße Jürgen

Link zu diesem Kommentar
Auf anderen Seiten teilen

hallo Jürgen,

hab mal was gebaut, und muss zugeben es ist nicht ganz einfach nachzuvollziehen.

Beispiel_juergen.kalinowski.jpg

in anhang das fertige teil, wobei ich es dir überlasse die automatik steuerung zusammen zu basteln. du müsstes einfach nur allen prellböcken einimpfen das sie die zugehörige weiche "umschalten" und eine weiche schalten wo nix frei ist.

vg quackster

Beispiel_juergen.kalinowski.mbp

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo zusammen,

ich habe nun alle Ereignisse gelöscht und von vorne angefangen. Aber da gab es schon das(die) erste(n) Problem(e).

Zum Vorgang:

- grauer Schalter Ein, startet die V100, egal wo sie steht

- Signal für das Gleis steht auf grün

- Weiche auf 0 also Abbiegen

       Ergebnis: V100 fährt durch

-  grauer Schalter Ein, startet die V100, egal wo sie steht

- Signal für das Gleis steht auf rot

- Weiche auf 0 also Abbiegen.

      Ergebnis: V100 bleibt am roten Stopgleis stehen

So weit so gut. Nächste Aktion:

- Schalter für Signal wird betätigt

- Signal springt auf grün und

- V100 bleibt stehen!

Prog_foto.jpeg

Und wenn ich in der EV nachschaue, ist die Aktion "Lok stop oben links" nicht deaktiviert obwohl ich dies ja beim Signalumschalten deaktiviert habe?!

Hier nun meine EV:

Ereignis_1.jpeg Bedingung_e1.jpeg

Aktion_e1.jpeg

nächster EV Eintrag:

Ereignis_2.jpeg

keine Bedingungen vorhanden!

Aktion_1e2.jpeg

Aktion_3e2.jpeg

Was habe ich falsch gemacht oder vergessen?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn die ersten beiden Kommandos (Signal stellen, Weiche stellen) ausgeführt werden, dann gibt es keinen Grund, warum die beiden anderen Kommandos nicht ausgeführt werden sollten.

Und wenn es wirklich keine Bedingungen gibt (die du ungewollt erstellt hast), dann müssen alle vier Kommandos ausgeführt werden sobald der Schalter betätigt wird. Es sei denn, dass genau dieses Ereignis deaktiviert wurde.

Besteht die EV nur aus diesen beiden Anweisungen? Oder steht da noch mehr drin?

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Zitat

deine lok steht wohl nicht wirklich auf dem stopgleis

Meinen Tests zufolge ist das egal. Es reicht schon, wenn nur ein paar Zentimeter der Lok auf dem angesprochenen Gleis stehen.

Haltegleis.jpg

Die Lok im Bild fährt los, wenn ich allen Loks auf dem rot markierten Gleis eine Geschwindigkeit zuweise. Sie ist mit nur 10 mm/sec auf das rote Gleis zugefahren und wurde bei Betreten des Gleises gestoppt.

Haltegleis_2.jpg

Der Rahmen zeigt die genaue Position noch deutlicher.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Zitat

Wenn die ersten beiden Kommandos (Signal stellen, Weiche stellen) ausgeführt werden, dann gibt es keinen Grund, warum die beiden anderen Kommandos nicht ausgeführt werden sollten.

Und wenn es wirklich keine Bedingungen gibt (die du ungewollt erstellt hast), dann müssen alle vier Kommandos ausgeführt werden sobald der Schalter betätigt wird. Es sei denn, dass genau dieses Ereignis deaktiviert wurde.

Besteht die EV nur aus diesen beiden Anweisungen? Oder steht da noch mehr drin?

Genau so sehe ich es auch, daher verstehe ich die Logik nicht.

Hatte alles aus der EV raus geschmissen, Bahn so gespeichert, Programm neu gestartet und Bahn geladen, damit wirklich keine Überreste von vorher da sind. Und ich habe alle EV Einträge so als Screenshot hier hochgeladen. Wo keine Bedingung ist, ist auch keine (jedenfalls nix sichtbares). Dachte schon, ich muss eine bestimmte Reihenfolge in der EV einhalten, aber anscheinend ist das ja nicht so.

Habe das Programm darauf hin neu gestartet und die Bahn erneut eingeladen, aber es hat sich nichts verändert. Ich verstehe das nicht.

Zitat

deine lok steht wohl nicht wirklich auf dem stopgleis. weise mal dem gleis auf dem die lok größtenteils steht die geschwindigkeit zu

Wie du auf dem Screenshot ersehen kannst, stehe die V100 mit dem Vorderteil ja etwas drauf, und dass sollte wohl reichen.

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