-
Gesamte Inhalte
443 -
Benutzer seit
-
Letzter Besuch
Alle erstellten Inhalte von FriLu
-
Hallo, Hans Auch ich hatte eine DKW zur Steuerung der Kreuzungs-Ampeln eingesetzt, der Takt dafür wird aber von der schaltenden Ampel selbst erzeugt (Die DKW heisst "Steuerung Kreuzung" und der Countdown "Ampeltakt", die Kreuzung ist mit der DKW gekoppelt): Gruppe: taktung Ereignis: Ampeltakt-weiche Auslöser: Weiche schaltet Weiche='Steuerung Kreuzung' Position='Jede Position' Bedingung: Weiche steht auf Position Weiche='Steuerung Kreuzung' Position='0' Negieren='0' oder: Weiche steht auf Position Weiche='Steuerung Kreuzung' Position='2' Negieren='0' Aktion: Countdown starten Name='Ampeltakt' Dauer='15' Automatischer Neustart='0' -Wichtig! Sonst: (Bedingung nicht erfüllt) Aktion: Countdown starten Name='Ampeltakt' Dauer='1,5' Automatischer Neustart='0' -Wichtig! Ereignis: Ampeltakt-cd Auslöser: Countdown läuft ab Name='Ampeltakt' Aktion: Weiche schalten Weiche='Steuerung Kreuzung' Position='Umschalten' (Beim erstmaligen einrichten der Kreuzung um den CD zu starten reicht es, die DKW "per Hand" umzuschalten). Um die EV zu entlasten, habe ich verstärkt "verbogene Kreuzungen" eingesetzt - hier beschrieben, die Anlage dazu heisst "Autosteuerung_V1" ; Ergänzung zum Beitrag "Autoanlage" : Das mit dem Abkoppeln von Anhängern tritt NUR bei Kreuzungen, die als "Einfädelweiche" konstruiert sind und stumpf befahren werden- und dann auch nur bei Spur 2 auf ( das ist die Spur, die unter der anderen "verschwindet" ). Die farbigen Gleise auf dem Bild sind alles die "verbogenen Kreuzungen", am besten mal in der Anlage anschauen Gruß ~ Lutz in "kreuzung_v1" (experimentelle Anlagen) ist der funktionstest der Kreuzungen zu sehen.
-
Hallo Bert, für mich liest sich das so, das der Zug die Schranke schliesst und die Aktionen auslöst- Du musst dabei aber bedenken, das das setzen der Lokgeschwindigkeit 0 auf dem Schaltgleis nur für DEM Moment gilt- also ein "Momentkontakt" ist. Ist zu diesem Zeitpunkt kein Auto auf dem Schaltgleis, bleibt auch nichts stehen. Du musst ein Ereigniss schreiben: wenn ein Auto das Schaltgleis betritt UND die Variable auf deinem beim schliessen gesetzten Wert steht, soll das Auto auf dem Schaltgleis anhalten. Damit das Auto auch wieder losfährt, brauchts dann noch einen Eintrag bei dem Ereigniss das die Schranke öffnet, der dem Auto eine Geschwindigkeit zuweist ( LOK: alle Loks--GLEIS: Schaltgleis-- GESCHWINDIGKEIT: >Deine Geschwindigkeit< ). Ein Problem bleibt aber noch: Auffahrende Autos bleiben stehen, das müsste in der EV getrennt behandelt werden; ABER: schau mal in den Katalog unter "Experimentelle Anlagen" , da sind einige Lösungen zu finden... Gruß ~ Lutz
-
Hallo, ich hänge mich mal rein... Meine Vorschreiber haben ja erklärt, wie man die Lok anspricht, aber nicht explizit erwähnt, das dann bei Gleis [alle Gleise] eingetragen werden muss. Gruss Lutz
-
Abstellgleise über Drehscheibe bedienen
FriLu antwortete auf togilsarams Thema in Fragen zur Planung
Hallo, bei deinen Aktionen setzt du die Lokgeschwindigkeit mit "alle Loks", und spezifizierst das Gleis, auf das die Änderung wirken soll- bei Tender voraus steht aber der Tender auf dem spez. Gleis, nicht die Lok. Am besten ändere deine Geschwindigkeitszuweisungen in "Auslöser1: Lok" und "alle Gleise", da wird immer die Lok angesprochen. Gruß ~ Lutz -
Hallo, vielleicht ein mini-plugin... Gruß ~ Lutz
-
Hallo, mal zwei beispiele: Gruß ~ Lutz taster+weichen.mbp
-
Hallo Hans, du erzeugst eine Endlosschleife: Wenn das ereigniss " Taster wird betätigt- JEDE POSITION" heisst und du in den Aktionen den Taster an (oder aus) schaltest, wird das ereigniss im nächsten durchlauf erneut aufgerufen ( und der Taster erneut geschaltet- auch wenn er schon in der Stellung steht ). Ändere einfach beim ersten ereigniss "position" in 1 und beim zweiten "position" in 0, und lösche die schalter-rücksetzbefehle. Gruß ~ Lutz
-
Fahrzeuglänge ermitteln und bestimmen
FriLu antwortete auf h.w.stein-infos Thema in Fragen zur Planung
Hallo Hans, wenn du beim Anhalten des Busses (Geschwindigkeit auf 0) den Haken bei IST-Geschwindigkeit setzt, ist die Sperrweiche (und deren Steuerung) nicht mehr notwendig. ( Bus wird "ohne Auslauf", also sofort angehalten ) Übrigens: [Auslöser 1: Lok] bezieht sich auf das die Aktion auslösende Objekt ( in dem Fall den Bus ), dadurch ist die Angabe von konkreten Namen nicht mehr notwendig. Gruß ~ Lutz -
Fahrzeuglänge ermitteln und bestimmen
FriLu antwortete auf h.w.stein-infos Thema in Fragen zur Planung
Hallo, eine Möglichkeit, ohne messen auszukommen und die Autos trotzdem der Länge nach zu sortieren wäre, jedem Auto eine Objektvariable "länge" zuzuweisen und beim Weichenstellen abzufragen. Gruß ~ Lutz -
Fahrzeuglänge ermitteln und bestimmen
FriLu antwortete auf h.w.stein-infos Thema in Fragen zur Planung
Hallo, mal ein anderer Ansatz: Das einparkende Fahrzeug nicht mit "Zug betritt Gleis" sondern mit "Zug verlässt Gleis" stoppen: Ereignis: Anhalten Auslöser: Zug verlässt ein Gleis Lok='[Alle Loks]' Gleis='Weiche1' Bedingung: Lok/Wagen steht auf einem Gleis Lok/Wagen='[Alle]' Gleis='gl_park1' Negieren='0' Aktion: Lokgeschwindigkeit setzen Lok='[Auslöser 1: Lok]' Gleis='[Alle Gleise]' Geschwindigkeit='0' Ist-Geschwindigkeit setzen='0' Die Bedingung bewirkt, das das Fahrzeug nur in der Parkbucht anhält. Dazu muss das "gl_park1" gleich nach der Weiche kommen. Alternative: Ereignis: Anhalten Auslöser: Zug verlässt ein Gleis Lok='[Alle Loks]' Gleis='Weiche1' Aktion: Lokgeschwindigkeit setzen Lok='[Auslöser 1: Lok]' Gleis='gl_park1' Geschwindigkeit='0' Ist-Geschwindigkeit setzen='0' Die Einfahrweichen so stellen: Ereignis: Weiche einfahrt stellen Auslöser: Zug betritt ein Gleis Lok='[Alle Loks]' Gleis='Weiche1' Bedingung: Lok/Wagen steht auf einem Gleis Lok/Wagen='[Alle]' Gleis='gl_parken1' Negieren='0' Aktion: Weiche schalten Weiche='Weiche1' Position='1' Sonst: (Bedingung nicht erfüllt) Aktion: Weiche schalten Weiche='Weiche1' Position='0' Also: Ist das Parkgleis besetzt, wird die Weiche auf gerade gestellt, bei frei auf abzeig (Parkplatz). Ansonsten kannst du dir mal die Anlage "Autosteuerung_v1" in experimentelle Anlagen ansehen . Gruß ~ Lutz -
Kran über EV in Ausgangsposition fahren
FriLu antwortete auf Roter Brummers Thema in Fragen zur Planung
Hallo, grade noch mal probiert; Ausgangsposition: Brückenkran (variable Kranbahn) hat Container aufgenommen. Reset über Kransteuerung und Kommando 552 über die Schnittstelle verhalten sich gleich- der Kran fährt in die Grundstellung zurück und lässt den Container "in der Luft hängen". Steuerung über die EV : Alle Animationen, Richtung Rückwärts, Startposition Aktuell; fährt den Kran in die Grundstellung zurück, wobei der Container mitgenommen wird. Insofern denke ich, das alles iO.ist, es fehlt halt ein explizites Kommando "Reset" Auch die Animation "_Crane_4_Tra_Hold" funktioniert aus der aktuellen position vorwärts wie rückwärts ( mit 2 Tastern getestet ). Gruß ~ Lutz Edit: Programmversion ist die aktuelle Beta (3.1.2.0) -
Kran über EV in Ausgangsposition fahren
FriLu antwortete auf Roter Brummers Thema in Fragen zur Planung
Hallo Brummi, gerade probiert: funktioniert bei mir. Gruß ~ Lutz Edit sagt, auch die variable Kranbahn- animation 4 tuts... -
Objekte von einer Ebene auf andere Ebene verschieben
FriLu antwortete auf dermers Thema in Fragen zur Planung
Hallo Dermer, Objekt anklicken, im Fenster rechts unten die Fläche ( die Farbe zeigt die aktuelle Ebene an ) auswählen; im Dropdown-menü kannst du dann die Ebene ändern. Gruß ~ Lutz -
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
-
Variable mit anderer Variable z.B. multiplizieren
FriLu antwortete auf MP-Gamess Thema in Fragen zur Planung
Hallo Michael, zum beispiel so: Ereignis: bremsen vorbereiten Auslöser: Zug betritt ein Gleis Lok='[Alle Loks]' Gleis='bremsgleis' Bedingung: Variable besitzt den Wert Name='$_Trigger1._TargetSpeed' Wert='>0' Negieren='0' Aktion: Variable setzen Name='bremsgleis.lok' Wert='$_Trigger1._name' Aktion: Variable setzen Name='bremsgleis.time' Wert='1' Aktion: Variable setzen Name='bremsgleis.speed' Wert='$_Trigger1._TargetSpeed' Aktion: Variable setzen Name='bremsgleis.dec' Wert='$bremsgleis.speed' Aktion: Variable setzen Name='bremsgleis.dec' Wert='/1000' Aktion: Variable setzen Name='bremsgleis.time' Wert='-$bremsgleis.dec' Aktion: Variable setzen Name='bremsgleis.dec' Wert='+1' Aktion: Beschriftung setzen Beschriftung='Beschriftung1' Text='bremsen' Aktion: Countdown starten Name='bremsen-vorw' Dauer='0,1' Automatischer Neustart='0' Aktion: Countdown starten Name='korrektur' Dauer='0,05' Automatischer Neustart='0' Sonst: (Bedingung nicht erfüllt) Aktion: Variable setzen Name='bremsgleis.lok' Wert='$_Trigger1._name' Aktion: Variable setzen Name='bremsgleis.time' Wert='1' Aktion: Variable setzen Name='bremsgleis.speed' Wert='$_Trigger1._TargetSpeed' Aktion: Variable setzen Name='bremsgleis.dec' Wert='$bremsgleis.speed' Aktion: Variable setzen Name='bremsgleis.dec' Wert='/1000' Aktion: Variable setzen Name='bremsgleis.dec' Wert='*-1' Aktion: Variable setzen Name='bremsgleis.time' Wert='-$bremsgleis.dec' Aktion: Variable setzen Name='bremsgleis.dec' Wert='+1' Aktion: Beschriftung setzen Beschriftung='Beschriftung1' Text='bremsen' Aktion: Countdown starten Name='bremsen-rückw' Dauer='0,1' Automatischer Neustart='0' Aktion: Countdown starten Name='korrektur' Dauer='0,05' Automatischer Neustart='0' Ereignis: bremsen vorwärts Auslöser: Countdown läuft ab Name='bremsen-vorw' Bedingung: Variable besitzt den Wert Name='bremsgleis.speed' Wert='>30' Negieren='0' und: Signal steht auf Position Signal='Form-Hauptsignal HP1' Position='0 - Geschlossen' Negieren='0' Aktion: Variable setzen Name='bremsgleis.speed' Wert='/$bremsgleis.dec' Aktion: Lokgeschwindigkeit setzen Lok='$bremsgleis.lok' Gleis='[Alle Gleise]' Geschwindigkeit='$bremsgleis.speed' Ist-Geschwindigkeit setzen='0' Aktion: Countdown starten Name='bremsen-vorw' Dauer='$bremsgleis.time' Automatischer Neustart='0' Sonst: (Bedingung nicht erfüllt) Aktion: Beschriftung setzen Beschriftung='Beschriftung1' Text='fahren' Gruß ~ Lutz -
Problem bei automatischem Zugstopp an Kreuzungen
FriLu antwortete auf BahnLands Thema in Technischer Support
Hallo BahnLand, um es mal zu präzisieren: wenn die Kreuzung kürzer ist als die Wagen im Zug, hat ein Wagen ( Wagenmitte zählt ) die Kreuzung schon verlassen bevor der nächste Wagen ( Wagenmitte) die Kreuzung betritt- für den wartenden zug bedeutet es aber, die Kreuzung ist frei und er fährt los . MfG ~ Lutz -
Hallo Maik, Die Geschwindigkeitszuweisungen sind auf den Führerstand bezogen- pos. Geschwindigkeit: FS1 voraus. Nach durchfahren der Wende ist dann aber FS2 "vorn"- pos. Geschwindigkeit bewirkt deshalb keine Bremsung sondern ein zurückfahren. Ereignis: bremse Auslöser: Zug betritt ein Gleis Lok='[Alle Loks]' Gleis='EKG1' Aktion: Lokgeschwindigkeit setzen Lok='[Alle Loks]' Gleis='EKG1' Geschwindigkeit='115' Ist-Geschwindigkeit setzen ='0' Eine Lösung könnte so aussehen: Ereignis: bremse Auslöser: Zug betritt ein Gleis Lok='[Alle Loks]' Gleis='EKG1' Bedingung: Variable besitzt den Wert Name='_Trigger1._TargetSpeed' Wert='>0' Negieren='0' Aktion: Lokgeschwindigkeit setzen Lok='[Alle Loks]' Gleis='EKG1' Geschwindigkeit='115' Ist-Geschwindigkeit setzen='0' Sonst: (Bedingung nicht erfüllt) Aktion: Lokgeschwindigkeit setzen Lok='[Alle Loks]' Gleis='EKG1' Geschwindigkeit='-115' Ist-Geschwindigkeit setzen='0' Analog dazu müssen alle anderen Geschwindigkeitszuweisungen angepasst werden. Bei den Timern wirds komplizierter- BEVOR die Lok angehalten wird, die Geschwindigkeit in einer Variablen zwischenspeichern, bei Timerablauf die Variable abfragen und die Geschwindigkeit je nachdem setzen. Gruß ~ Lutz
-
Hallo, wer den hier erwähnten EV-Auswerter benutzt und den Texteditor ConTEXT auf dem Rechner hat, kann die von mir erstellte Datei ( 3DS.chl ) in den ConText-Unterordner Highligters legen: Ich liebe bunt! Zusätzlich zu den schritten, die zu einer Textdatei führen, muss (nicht unbedingt) noch der Slasch ( / ) durch den Unterstrich ( _ ) ersetzt werden, damit Lok/Wagen und aktiviert/deaktiviert korrekt angezeigt werden- ConTEXT als Programmier-Editor lässt keine Konfiguration von als Rechenzeichen definierten Zeichen zu- Wer wie ich " // " (Doppelslasch) als Kommentar-einleitung benutzt, muss anschliessend noch den " __ " (doppelten Unterstrich) durch " // " ersetzen. Gruß ~ Lutz 3DS.zip
-
Containerhafen ( Kransteuerung- eine EV-Lösung )
FriLu antwortete auf FriLus Thema in Fragen zur Planung
Hallo quackster, Wenn ich das richtig sehe, soll deine Steuerung ja über "Beschriftung setzen" laufen- Mmm, an diese Möglichkeit hatte ich nicht gedacht... ich hatte vor ca. einem Jahr auch mal eine Containerverladung (mit hilfe von VB gesteuert) angefangen, den Kran noch mit Dummyloks gesteuert. Im Script mehrdimensionale Arrays angelegt (ist ja so ähnlich wie deine Idee); allerdings wollte ich so wenig wie möglich im Script erledigen und hab dann eine "Variablenschnittstelle" zur Komminikation angelegt. Da das Erkennen von mobilen Stellflächen (Zug!) die sich im Kranbereich befinden (am besten) im Script erfolgt, stellt sich die Frage wie die EV darauf reagieren soll, da ja keine möglichkeit besteht, Text "zusammenzubauen". Eigentlich bleibt da nur, den Text im Script zu erzeugen und an den Kran zu senden- der EV bleibt dann nur, ein ja oder nein dazuzugeben... Nichtsdestotrotz bin ich auf deine Lösung gespannt- also machmal Gruß ~ Lutz -
Containerhafen ( Kransteuerung- eine EV-Lösung )
FriLu antwortete auf FriLus Thema in Fragen zur Planung
Hallo quackster, gute Idee mit dem Tool, bitte bau auch eine Möglichkeit, die Objekte mit Variablen zu versehen ein. Meine kenntnisse von VB beschränken sich eigentlich auf reine Logik, Schnittstellen ( also ein-ausgaben-Fenster ) hab ich immer nur "abgekupfert". . Deine Überlegungen hab ich zwar verfolgt, aber auch keine Idee, wie man das über die Schnittstelle realisieren könnte... Bin mal gespannt, was NEO so in der Hinterhand (EV-erweiterung) hat... Gruß ~ Lutz -
Containerhafen ( Kransteuerung- eine EV-Lösung )
FriLu antwortete auf FriLus Thema in Fragen zur Planung
Hallo, So, nach ...zig Stunden Gehirnwindungverdrehen hab ich jetzt einen Kreislauf hinbekommen, !nur mit EV-Mitteln! Bei der Zugverladung hab ich übelst getrickst: Jeder Wagen hat einen eintrag in der EV (zZ. 6 Wagen mit insgesamt 16 Stellplätzen), eine Laufvariable prüft, ob der Wagen auf dem Krangleis steht und schreibt die Stellplätze in temporäre Ziele (bzw. Quellen), (...ziel1, ziel2,...ziel16), wenn der Wagen nicht vorhanden ist, wird stattdessen nv (nicht vorhanden) eingetragen. Wenn der Kran gestartet wird, werden in der EV die 16 einträge (quelle bzw ziel) auf vorhandensein bzw. Voll / leer überprüft; -damit nur ein eintrag relevant ist, wird eine weitere Variable benötigt, die nur einen eintrag zulässt- wenn die Bedingungen erfüllt sind, wird dann das temporäre Ziel (oder Quelle) in die Kransteuerung übernommen. Beim Testen ist mir folgendes aufgefallen: Ich arbeite ja mit "Laufvariablen", die als Objektvariable dem jeweiligen Kran zugeordnet sind; wenn der Kran unterwegs ist und man dann das Fenster für die Objektvariablen öffnet und wieder schliesst, werden ja die Variablen wie im Fenster gezeigt neu eingelesen- hat sich nun im Hintergrund die Variable geändert, kommt es zum Crash . Desweiteren: da ich mit schrittvariablen arbeite, die die Aktionen anspringen (Aktion Variable wird gesetzt) und diese wenn zb. die bedingung nicht erfüllt ist schritte zurückgehen, kommt es zu endlosschleifen, wenn die bedingung nicht erfüllt werden kann ( die Erkenntniss kam aber zu spät, um noch mal neu anzufangen ). Der "Würgaround", eine art Timeout einzubauen, funktioniert auch nicht so richtig . Ich stelle die Anlage trotzdem mal rein, im Prinzip läufts ja, aber wenn ein Deadlock auftritt, hat man Mühe, die Variablen wieder so "hinzubiegen", das es weitergeht- vlt. kann aber der eine der andere ein paar Ideen aus der EV verwenden- Gruß ~ Lutz P.S. der rechte Kran hat noch einen Bug, er sortiert gerne mal die Container auf dem Abstellplatz um, was die Stellplatz-Zähler durcheinander bringt . Bewegte_ Container1.mbp -
Hallo, ausgehend von hier hab ich mal einen Kreisverkehr versucht, bin aber am wichtigsten gescheitert: Der Bahn . -Ich hab einfach keine Idee, wie ich die Wagons (bzw die Abstellflächen darauf) angesprochen kriege- Die Demo transportiert die Container von links nach rechts; wenn die rechte Abstellfläche voll ist, kann man die Container "zurückbeamen" ( weil die Zugbeladung noch nicht funktioniert ). Sporadisch treten Fehler auf ( LKW verliert aufleger, Kran bleibt hängen usw. ) wenn jemand die Ursachen dafür findet, bitte posten Gruß ~ Lutz container_bewegen.mbp
-
Hallo NEO, ich merke gerade, lesen bildet- @alle mitleser: die gewünschte Variable ist "_Trigger2", zu finden im Wiki unter Auslöser Kran... Gruß ~ Lutz
-
Containerhafen ( Kransteuerung- eine EV-Lösung )
FriLu antwortete auf FriLus Thema in Fragen zur Planung
Hallo Aloys, Leerzeichen in Variablennamen sind ja nicht erlaubt, damit es besser lesbar ist, verwende ich statt Leerzeichen eben den Unterstrich (_). "kran_schiff" ist der Name des Kranes, der gemeint ist- "kran_schiff.schritt" ist die Variable die die Aktionen auslöst. Gruß ~ Lutz -
Containerhafen ( Kransteuerung- eine EV-Lösung )
FriLu antwortete auf FriLus Thema in Fragen zur Planung
Hallo Aloys, An der Zugverladung versuche ich mich gerade- da wirds aber noch komplizierter weil ein Plugin ins Spiel kommt . Sobald die Vorgänge komplexer werden, geht an Variablen (fast) kein Weg vorbei, leider. Variable mit Klammern: Stell dir vor, Du legst einen Wert in einen Karton (=Variable) und beschriftest diesen (=Variablenname) und diesen Karton in einen weiteren- um nun an den Wert zu kommen, muss erst der eine und dann der andere Karton geöffnet werden. Damit der Compi das weiss, kommen um die zweite (und evtl. weitere) Variable Klammern: (Karton2).Karton1 bzw bei drei: ((Karton3).Karton2).Karton1 Gruß ~ Lutz