Jump to content

Ablaufberg die Zweite


FriLu

Empfohlene Beiträge

Hallo,

BahnLand hatte ja mit seinem Ablaufberg eine grandiose Idee, die mich inspiriert hat, das mal mit VB-Script unterstützung zu versuchen.
Ziel war eigentlich eine minimale EV, ich bin aber daran gescheitert, das Wagenende über die Schnittstelle zu dedektieren ( in der EV-zusatzbedingung wird ja geprüft, od der gesamte Wagen das gleis verlassen hat ). Das Schnittstellenkommando "350;0; >gleis<" gibt nur Fahrzeuge zurück deren MITTE sich auf (über) dem gleis befindet.
Also musste ich einen Mix aus EV und VB-Script verwenden.

Zum starten des Ablaufs wird der Variable "eselsrücken" der Name der Schublok übergeben; das VB-Programm sendet dann die Belegung von _testgleis an die Variable "Ablaufberg".
In einer EV-Schleife wird geprüft ob der Wagen das _testgleis verlassen hat und wenn ja in die Variable eselsrücken "Dummy" geschrieben.
Das VB-Programm erzeugt daraufhin eine Dummylok ( Easys Messlok, die hat die "Länge" 0 ), diese wird auf das Gleis "_trenner" (unmittelbar hinter _testgleis) gesetzt, erhält den Namen des Wagens (mit vorangestellten "#") und eine evtl vorhandene Objektvariable des Wagens mit Namen ".gleis".
( In der Objektvariable ist das Zielgleis der Gleisharfe hinterlegt )
Am Gleisende ist eine Sperrweiche eingebaut, wenn der einfahrende Wagen diese betritt (genaueres siehe EV) wird eine Variable "Dummy_löschen" mit dem Namen der Dummylok
beschrieben und das VB-Programm löscht diese wieder.

Die Wagen können Ihren Orginalnamen behalten, nur Doppelte müssen umbenannt werden ( Zahl hintendran reicht ) Eindeutigkeit-> das ist aber nichts Neues.

Also: Programm "Ablaufberg die zweite" starten, EXE Ablaufberg starten ( oder wer hat/will das MV Studio ), mit Schalter Lok einschalten und zusehen :) .

Übrigens: Im VB-Script ist die Unsichtbakeit der Dummys auskommentiert- Absicht :P

Gruß ~ Lutz

Ablaufberg_die_zweite.mbp

MBS-Ablaufberg.zip

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Lutz,

... ich bin zwar momentan an einem PC ohne  MBS... aber...

... ich finde die Idee mit der "temporären" Entkupplungslok sehr gelungen...
... braucht man sich schon mal keine Gedanken darüber machen, wie man sie wieder an eine Ausgangsposition zurückbringt und wie viele denn eigentlich (wo) benötigt werden...

... ich werde es mir auf jeden Fall später noch an einem PC mit MBS anschauen...

Noch ein kleiner Hinweis:
wenn Du in VB statt z.B.
Send_Command("105;#" & inhalt_alt & ";" & u & ";" & v & ";" & w)
... dies hier schreibst...
Send_Command(String.Join(";","105","#" & inhalt_alt,u,v,w))
... kannst Du Dir einiges an & ";" & ersparen...

Gruß
EASY

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

Danke fürs "gefällt mir"

@Easy: Wieder mal was gelernt- Ich glaube, ich muss mir doch ein Buch über VB besorgen...:)

Habs nochmal überarbeitet, Script besser kommentiert und Beschreibung in der Hilfe hinzugefügt- ich hoffe, damit kann man das Programm besser in eigene Projekte einfügen.

Gruß ~ Lutz

 

Ablaufberg_die_zweite_v2.mbp

MBS-Ablaufberg2.zip

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

@Alois63:

Nach laden der Anlage im MBS muss noch die MBS-Ablaufberg.exe gestartet werden. Die befindet sich im zip-Paket.
Dazu muss das entpackt werden: Doppelklick, dann im sich öffnenden Fenster alle Dateien extrahieren anklicken und im sich dann öffnenden Fenster
extrahieren. Im neu erzeugten Ordner findest Du dann die .exe.

@Quackster, alle

Sorry, habs vergessen zu schreiben: In V2 ist noch ein Wagenzähler, der benutzt werden kann, Ablaufgruppen zu bilden:
das VB-Programm erzeugt ja nur eine Dummylok, wenn die EV das "sagt" (die Variable "eselsrücken" mit "Dummy" beschrieben wird).

Beispiel: --Folgt--

Gruß ~ Lutz

Link zu diesem Kommentar
Auf anderen Seiten teilen

Geschafft :)

hat doch länger gedauert, bis ich es hatte: Die Tankwagen ( als Beispiel ) bleiben zusammen.
Mit Drei neuen Ereignissen und zwei Modifizierungen in der EV - das VB-Programm bleibt unverändert - ist es jetzt möglich, Rangiergruppen zu bilden.

Dazu wird in der (Wagen)Objektvariable .gleis ein Wert >11 geschrieben (11 geht auch macht aber keinen Sinn), der in der Variable gruppentest (-10) gespeichert wird-
der Rest (im Beispiel 3) ist die anzahl der zusammenbleibenden Wagen.
Es ist notwendig, im Ordner Sortieren noch den Wert nachzutragen ( ein ereigniss zu erzeugen ), wenn die Rangiergruppe in ein bestimmtes Sammelgleis geleitet werden soll ( fährt Standartmässig sonst in Gleis 3 ).

Gruß ~ Lutz

Ablaufberg_die_zweite_v3.mbp

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