Jump to content

Empfohlene Beiträge

Geschrieben (bearbeitet)

Hallo Crew,
ich habe in meiner Anlage merkwürdige Verhalten entdeckt, und habe sie mal isoliert und reduziert auf das angehängte Beispiel:
Es zeigt auf, wie man die EV so beschäftigen kann, dass MBS nicht mehr dazu kommt die Grafik aufzufrischen.
Im Beispiel wird eine Schrittkette ausgelöst, sobald die Lok das obere Gleis betritt, dort stoppt die Lok.
Nun kommt's drauf an, wo der Bus steht. Steht er im oberen Teil, ist alles gut. Die Schrittkette stoppt auch den Bus, ein Timer läuft ab, beide Fahrzeuge werden wieder in Bewegung gesetzt.
Steht der Bus aber im unteren Teil, wird's fatal. Die Schrittkette fährt nun eine Schleife auf die Positionsabfrage des Busses. Sowie er den oberen Teil betritt, ist, siehe eben, alles okay, wenn nicht, wird's wiederholt. Eigentllch sollte das die EV nicht großartig belasten, wenn sie einmalig ihre Ereignisse abklappert und dann zur Zustandslogik und der Graphik zurückkehrt.
Aber hier funktioniert irgendwas anders (wenn ich von meiner gewohnten SPS-Logik ausgehe). Die EV beschäftigt sich nur noch mit sich selbst - wobei der Bus im Hintergrund weiter seine Runde fährt, bis er wieder im oberen Teil ankommt. Dann holt die EV wieder Luft, gibt der Grafik ihre Chance und alles wiederholt sich. Ein Update der Beschriftung schafft er auch nur an ganz ruhigen Punkten.
Fazit: tja ... weiß nicht, offensichtlich hängt man besser noch einen Timer an Schrittkettenmerker.

Das mit dem Countdown auf Nullzeit setzen und als IMMER-Ereignis zu nutzen zählt eine Checkvariable sauber hoch, aber in der Countdown-Liste steht dieser dann mit Negativzeit.
Auch etwas obskur das - überlebt der das auf längere Sicht?
Ich bin mir jetzt wirklich nicht sicher, wie ich auf ein Ereignis mit unterschiedlichen Bedingungen reagieren soll, zumal jene Bedingungen durchaus komplexere bool'sche Ausdrücke sein könnten als sie derzeit gebildet werden können. Offensichtlich muß ich umdenken - wenn das mal noch geht... o.O

schrittkettenproblem.mbp

p.s.: übrigens habe ich MBS tatsächlich abgeschossen, als ich während des Ablaufs des Beispiels noch zwei Straßensplines zusammendocken wollte :$
Merke: 1 Andy ist die Abstandseinheit zwischen Bugs!
 

Grüße
  Andy

Bearbeitet von Andy
typos
Geschrieben (bearbeitet)

Hallo @Wüstenfuchs,

ein ganz dickes Dankeschön, dass Du Dich dem Problem angenommen hast.
Was ich nicht gewußt habe, ist die Sache mit den alternativen Aktionen. Beim ersten Durchsuchen habe ich mich sehr gewundert, wo der Text mit 'nicht gestopt' herkam, und hab's natürlich auch erst gefunden, als ich die EV exportiert und dann danach gesucht habe. Da habe ich gut gestaunt!

Ohne es jetzt getestet zu haben, denke ich, dass sich diese alternative Aktion nicht auf das Nichteintreten des Ereignisse bezieht, sondern nur auf die nicht erfüllte Bedingung.
Damit komme ich vermutlich weiter. Trotzdem muß man festhalten, dass meine Gestaltung prinzipiell wohl nicht falsch ist, MBS aber bitterbös zu schaffen macht.
Ich muß mich außerdem erst daran gewöhnen, Ereignisse, oder sogar ganze Gruppen zu de/aktivieren. Das kann sehr wohl sehr mächtig sein - wenn man damit jonglieren kann.

Eine Frage habe ich trotzdem noch. Ich habe es bislang nicht geschafft, einer Lok indirekt eine neue Geschwindigket zu geben.

Ich mache dabei 'Variable setzen' (var1)._CurrentSpeed und (var1)._TargetSpeed auf (var2).Wert. Das macht er wohl, aber ein Schreibvorgang scheint nicht vorgesehen zu sein, nur das Lesen. In (var1) steht dabei der richtige Lokname drin, in (var2) die richtige Zahl. ($-prefixe weiß ich jetzt nicht, müßte ich das Beispiel neu schreiben)

.Geht wohl nur mit 'Fahrzeuggeschwindigkeit setzen', wenn man dann eine vorher gesetzte Objektvariable einträgt, oder?

Vielen Dank nochmal
  Andy

Edit: Hallo @Neo, ich weiß zwar nicht, ob Du sowieso alles liest, aber diesen Thread solltest Du Dir wirklich mal ansehen.
Vielleicht kannst Du da noch ein paar wichtige Hintergrundinformationen geben. Danke im Voraus!

Bearbeitet von Andy
Geschrieben (bearbeitet)

Um die Verwirrung zu komplettieren:

werfe ich eine der beiden Textzuweisungen von step1b oder step2 raus, fährt der Bus fein durch. Die andere schreibt er wirklich.

Und um dem Ganzen die Krone aufzusetzen:

auch folgendes Konstrukt ist möglich: (step1a, danach können step1b und step2 rausgeworfen werden!)
Ereignis: var = 1,  Bedingung: Bus oben, Aktion: var = 3, etc., alternative Aktion: var = 1 (!)
Das frißt er ganz brav. Er nimmt also das erneute Setzen des gleichen Wertes sehr wohl als neues Ereignis an. Und er bleibt auch nicht in der EV hängen, weil immer noch ein neues Ereignis da ist. Das hätten wir damit verifiziert.
Ich darf nur keine Beschriftung in die alternative Aktion einbringen, dann hängt's wieder!!!

Bis dann
   Andy

Bearbeitet von Andy
Geschrieben

Hallo Andy,

vor 15 Stunden schrieb Andy:

Ich darf nur keine Beschriftung in die alternative Aktion einbringen, dann hängt's wieder!!!

oder Du gehst wie ich über einen Coundown und Lockbefehl dann funzt auch die Beschriftung.

HG

Wüstenfuchs

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