Jump to content

Empfohlene Beiträge

Geschrieben

Hallo Neo,

wie kann ich einer Variablen, die als Inhalt einen Text hat, an diesen einen Suffix anhängen?

Beispielsweise besitze die Variable A den Wert "XYZ". Ich möchte dann der Variable B den Inhalt zuweisen, der sich aus dem Inhalt der Variable A ergibt, wenn ich dort den Buchstaben "w" anhänge. Im vorliegenden Beispiel soll also Variable B nach der Operation den Wert "XYZw" besitzen.

Wie stelle ich das an?

Viele Grüße
BahnLand

Geschrieben

Hallo BahnLand,

Textoperationen unterstützt die Ereignisverwaltung leider nicht, nur Rechenoperationen mit Zahlen werden unterstützt. Welches Szenario möchtest du abbilden?

Viele Grüße,

Neo

Geschrieben

Hallo Neo,

ich möchte eine Autoschlange, die vor einem Hindernis (z.B. eine rote Ampel mit "Sperrweiche") aufeinander aufgefahren ist, beim Anfahren wieder "sauber" trennen. Damit die Straßenfahrzeuge nicht "ineinander" Fahren, wird jedes Auto, jeder Bus, jeder Anhängerzug usw. um mindestens einen "Dummy-Anhänger" aus dem Online-Katalog ergänzt, den ich fortan "Schlusswagen" nennen möchte, weil es sich  um das letzte Fahrzeug einer zusammen zu haltenden Konfiguration handelt. Hat das ursprüngliche Fahrzeug Überhänge (z.B. bei den Sattel-Aufliegern), müssen möglicherweise vor dem Schlusswagen weitere Dummy-Anhänger eingeschoben werden, um zwischen den einzelnen aufeinander folgenden Fahrzeug-Konfigurationen einen "ordentlichen" Abstand zu gewährleisten. Jede Fahrzeug.-Konfiguration beginnt demnach mit einem führenden Kraftfahrzeug (Auto/Lastwagen/Bus/Zugmaschine), besitzt möglicherweise "echte" Anhänger (auch Wohnwagen oder Sattelauflieger) und endet nach möglichen weiteren Dummy-Anhängern mit dem als Schlusswagen gekennzeichneten (letzten) Dummy-Anhänger. 

Nun lässt sich über "Zug betritt Gleis" das führende Kraftfahrzeug leicht bestimmen. Fährt dieses (z.B. an einer grünen Ampel) los, zieht es erst einmal alle "aufgefahrenen" Nachfolge-Konfigurationen mit. Diese müssen aber spätestens an der Ampel von der ersten Konfiguration abgetrennt werden, indem die an der Ampel befindliche Sperrweiche unmittelbar nach dem Passieren des "Schlusswagens" der ersten Konfiguration umgeschaltet wird. Hierzu muss man aber erkennen, wann dieses Schlussfahrzeug der ersten Konfiguration die Sperrweiche passiert hat. Dies ist über die Zusatzbedingung "Wagen steht auf Gleis" möglich, wenn man dessen Namen explizit kennt. Leider ist es nicht möglich, alle "Schlusswagen" gleich zu benennen und dann abzufragen, ob irgend ein Fahrzeug mit diesem Namen auf dem zu prüfenden Gleis steht (das wäre die einfachste Lösung), sondern man muss abfragen, ob konkret der Schlusswagen der ersten Konfiguration darauf steht. Also müssen alle Schlusswagen eindeutig bezeichnet sein, und man muss dann, wenn die Autoschlange an der Ampel startet und die Bezeichnung des führenden Fahrzeugs (der "Lok") der ersten Konfiguration über das "Zug betritt Gleis"-Ereignis abgefragt wurde, wissen, welche Bezeichnung der dazugehörige Schlusswagen besitzt, um dessen Position auf dem "Testgleis" abfragen zu können.

