Jump to content

Empfohlene Beiträge

Geschrieben (bearbeitet)

Hallo @Neo

Ich habe ein Problem.
Wenn man mit Schlagworten arbeitet bei obigem Ereignis, dann werden diese Ereignisse bei ALLEN
Gleiskontakten ausgeführt, auch wenn diese Gleiskontakte mit dem gleichen Schlagwort zu anderen importierten Anlagen gehören.
An den Gleiskontakten sind dann mehrere Einträge vorhanden, die eigentlich unterschiedlichen Code beinhalten.

Um das Probem zu umgehen, würde ich gerne eine weitere Möglichkeit anfragen:
Auswahl: Gleiskontakt steht in Liste
Die Liste würde dann in den Variablen der Anlage stehen und wäre eindeutig nur den Kontakten der importierten Anlage zugeordnet.
Alle Kontakte, die vorher ein gleiches Schlagwort hatten, würde ich in die Liste eintragen.

Das müßte natürlich alternativ bei allen Optionen, wo man ein Schlagwort eintragen kann, stehen.

Wäre sowas möglich?

Gruß
Thomas

Bearbeitet von HaNNoveraNer
Geschrieben

Hallo Thomas,
Du machst mich gerade indirekt darauf aufmerksam, dass ich meinen Schlagworten bei der Abzweigung noch ein Präfix mitgebe. (y)
Wenn die jetzt aber automatisch eins mitbekämen, wäre es problematisch, da mehrere Instanzen der Abzweigung zu erzeugen...
Willst Du da jetzt eine Art Synonym-Liste machen?

Gruß
  Andy

Geschrieben (bearbeitet)

Im Endeffekt doch eine Synonym-Liste. Könnte nützlich sein/werden.
Wenn irgendwann mal die Erkenntnis kommen sollte, dass importierte Ereignisse nur auf lokalen Variablen/Schlagworten arbeiten, bedürfte es einer derartigen Schnittstelle. Wenn importierte Ereignisse jedoch global bleiben sollten, könnten andere Probleme auftreten, je nachdem, wieviel da mal eingeladen wird.

Bearbeitet von Andy
Geschrieben (bearbeitet)
vor 1 Stunde schrieb HaNNoveraNer:

Um das Probem zu umgehen, würde ich gerne eine weitere Möglichkeit anfragen:
Auswahl: Gleiskontakt steht in Liste

Hallo Thomas,

Du kannst deine Liste einmalig nutzen, um ein Schlagwort in diesen Kontakten zu löschen (und gleichzeitig ein alternatives zu vergeben, wenn du eins benötigst.)
Das halte ich für den besseren Ansatz, als bei jedem Betreten eines beliebigen Kontakts eine komplette Liste nach diesem Objekt zu durchforsten. Sogar mehrere Listen, falls du das Prinzip dann verstärkt einsetzt.

Solch eine Liste entspricht zwar unserer menschlichen Denkweise. Aber für den Computer ist die nix. 
Das Schlagwort im Kontakt ist wie ein direkter Draht zu einer bestimmten EV Routine. Das macht diesen Weg so stark.

Viele Grüße
Götz

Bearbeitet von Goetz
Geschrieben

Nachteil: Dann müßte jeder, der das Anlagenmodul importiert diese Liste ausführen um die Schlagworte zu setzen.
Oder was könnte der Trigger sein?

Und wie bekomme ich dann in die Ereignisauslöser, also die Bedingung, das neue Schlagwort rein?

Geschrieben

Hallo Thomas,

die Ereignisse in der EV arbeiten so, dass sie über einen Index angesprochen werden können. Ein Index kann dabei ein Objekt oder ein Schlagwort sein. Die Bedingung, dass ein Objekt in einer Liste steht, kann so nicht als Index formuliert werden. Dein Wunsch würde daher nicht in das System der EV passen.

Du müsstest daher selber in deinen Ereignissen prüfen, ob der Gleiskontakt, für den das Ereignis ausgelöst wurde, in einer bestimmten Liste steht. Allerdings kann ich diesen Ablauf nicht empfehlen, da das nicht skaliert. Wenn die Liste mit den Gleiskontakten sehr lang ist, dauert die Suche auch entsprechend (Objektreferenzen können keine Tabellen-Schlüssel sein). Es wäre daher sinnvoller, in den Gleiskontakten direkt ein Flag zu hinterlegen, und dann bist du wieder bei den Schlagwörtern.

Warum willst du unterschiedliches Verhalten für gleiche Schlagwörter implementieren?

Viele Grüße,

Neo

Geschrieben (bearbeitet)

Ich möchte die Schlagwörter je Ereignismodul kapseln. 

Damit ich unterschiedliche Objekte und Variablen in den Modulen ansprechen kann wenn ich die Anlagenmodule mehrfach importiere. 

