Jump to content

Verschachtelte variablen in V5


Empfohlene Beiträge

Hi Frank

Keine eile,abba intressiert mich...."textfeld leer lassen" riecht mir momentan noch sehr nach genau den gleichen fehler provozieren. Wobei es ja eigendlich kein fehler ist da Lua ja lediglich exact seinen konventionen folgt und sagt wo nix is is nil.

Bis spaeter

Cheers

Tom

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Tom,

wie versprochen hier ein Beispiel für dich. Verzeih mir bitte, aber ich habe die Steuerung komplett neu erstellt, mit deinem Ansatz wäre es zu umständlich geworden. Ich habe die Steuerung so erstellt, dass sie sowohl für Gespanne mit Wechsellok, als auch für jeden anderen Zug funktioniert. So wie diese Steuerung nun ist muss gar kein Objekt mehr die Variable „Umspannlok“ besitzen, damit sie keine Fehler auslöst. Wichtig ist nur, wenn du Gespanne trennst muss die Variable „Umspannlok“ in beiden Fahrzeugen gelöscht werden. Dies kann man auch über die EV bewerkstelligen. Ich habe dir gleich zur Demonstration einen zweiten Zug mit auf die Anlage gestellt, dieser besitzt keinerlei Variablen. Ich hoffe du kannst die Steuerung durchschauen, der wichtigste Aspekt ist die erste Bedingung.

image.thumb.jpeg.fe2560e6a2dfe695109a44d5d2fdb2c7.jpeg

Gruß Frank

V5 wechselbespannung u einzelbespannung einspurige pendelstrecke mit wendeschleife by fzonk.mbp

Bearbeitet von fzonk
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi Frank

Da ist ja mal so was von genial und schlank. Gleichzeitig demonstriert dein "weg" das viele, oder zumindest mehrere wege, nach Rom fuehren, deiner halt wesendlich effizienter als meiner.

Die funktion >ist ungleich< hatte ich noch nicht auf dem radar. Die bedingung lautet: Hat das ausloesende fahrzeug eine OV "Umspannlok" deren wert  "ungleich"  "(leer)" ist,  = true  >Da die wechselbespannung ja gegenseitige OV-verweise hat loest dies also die korrekte ausfahrt des wechselgespannes aus. Fuer = false >gillt entsprechend das die pruefung der bedingung (wegen abwesenheit von OV eintrag in der ueberprueften lok) als "gleich" erkannt wid und somit eine einzellok retour schickt. Das entspricht in etwa der negation von ist gleich (in V4), die in dieser form in V5 wohl wieda nicht durch kaeme. Ich werde es mal testen.

Was mich abba am meisten verbluefft ist das du in einem ereigniss nun nicht nur variablen bestuecken kannst (.lok & .speed) sondern, am ende, auch zur ausfuehrung abrufen kannst. Ich haette da in alter gewohnheit noch ein ereigniss "variable wird gesetzt" verwendet um die ausfahrt einzuleiten.

Vielen dank fuer diesen (maechtigen) fingerzeig

Cheers

Tom

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Tom,

es freut mich dass die Steuerung so viel Begeisterung findet :D. Ja V5 hat viele Neuerungen und wenn man schon sehr intensiv mit V4 und/oder auch deren Vorgänger gearbeitet hat ist die Umstellung auf die neuen Möglichkeiten, dank alter Gewohnheiten, gar nicht so einfach und man muss sich erst einmal an sie „gewöhnen“ ;). Aber die Neuerungen bringen eben auch viele smarte Möglichkeiten und da ist der Weg das Ziel und davon gibt es jetzt noch mehr die nach Rom führen B|. Daher habe ich dir gleich noch einmal die Anlage mit angehangen, die Funktion der Steuerung an sich hat sich nicht geändert, es besteht „nur“ der Unterschied dass nun die beiden Befehle konsequent Allgemeingültig sind. Dies soll heißen: ich habe in den Gleiskontakten Schlagwörter hinterlegt und die Steuerung so angepasst dass sie nun auf die Schlagwörter „anspringt“. Du könntest nun auf ganz vielen Gleisen die Gleiskontakte mit den entsprechenden Schlagwörtern verteilen und du müsstest in der EV nichts zusätzlich hinzufügen, außer ab einen gewissen Punkt ein paar Sicherungen dass die Züge nur bei freier Strecke wieder starten dürfen (aber dies ist schon wieder ein ganz anderes Thema ;)).