Da nicht vorhersagbar ist, welche Konfiguration (mit welchem führenden Kraftfahrzeug) wann diese Ampel passiert, muss die Bezeichnung des Schlussfahrzeugs aus jener des führenden Kraftfahrzeugs abgeleitet werden können. Das geht zwar auch über die statische Zuordnung einer Objektvariablen zu jedem führenden Kraftfahrzeug, in welcher die Bezeichnung des zugehörigen Schlusswagen hinterlegt ist. Dies bedeutet aber, dass für jede auf der Anlage fahrende Fahrzeug-Konfiguration eine Objektvariable mitgeführt werden muss. Darauf würde ich gerne verzichten, indem ich dem Schlusswagen eine Bezeichnung gebe, die direkt aus der Bezeichnung des führenden Kraftfahrzeugs abgeleitet werden kann (z.B. einfach am Ende einen zusätzlichen Buchstaben enthält). Und dazu müsste ich bei den Variablen-Operationen die Möglichkeit haben, aus einem Variablen-Inhalt durch Hinzufügen eben dieses Buchstabens einen neuen Variablen-Wert zu erzeugen, mit dem ich in der EV-Zusatzbedingung "Wagen steht auf Gleis" den zur betrachteten Konfiguration gehörenden Schlusswagen identifizieren kann.

Ich habe unter "experimentelle Anlagen" die Demo-Anlage "Autokorso" eingestellt, bei der ich genau dieses Verfahren mithilfe der separat eingerichteten Objektvariablen gelöst habe, auf die ich aber eigentlich verzichten möchte. Denn bei hunderten von Straßenfahrzeugen müsste ich dann ebenso viele Objektvariable definieren, was mir schlichtweg ein zu großer Aufwand ist und möglicherweise auch die Gesamtanlage zusätzlich belastet. Die Anlage wird mit dem Umlegen des Schalters gestartet und läuft dann vollautomatisch weiter. Durch Zurückschalten wird der Start weiterer Autos unterbunden.

Viele Grüße
BahnLand

Geschrieben

hallo BahnLand, @alle

a) wenn du bei jedem auto (lok) die fordere koplung deaktivierst

b) wenn du ein recht langes gleis als zufahrt zur ampel hast

c) wenn "zug betritt... " an einem kurzen gleis (ampel) das erste auto hält - die anderen fähren auf, kuppeln aber nicht an

d) wenn zum weiter weiterfahren "signal schaltet... nur dem kurzen gleis eine geschwindigkeit zugeordnet wird (die anderen autos bleiben stehen)

e) wenn nun das auto "zug verlässt das kurze gleis (über die ampel ist), dem langen gleis (wo die auf gefahrenen autos stehen) eine geschwindigkeit zugewiesen wird

sollte es bei c) weiter gehen und ein countdown das weitere losfahen übernimmt.

vg quackster

Geschrieben

Hallo Quackster,

das müsste eigentlich funktionieren. Danke für den Tipp.
Ich werd's ausprobieren. Möglicherweise ist dann mein Feature-Wunsch "vom Tisch".

Viele Grüße
BahnLand

  • 2 Wochen später...
Geschrieben

Problem gelöst!

Objekt-Bezeichnungen können auch "rein numerisch" sein, also aus einer Zahl bestehen.
Wenn man nun die führenden Fahrzeuge beispielsweise mit einer geraden Zahl bezeichnet (die Bezeichnungen müssen eindeutig sein) und der dazu gehörende "Schlusswagen" die jeweils nächsthöhere Zahl als Bezeichnung zugewiesen bekommt, kann dieser immer über das führende Fahrzeug identifiziert werden, indem man bei dessen Bezeichnung einfach eine "1" aufaddiert. Damit ist zumindest für den beschriebenen "Problemfall" die Anforderung, bei Textvariablen einen Buchstaben hinzufügen zu können, hinfällig.

Viele Grüße
BahnLand

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