Bearbeitet von HaNNoveraNer
Geschrieben
vor 8 Minuten schrieb HaNNoveraNer:

Ich möchte die Schlagwörter je Ereignismodul kapseln.

Das unterstützen die Schlagwörter nicht, diese gelten für alle Objekte in der Anlage. Warum sollen die Objekte je nach Modul unterschiedlich reagieren?

Viele Grüße,

Neo

Geschrieben
vor 3 Stunden schrieb HaNNoveraNer:

Auswahl: Gleiskontakt steht in Liste

Sorry, dass mir das nicht gleich einfiel:

Du kannst die Mehrfachauswahl nutzen. Die ist deine Liste.

 

367139252_Mehrfachauswahl1.jpg.4859bbfcc15c0259267696cbc943a83a.jpg

Und um alle relevanten Kontakte in diese Liste aufzunehmen,

1870135418_Mehrfachauswahl2.jpg.448715c46fec8d2ead221ef025e68112.jpg

... suchst du sie bei der Mehrfachauswahl per Schlagwort.

Damit ist die Aktionsliste in der EV sicher auf das Modul beschränkt, welches du importiert hast.

Viele Grüße
Götz

Geschrieben

Da hat der gute @Neo heimlich schon eine Liste programmiert und weiß es garnicht ;-)
Und sagt noch, daß die EV dafür garnicht ausgelegt ist :-)

Danke Götz, damit kann man arbeiten...
Ich hatte diese Mehrfachauswahl noch garnicht entdeckt.

Gruß
Thomas

Geschrieben
vor 1 Stunde schrieb Neo:

Warum sollen die Objekte je nach Modul unterschiedlich reagieren?

Nehmen wir mal an, man hat einen 6-gleisigen Bahnübergang mit eigenen Variablen und Ereignissen als ANLAGE gespeichert.
Nun importiert man den 4x in eine bestehende Anlage.

Die Züge sollen nach Durchfahrt die Schranken wieder öffnen. Dazu wurden die 6 Gleiskontakte mit dem Schlagvort ZUG_AUSFAHRT gekennzeichnet.
Was passiert?

Gruß
Thomas
 

Geschrieben
vor 3 Minuten schrieb HaNNoveraNer:

Und sagt noch, daß die EV dafür garnicht ausgelegt ist :-)

Die Mehrfachauswahl ist nur bedingt mit deiner Liste vergleichbar, da sie statisch ist. Die Mehrfachauswahl sorgt einfach nur für eine interne Duplizierung des Ereignisses für jeded Objekt.

Ich würde weiterhin Schlagwörter empfehlen, weil du dich damit nicht an Objekte bindest. Wenn Objekte mit gleichen Schlagwörten in unterschiedlichen Modulen unterschiedlich behandelt werden sollen, empfehlen sich weitere Schlagwörter. Kommt ein neues Objekt hinzu oder wird entfernt, bedeutet die Mehrfachauswahl auch mehr Aufwand.

Viele Grüße, 

Neo

Geschrieben
vor 11 Minuten schrieb HaNNoveraNer:

Die Züge sollen nach Durchfahrt die Schranken wieder öffnen. Dazu wurden die 6 Gleiskontakte mit dem Schlagvort ZUG_AUSFAHRT gekennzeichnet.

Das ist kein Problem, solange deine Ereignisse generisch arbeiten. Sicherlich verwaltest du in Modulvariablen den Zustand des Bahnübergangs. Deine Ereignisse dürfen nun nicht direkt diese Variablen adressieren, sondern müssen hier mit "relativen" Referenzen arbeiten. Wenn du z.B. in den Gleiskontakten eine Referenz auf das dazugehörige Ereignismodul speicherst, kannst du in deinen Ereignissen auf die Variablen in dem Modul zugreifen, das in den Gleiskontakten hinterlegt ist.

Alternativ kannst du Variablen natürlich auch direkt im Bahnübergang speichern. Dann benötigen die Gleiskontakte nur eine Referenz auf den Bahnübergang. Das ist womöglich besser zu verstehen, das Prinzip ist aber immer das gleiche.

Viele Grüße,

Neo

Geschrieben (bearbeitet)
vor 46 Minuten schrieb Neo:

Deine Ereignisse dürfen nun nicht direkt diese Variablen adressieren, sondern müssen hier mit "relativen" Referenzen arbeiten. Wenn du z.B. in den Gleiskontakten eine Referenz auf das dazugehörige Ereignismodul speicherst, kannst du in deinen Ereignissen auf die Variablen in dem Modul zugreifen, das in den Gleiskontakten hinterlegt ist.

Ja, das stimmt. Das würde auch funktionieren und ist flexibler.
Man muß hier immer um die Ecke denken, da das Studio die Objekte ja über einen Index verwaltet und die Namen automatisch anpaßt.

Bearbeitet von HaNNoveraNer

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