Gruß Frank

P.S.: ich musste den Anhang noch mal austauschen, da habe ich doch glatt eine Variable vergessen auf allgemein zu ändern :/

 

V5 wechselbespannung u einzelbespannung einspurige pendelstrecke mit wendeschleife allgemein by fzonk.mbp

Bearbeitet von fzonk
Anhang ausgetauscht
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi Frank

Auch genial. Bisher waren schlagwoerter fuer mich etwas voellig anderes (eher handwerklich gepraegt) als hier nun von dir demonstriert.:) Das eroeffnet galaxien von verschlankungen der EV. Also wenn ich ein oder mehr ereignisse mit einem gleiskontakt definiert habe kann ich diese(s) mit hilfe eines schlagwortes clonen, in dem ich dem ursprungs gleiskontakt ein schlagwort zuteile und dann allen anderen gleiskontakten, welche exakt das gleiche ausfuehren sollen, einfach auch das schlagwort des ursprungs gleiskontakts zuteile.....easy peasy und genial(y)

Naja, ich denke ein grossteil hier ist nicht durch den beruf EDV gepraegt und so ist das (erfahrung mit vorgaengerversionen) eben fuer die meisten, inclusive meinereiner, das einzige an ruestzeug was helfen kann die neue EV in V5 zunaechst zu verstehen (wegen der neuen masken) und dann zu erforschen was alles nun unter und mit Lua so geht. Wobei Goetz's Lua kurs im kombination mit den alten erfahrungen auch eine gute hilfestellung gibt

Herzlichen dank fuer die einfuehrung in schlagwoerter

Cheers

Tom

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 12 Minuten schrieb metallix:

Wobei Goetz's Lua kurs im kombination mit den alten erfahrungen auch eine gute hilfestellung gibt

Da wird es auch noch mehr von mir geben.

Ich habe eine Pause eingelegt, weil ich mich jetzt selber schlau machen möchte, wie genau das Zusammenspiel von Lua und dem MBS funktioniert. Außerdem bin ich die nächste Zeit privat eingespannt und werde wenig Zeit fürs MBS haben. Aber danach will ich wieder loslegen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 15 Minuten schrieb Goetz:

Da wird es auch noch mehr von mir geben.

Ich habe eine Pause eingelegt, weil ich mich jetzt selber schlau machen möchte, wie genau das Zusammenspiel von Lua und dem MBS funktioniert. Außerdem bin ich die nächste Zeit privat eingespannt und werde wenig Zeit fürs MBS haben. Aber danach will ich wieder loslegen.

Hi Goetz

Ich denke das wir alle gerade durchaus "vollbeschaeftigt" sind mit dem vertraut machen und lernen von V5. Deine pause sollte also von allen gut genutzt werden koennen um selbst durch probieren, fehler machen, ursachen finden , erfahrungen hier austauschen usw...........(weiter) zu lernen.9_9

Cheers

Tom

Link zu diesem Kommentar
Auf anderen Seiten teilen

