Jump to content

Geschwindigkeit aus Objektvariablen zuweisen


Empfohlene Beiträge

Hallo zusammen,

ich habe ein Frage zur Ereignisverwaltung.

Meinen Loks habe ich eine Objektvariable vmax zugewiesen, mit der ihre jeweilge Höchstgeschwindigkeit definiert ist. Damit kann ich bspw. einer Lok beim Passieren eines Gleiskontaktes als Aulöser des Ereignisses ihre vmax zuweisen.

ev01.jpg.8bbe3ca1e6d8e9daff36103c721c0f87.jpg

Wie mache ich das, wenn eine Lok auf einem Gleiskontakt steht und durch eine Signalöffnung die vmax erhalten soll? Dann ist die Lok ja nicht Auslöser und ich kann als Fahrzeugobjekt nur eine konkrete Lok auswählen. Wie kann ich der EV sagen, dass die gerade auf dem Gleiskontakt stehende Lok die in ihrer Variable vmax hinterlegte Geschwindigkeit erhalten soll?

ev02.jpg.3a5772fdb99962c71fee25e23037caa8.jpg

Vielen Dank und beste Grüße vom Elefanten

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Elefant,
auf die Schnelle überlegt würde ich mir beim Betreten des Gleiskontakts die Lok in dessen Objektvariablen merken (als Extra-Ereignis!). Vielleicht sogar die vmax mit hierhin übernehmen um aufwändigere Indirektionen beim Setzen der Geschwindigkeit zu vermeiden. Jedenfalls solltest Du dann über die erweiterten Variablen des Gleiskontakts drankommen. Oder Du könntest auch im Gleiskontakt einen Verweis auf das Signal hinterlegen und die Daten dann indirekt zum Signal transferieren. Mal sehen, ob noch eine direktere Lösung kommt.

Gruß
  Andy

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Andy,

Danke für deine Antwort. In dieser Art löse ich es im Moment. Ich übertrage beim Betreten des Gleiskontaktes den vmax-Wert der Auslöserlok aus der Objektvarianble in eine Modulvariable und nutze diese dann später wieder zum Setzen der Geschwindigkeit. Aber vielleicht gibt es ja eine direkte, elegantere Möglichkeit.

Grüße vom Elefanten

Bearbeitet von elefant65
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Elefant,
es ist nur immer so doof für eine Lösung mit 'Fotos' das Szenario aufzubauen. Da ist eine Content-ID einer als Entwurf gespeicherten Anlage mit Hinweis auf die Problemstelle eleganter. Da sind dann die betroffenen Objekte schon vorhanden. Modulvariablen, naja, wenn einem sonst wirklich nichts anderes einfällt, dann in Gottes Namen. Möglicherweise geht da was mit Eigenschaften.

Gruß
  Andy

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

vor 2 Stunden schrieb elefant65:

Wie mache ich das, wenn eine Lok auf einem Gleiskontakt steht und durch eine Signalöffnung die vmax erhalten soll? Dann ist die Lok ja nicht Auslöser und ich kann als Fahrzeugobjekt nur eine konkrete Lok auswählen.

in diesem Fall kommen Wiederholungen ins Spiel, konkret Für alle Fahrzeuge auf einem Gleis/Gleiskontakt. Innerhalb der Wiederholung hast du analog zu den Auslösern direkten Zugriff auf das Fahrzeug.

Viele Grüße,

Neo

Link zu diesem Kommentar
Auf anderen Seiten teilen

In der EV sieht Neos Vorschlag dann so aus:

587506868_vmaxinWiederholung.thumb.jpg.bd13ff299c7650aa3fac4fa0c2a57819.jpg

Wichtig: Im Signal ist der zugehörige Kontakt in einer Objektvariablen hinterlegt.

 

Unter der folgenden ID findest du die Beispielanlage mit dieser EV (als Entwurf)

EE443BD6-5EE7-4873-B483-0FDAF780752C

Lieben Gruß
Götz

 

Nachtrag:
Das Beispiel enthält noch einen Schönheitsfehler. Angetriebene Fahrzeuge ohne Vmax Variable verursachen eine Fehlermeldung. Eigentlich müsste man noch innerhalb der Schleife in einer zweiten Bedingung prüfen, ob die Variable Vmax existiert.

Bearbeitet von Goetz
Link zu diesem Kommentar
Auf anderen Seiten teilen

Vielen Dank Neo und Götz! Genau das habe ich gesucht.

Mit der Wiederholungsfunktion habe ich bisher noch nichts anzufangen gewusst. Darauf gekommen wäre ich von allein nie, denn so ganz ist mir auch immer noch nicht klar, was da eigentlich genau abläuft - muss ich mal in Ruhe durchdenken. Aber die Übertragung des Beispiels von Götz auf meinen Fall funktioniert schon mal :)

Die erste Lösung von Andy mit Objektvariablen an Gleiskontakten und Signalen finde ich übrigens (für andere Fälle) auch sehr interessant. Damit kann man manches vereinfachen.

Ein schönes Wochenede wünscht Elefant

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 3 Minuten schrieb elefant65:

so ganz ist mir auch immer noch nicht klar, was da eigentlich genau abläuft

Du hast eine Liste von Objekten - in diesem Fall alle Fahrzeuge in einem Zugverband.

Die Wiederholung

  • nimmt nacheinander jedes Objekt aus dieser Liste,
  • gibt ihm temporär einen Namen
    (default: Wdh / in meinem Beispiel: Element)
  • und führt dann die Aktionen in der Klammer für das Objekt mit diesem Namen durch.

Der temporäre Name ist ein Hilfsmittel, damit man das Element im folgenden Schritt ansprechen kann.

 

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