Zugrol Posted September 22, 2016 Share Posted September 22, 2016 Hallo MBS-Gemeinde, ich habe folgendes Problem - ich möchte für die Zug bzw. Lkw-Beladung und -Entladung meine Ladegüter nach dem Zufallsprinzip verladen. Ist es möglich mit der Funktion $_random1-4 (ergibt ja nur die Zahlen von 1-4) und z.b Ladefläche oder Ladung + Zufallszahl eine Variablen-Kombination zu machen oder hat jemand eine Lösung für mein "Problem". 1 Kran mit 6 Abstellplätzen Zug hat 4 Waggon jeweils mit 1 Ladefläche LKW mit Anhänger jeweils mit 1 Ladefläche 6 Ladegüter sollen nach dem Zufall auf der Schiene oder der Strasse bewegt werden mit der Bitte um Hilfe Zugrol Link to comment Share on other sites More sharing options...
tdrewelow Posted September 23, 2016 Share Posted September 23, 2016 Hallo, FriLu hat sich mit sowas beschäftigt und meiner Meinung nach ne super EV geschrieben. Findest du hier. Da einfach die Anlage runterladen und staunen Gruß Torsten Link to comment Share on other sites More sharing options...
Zugrol Posted September 25, 2016 Author Share Posted September 25, 2016 Hallo, Danke für die Info - aber dieser Anlage blick ich nicht so ganz durch. Werde meine Anlage nach meinen momentanen Möglichkeiten zusammenbauen. Vielleicht wird es in näherer Zukunft eine möglichkeit für zusammengesetzte Variablen geben schöne Grüße Zugrol Link to comment Share on other sites More sharing options...
FriLu Posted September 25, 2016 Share Posted September 25, 2016 Hallo Zugrol, _Random generiert Zahlen im Bereich (einschliesslich) der beiden Zahlen, die angegeben sind (ob 1000-1100 oder 5051-5099 ist egal). Die Namen der Ladeflächen sind deshalb in einem Zahlenraum angesiedelt- so kann man bei Bodenabstellflächen einfach eine per Zufall auswählen. Bei LKWs wird der Name in einer Objektvariable gespeichert ( zb LKW4.name ) , so das bei "Zug betritt ein Gleis" der Name der Abstellfläche abgefragt werden kann. Bei Wagons wird es komplizierter- da der Wagonname nicht direkt abgefragt werden kann muss für jeden Wagon eine Definition in der EV stehen; ich hab das so gelöst: Eine Variable (zug_einlesen) wird 0-gesetzt und dann hochgezählt, bei jeden schritt wird geprüft ob der Wagen auf dem Gleis steht, wenn ja, wird die ladefläche in ein "temporäres" Ziel gespeichert, wenn nicht, wird das "temporäre" Ziel als frei gekennzeichnet ( bei mir mit "nv" für nicht vorhanden ) : Gruppe: Zug Gruppe: einlesen Ereignis: zug einlesen / 0-stellen // schritt 1 Auslöser: Variable wird gesetzt Name='zug_einlesen' Wert='1' Aktion: Variable setzen Name='krangleis1.anzahl' Wert='0' Aktion: Variable setzen Name='krangleis1.ort' Wert='0' Aktion: Variable setzen Name='zug_einlesen' Wert='2' Ereignis: zug einlesen /wagen 4001 // schritt 2 Auslöser: Variable wird gesetzt Name='zug_einlesen' Wert='2' Bedingung: Lok/Wagen steht auf einem Gleis Lok/Wagen='4001' Gleis='krangleis1' Negieren='0' Aktion: Variable setzen Name='kran_schiff.quelle1' Wert='zug1a' Aktion: Variable setzen Name='kran_schiff.quelle2' Wert='zug1b' Aktion: Variable setzen Name='krangleis1.anzahl' Wert='+2' Aktion: Variable setzen Name='zug_einlesen' Wert='3' Sonst: (Bedingung nicht erfüllt) Aktion: Variable setzen Name='kran_schiff.quelle1' Wert='nv' Aktion: Variable setzen Name='kran_schiff.quelle2' Wert='nv' Aktion: Variable setzen Name='zug_einlesen' Wert='3' Ereignis: zug einlesen / wagen 4002 // schritt 3 Auslöser: Variable wird gesetzt Name='zug_einlesen' Wert='3' Bedingung: Lok/Wagen steht auf einem Gleis Lok/Wagen='4002' Gleis='krangleis1' Negieren='0' Aktion: Variable setzen Name='kran_schiff.quelle3' Wert='zug2a' Aktion: Variable setzen Name='kran_schiff.quelle4' Wert='zug2b' Aktion: Variable setzen Name='krangleis1.anzahl' Wert='+2' Aktion: Variable setzen Name='zug_einlesen' Wert='4' Sonst: (Bedingung nicht erfüllt) Aktion: Variable setzen Name='kran_schiff.quelle3' Wert='nv' Aktion: Variable setzen Name='kran_schiff.quelle4' Wert='nv' Aktion: Variable setzen Name='zug_einlesen' Wert='4' Ereignis: zug einlesen / wagen 4003 // schritt 4 Auslöser: Variable wird gesetzt Name='zug_einlesen' Wert='4' Bedingung: Lok/Wagen steht auf einem Gleis Lok/Wagen='4003' Gleis='krangleis1' Negieren='0' Aktion: Variable setzen Name='kran_schiff.quelle5' Wert='zug3a' Aktion: Variable setzen Name='kran_schiff.quelle6' Wert='zug3c' Aktion: Variable setzen Name='kran_schiff.quelle7' Wert='zug3d' Aktion: Variable setzen Name='krangleis1.anzahl' Wert='+3' Aktion: Variable setzen Name='zug_einlesen' Wert='5' Sonst: (Bedingung nicht erfüllt) Aktion: Variable setzen Name='kran_schiff.quelle5' Wert='nv' Aktion: Variable setzen Name='kran_schiff.quelle6' Wert='nv' Aktion: Variable setzen Name='kran_schiff.quelle7' Wert='nv' Aktion: Variable setzen Name='zug_einlesen' Wert='5' usw... Wenn der Kran dann einen Wagon Be/entladen will, wird in der EV geprüft, ob das temporäre ziel vorhanden ist ( also nicht "nv" enthält) und dann in das "reguläre" Ziel übernommen: Ereignis: quelle suchen4 // schritt 31 Auslöser: Variable wird gesetzt Name='kran_schiff.schritt' Wert='31' Bedingung: Variable besitzt den Wert Name='(kran_schiff.quelle4).1' Wert='leer' Negieren='1' und: Variable besitzt den Wert Name='kran_schiff.quelle4' Wert='nv' Negieren='1' und: Variable besitzt den Wert Name='krangleis1.ort' Wert='4' Negieren='0' Aktion: Variable setzen Name='kran_schiff.quelle' Wert='$kran_schiff.quelle4' Ereignis: quelle suchen3 // schritt 31 Auslöser: Variable wird gesetzt Name='kran_schiff.schritt' Wert='31' Bedingung: Variable besitzt den Wert Name='(kran_schiff.quelle3).1' Wert='leer' Negieren='1' und: Variable besitzt den Wert Name='kran_schiff.quelle3' Wert='nv' Negieren='1' und: Variable besitzt den Wert Name='krangleis1.ort' Wert='3' Negieren='0' Aktion: Variable setzen Name='kran_schiff.quelle' Wert='$kran_schiff.quelle3' Ereignis: quelle suchen2 // schritt 31 Auslöser: Variable wird gesetzt Name='kran_schiff.schritt' Wert='31' Bedingung: Variable besitzt den Wert Name='(kran_schiff.quelle2).1' Wert='leer' Negieren='1' und: Variable besitzt den Wert Name='kran_schiff.quelle2' Wert='nv' Negieren='1' und: Variable besitzt den Wert Name='krangleis1.ort' Wert='2' Negieren='0' Aktion: Variable setzen Name='kran_schiff.quelle' Wert='$kran_schiff.quelle2' Ereignis: quelle suchen1 // schritt 31 Auslöser: Variable wird gesetzt Name='kran_schiff.schritt' Wert='31' Bedingung: Variable besitzt den Wert Name='(kran_schiff.quelle1).1' Wert='leer' Negieren='1' und: Variable besitzt den Wert Name='kran_schiff.quelle1' Wert='nv' Negieren='1' und: Variable besitzt den Wert Name='krangleis1.ort' Wert='1' Negieren='0' Aktion: Variable setzen Name='kran_schiff.quelle' Wert='$kran_schiff.quelle1' ( BEISPIEL: Hier wird geprüft, ob die Abstellfläche sich über dem Gleis, also in Kranreichweite, befindet- also nicht "nv" enthält und ob sich ein Ladegut darauf befindet, also nicht "leer" ist, am ende steht dann der Name des Ladegutes in der Variable "kran_schiff.quelle"; jetzt kann der Kran das Ladegut aufnehmen.) Das ganze ist ziemlich "um die Ecke" gedacht und benötigt für jede "temporäre" quelle einen eintrag in der EV- So, ich hoffe, ich hab dich nicht zu sehr abgeschreckt Gruß ~ Lutz Link to comment Share on other sites More sharing options...
Zugrol Posted September 26, 2016 Author Share Posted September 26, 2016 Hallo FriLu, Danke für die ausführliche Erklärung deiner Anlage - ich werde mich aber erst schön langsam hinein versetzen können und hoffentlich den einen oder anderen Ansatz für meine Anlage verwenden können. schöne Grüße und Danke nochmals Zugrol Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now