Um das Lua des MBS in Verbindung mit den Objekten genauer kennenzulernen, sollte man sich öfters mal ein Ereignis kopieren und dann mal auf Lua umschalten (denn zurück geht's ja nimmer, aber die Kopie kann man dann löschen!). Da lernt man unheimlich was!

Gruß
  Andy

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi all

Ich habe "unsere" anlage nochmal ein wenig aufgehuebscht und vollautomatisiert.

Etwas merkwuerdiges, das ich so noch nicht kannte, habe ich beim herumspielen entdeckt: Springt man als chauffeur ins cockpit und versucht direkt mit der linken maustaste gedrueckt die sicht zu aendern......wird das ganze fahrzeug bewegt!:/ Sind die mausbewegungen heftig genug findet sich das fahrzeug anschliessend irgendwo im universum wieder. Drueckt man zuerst die rechte taste geht alles normal, auch wenn man danach die linke taste drueckt.

Cheers

Tom

Bearbeitet von metallix
c
Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 3 Monate später...

Hallo,

ich habe das gleiche Problem wie Metallix mit dem auslesen von Zügen bzw Wagons auf einem Gleis. Es kommt immer der Fehler "attempt to index a nl value" und die Anlage stoppt.

Bei mir soll es so sein, dass ein Zug mit Wagons ankommt, an seinem Halt-Gleis anhält und dann einen Zähler startet, der abcheckt, welcher Wagon auf dem "auslese-Gleis" steht.

Früher ging das mit dem Laufzähler. Aber das will EV5 nicht mehr. Ist ja nicht so tragisch, wenn ich dafür eine andere Möglichkeit finde. Habe schon rumprobiert und auch Metallix seine "Zug steht auf einem Gleis" Version ausprobiert. Aber irgendwie geht es nicht.

Ich habe hier mal ein Bild meiner EV

2129997363_Wagenzhler.JPG.8883f4166d0d236bc8b955d3116ee502.JPG

Habe auch mal eine Beispielanlage gemacht. Könnt Ihr Euch ja mal anschauen.

Schon mal vielen Dank für Eure Mühen.

Gruß

Christian

Wagenzähler.mbp

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Christian,
in Halt.Wagen 1 ist vom Typ Objekt und darin steht nix, deswegen geht der Wagenzähler an etwas, das nicht existiert. Klar, dass er meckert.
In V5 kannst Du Äpfel nicht mehr mit Birnen vermischen. Wenn Du also einen Wagen mit dem Objektnamen 200 hast, dann kannst Du da nicht mehr einfach 1 draufaddieren.
200 ist keine Zahl mehr und auch kein Text mehr, sondern ein Objektname. Da mußt Du Dich vermutlich erstmal drauf einstellen.

Gruß
  Andy

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi Christian

Die variable wagenzaehler wird beim ausgeloesten stop der lok gesetzt und soll dir anschliessend eine liste der angehaengten wagen liefern, richtig? Abgesehen davon das die "haltegleise" fuer die wagen nicht jeweils exact nur unter einem wagen liegen und somit vermutlich falsche ergebnisse liefern wuerden, sehe ich nicht wie mit einer variablen als ausloeser fuer die aktion (der liste der angehaengten wagen schreiben), das gewuenschte resultat erreicht werden kann.

chris.thumb.JPG.ff2df8108d54120aa3ef459110f5b7da.JPG

Warum gibst du der lok nicht gleich die liste der zugformation in einer objektvariablen mit? Diese koennte direkt beim ausloesen des zughaltes wohin auch immer, von der ausloesenden lok abgerufen und, uebergeben werden. So blieb die EV schlank und du koenntest dir auch das gedoens mit haltegleisen sparen....abgesehen davon das man keine stehenden antriebslosen fahrzeuge identifizieren kann. Mit den haltegleisen koenntest du hoechstens die zuglaenge, etwas umstaendlich und ungenau, abfragen. Das geht mittlerweile in V5 abba einfacher und genau mittels gleiskontakt.

Cheers

Tom

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Tom,

danke für Deine Antwort. Das man antrieblose Fahrzeuge nicht identifizieren kann, stimmt so nicht ganz. In den alten Version gab es mal eine Anlage, wo mit einer Laufzahl die Wagen identifiert wuirden. Das habe ich auch in einer alten Anlage eingebaut. Das hat auch gefunzt. Dadurch konnte ich sogar die Ladungen auf den Wagen identifierzieren. An einem Ladegleis mit Prellbock kann meine Variante funktionieren. Aber so wie ich es vorhabe, auf einem Durchgangsgleis im Gbf die Wagen auszulesen, dass wird wohl so nicht richtig funktionieren, vorallem, wenn man verschieden lange Wagen hat. Da ist Dein Vorschlag wohl am besten.

Die Auslese-Gleise sind natürlich hier sehr lang. War nur sehr schnell erstellt wurden.

Die Sache mit den Gleiskontakten habe ich noch nicht ganz verstanden. Da muss ich mich erstmal einfuchsen.

Nochmal auf Deine Variante zurückzukommen. Die funzt bei mir nicht. Warum auch immer. Du hast aber geschrieben, dass sie bei Dir geht.

A6.JPG.8bf63ade68bbe2f292db9590d80b538f.JPG

Warum geht die bei Dir und nicht bei mir?

Danke für Deine Unterstützung.

Gruß

Christian

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi Christian

Den alten EV eintrag von mir kannst du fuer dein vorhaben so nicht vergleichen geschweige nutzen. Das ist eine  steuerung die wahlweise einen zug mit vorne und hinten bespannung von der neuen vorderen lok wieder aus dem kopfbhf ausfahren laest oder einen einfachen zug wieder mit entgegengesetzter geschwindigkeit aus dem kopfbhf fahren laest. Dabei wird einfach nach einer objektvariablen in der ausloesenden lok gefragt. Ist die variable vorhanden steht darin das fahrzeug am anderen zugende. Gibt es keine objektvariable in der ausloesenden lok wird ihre einfahrt geschwindigkeit umgekehrt damit sie wieder ausfahren kann.

Fuer deine aufgabe kannst du das prinzip, wie oben schon angedeutet, in sofern uebernehmen als das du in der lok deines zuges eine liste anlegst in der saemtliche angehaengten wagen eingetragen sind. bei der einfahrt auf das haltegleis kann diese liste abgefragt und entsprechend weitergeleitet werden.

Cheers

Tom

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 21 Stunden schrieb Andy:

Hallo Christian,
in Halt.Wagen 1 ist vom Typ Objekt und darin steht nix, deswegen geht der Wagenzähler an etwas, das nicht existiert. Klar, dass er meckert.
In V5 kannst Du Äpfel nicht mehr mit Birnen vermischen. Wenn Du also einen Wagen mit dem Objektnamen 200 hast, dann kannst Du da nicht mehr einfach 1 draufaddieren.
200 ist keine Zahl mehr und auch kein Text mehr, sondern ein Objektname. Da mußt Du Dich vermutlich erstmal drauf einstellen.

Gruß
  Andy

Hallo Andy, ich hatte Deinen Eintrag glatt übersehen, Sorry.

Ich habe es jetzt so gestaltet, wie es Tom vorgeschlagen hat. Das klappt auch ganz gut.

Nur habe ich jetzt ein Problem. Ich habe die Wagen in die Lok eingetragen. Alles gut. Beim betreten des Gleises soll er die Wagen auslesen und sie in das Halt-Gleis eintragen.

Jetzt passiert es wieder, dass er mir eine Variable nichit einträgt, da ich diese Variable gerne als Objekt eintragen möchte. Aber das macht er nicht und schmeißt im Halt-Gleis, wo es eingetragen werden sollte, immer den Wagen 1 raus.

Hier soll er Wagen 1 als Objekt-Variable setzen. Das klappt aber nicht:

     Objekt-Variable wird gesetzt -> Test 1 Halt, "Wagen 1", Null

3d-1.JPG.9120d7536a38c08eafd13edf348b62d5.JPG

Bei Wagen 2 als normale Text oder Zahl-Variable ist es kein Problem. Da klappt es

3d-2.JPG.7cca2235ca8e72a86c27782e6c3372ce.JPG

Der hintergrund ist, dass ich den Zug am Wagen 7 teilen will (Kupplungen deaktivieren). Und dafür brauche ich die Variable als Objekt.

Ab das will er nicht. Könnt Ihr mir helfen? Vielen Dank im voraus

Gruß

Christian

Test Wagen auslesen.mbp

Bearbeitet von Gordy
Anhang dazu
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hmmm, wenn ich in der Lok das Objekt auswähle, dann geht es. Ich kann aber nicht händisch was eintragen.

Das bedeutet, dass die Objekte richtig mit der Lok verknüpft sein müssen.

Ergo kann man nicht Objekte in Text oder anderes herum umwandeln. Sehe ich das richtig?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Christian,
du hast nicht alles konsequent in den Typ Gleis umgewandelt.
1. in Deiner Lok sollten dann schon von 201 - 204 alle Objekte sein.
2. bei [Fahrzeug].zu Gleis auch wieder Name statt Objekt. Es darf nicht = Objekt(Name) heißen, sondern direkt = Objekt.
3. die Zuweisung von Wagen2,,3,,4 im Ereignis ist korrekt, aber der von Wagen 1 nicht. Da sind wieder " im Spiel. Mach' den so wie die anderen.
 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich glaube die Zuweisung von [Leer] ist auch möglich.
Bin mal gespannt, wie der ganze Programmteil am Ende aussieht. Ich habe da zugegebenermaßen nicht darauf geachtet, was Du da eigentlich vor hast - mal abgesehen davon, dass abgekoppelt werden soll.
Da ein Zug nicht unbedingt immer die gleiche Anzahl (und Länge) von Wagen hat, solltest Du da vielleicht die neuen OV-Tabellenfunktionen ins Auge fassen.
Ich würde solch eine Liste/Tabelle für die Wagen separat führen und einen Verweis darauf in der Lok unterbringen.
Aber ich will Dich da jetzt nicht durcheinander bringen, denn es wird dann noch verschachtelter. Versuche erstmal Deine Idee umzusetzen.

Gruß
  Andy

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