Jump to content

Containerhafen ( Kransteuerung- eine EV-Lösung )


FriLu

Empfohlene Beiträge

Hallo Aloys,

Leerzeichen in Variablennamen sind ja nicht erlaubt, damit es besser lesbar ist, verwende ich statt Leerzeichen eben den Unterstrich (_). "kran_schiff" ist der Name des Kranes, der gemeint ist- "kran_schiff.schritt" ist die Variable die die Aktionen auslöst.

 

Gruß ~ Lutz

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Wochen später...

Hallo,

So, nach ...zig Stunden Gehirnwindungverdrehen 9_9 hab ich jetzt einen Kreislauf hinbekommen, !nur mit EV-Mitteln!

Bei der Zugverladung hab ich übelst getrickst: Jeder Wagen hat einen eintrag in der EV (zZ. 6 Wagen mit insgesamt 16 Stellplätzen), eine Laufvariable prüft, ob der Wagen auf dem Krangleis steht und schreibt die Stellplätze in temporäre Ziele (bzw. Quellen), (...ziel1, ziel2,...ziel16), wenn der Wagen nicht vorhanden ist, wird stattdessen nv (nicht vorhanden) eingetragen.
Wenn der Kran gestartet wird, werden in der EV die 16 einträge (quelle bzw ziel) auf vorhandensein bzw. Voll / leer überprüft; -damit nur ein eintrag relevant ist, wird eine weitere Variable benötigt, die nur einen eintrag zulässt- wenn die Bedingungen erfüllt sind, wird dann das temporäre Ziel (oder Quelle) in die Kransteuerung übernommen.

Beim Testen ist mir folgendes aufgefallen: Ich arbeite ja mit "Laufvariablen", die als Objektvariable dem jeweiligen Kran zugeordnet sind; wenn der Kran unterwegs ist und man dann das Fenster für die Objektvariablen öffnet und wieder schliesst, werden ja die Variablen wie im Fenster gezeigt neu eingelesen- hat sich nun im Hintergrund die Variable geändert, kommt es zum Crash >:(.
Desweiteren: da ich mit schrittvariablen arbeite, die die Aktionen anspringen (Aktion Variable wird gesetzt) und diese wenn zb. die bedingung nicht erfüllt ist schritte zurückgehen, kommt es zu endlosschleifen, wenn die bedingung nicht erfüllt werden kann ( die Erkenntniss kam aber zu spät, um noch mal neu anzufangen ).
Der "Würgaround", eine art Timeout einzubauen, funktioniert auch nicht so richtig o.O.

Ich stelle die Anlage trotzdem mal rein, im Prinzip läufts ja, aber wenn ein Deadlock auftritt, hat man Mühe, die Variablen wieder so "hinzubiegen", das es weitergeht- vlt. kann aber der eine der andere ein paar Ideen aus der EV verwenden-

Gruß ~ Lutz

 

P.S. der rechte Kran hat noch einen Bug, er sortiert gerne mal die Container auf dem Abstellplatz um, was die Stellplatz-Zähler durcheinander bringt :( .

 

Bewegte_ Container1.mbp

Bearbeitet von FriLu
P.S.
Link zu diesem Kommentar
Auf anderen Seiten teilen

hallo Lutz, und alle container- schupser,

@Lutz
man kann deine ev-schreibereien nur bewundern (y). einfach klasse welche mühe und arbeit du dir machst!
das würde zumindest ich nicht mehr hinbekommen.

ich für meinen teil habe mich mal an das zuschreibende plugin/tool herangemacht.
allerdings habe ich mich zunächst nur mit dem umbenennen bzw ändern der objektnamen für container, stellflächen ... oder was auch immer, zb auch zum entfernen von leerzeichen aus den namen, beschäftigt. meiner meinung nach ist es eine einheitliche namensgebung wichtig.

transport-tool.jpg

nun folgt (immer nur nach lust und laune B|) das einlesen der kran- und schiffstellflächen sowie das erkennen von containerwagon- und lkwstellflächen. dabei werde ich mich weitgehend an die überlegungen (auf der ersten seite dieses beitrages) halten.

vg quackster

 

Bearbeitet von quackster
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo quackster,

gute Idee mit dem Tool, bitte bau auch eine Möglichkeit, die Objekte mit  Variablen zu versehen ein. Meine kenntnisse von VB beschränken sich eigentlich auf reine Logik, Schnittstellen ( also ein-ausgaben-Fenster ) hab ich immer nur "abgekupfert". ;) .

Deine Überlegungen hab ich zwar verfolgt, aber auch keine Idee, wie man das über die Schnittstelle realisieren könnte...
Bin mal gespannt, was NEO so in der Hinterhand (EV-erweiterung) hat...

Gruß ~ Lutz

Link zu diesem Kommentar
Auf anderen Seiten teilen

hallo Lutz, alle

Am 3.9.2016 um 13:21 schrieb FriLu:

bitte bau auch eine Möglichkeit, die Objekte mit  Variablen zu versehen ein

eingentlich sind keine variablen eingeplant, die verladung soll automatisch über das tool und textlisten laufen.
da im script ja schön mit alphanumerischen texten gearbeitet werden kann, stehen schon einige infos im namen von stellflächen oder containern
zb

'------------------ aufbau der namen von stellflächen
    ' SF(m/s)(1/2/4)x#nr = StellFläche (m=mobil/s=stationär) (10'/20'/40') x=stapelhöhe #eindeutige nummer

    '------------------ aufbau von strings für zb die stellflächen   SFm21#123 bzw SFs44#123
    ' SFm21#123|0|containername   
    ' SFm21#123|1|
    '
    ' SFs44#123|2|containername
    ' SFs44#123|4|
    '--------------- |0| = stellplatz ist voll    |1| = noch 1 stellplatz vorhanden oder   |4| = noch 4 stellplätze vorhanden

auch brauche ich pro stellplatz immer nur den obersten container zu kennen, er ist entweder selbst ein stellplatz oder aber wenn er abgeholt wird mit den darunterliegenden container/stellplatz verknüpft so das ich auch den nächsten namen kenne in der liste ändern und speichern kann.

vg quackster

 

 

Bearbeitet von quackster
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo quackster,

Wenn ich das richtig sehe, soll deine Steuerung ja über "Beschriftung setzen" laufen- Mmm, an diese Möglichkeit hatte ich nicht gedacht...

ich hatte vor ca. einem Jahr auch mal eine Containerverladung (mit hilfe von VB gesteuert) angefangen, den Kran noch mit Dummyloks gesteuert. Im Script mehrdimensionale Arrays angelegt (ist ja so ähnlich wie deine Idee); allerdings wollte ich so wenig wie möglich im Script erledigen und hab dann eine "Variablenschnittstelle" zur Komminikation angelegt.
Da das Erkennen von mobilen Stellflächen (Zug!) die sich im Kranbereich befinden (am besten) im Script erfolgt, stellt sich die Frage wie die EV darauf reagieren soll, da ja keine möglichkeit besteht, Text "zusammenzubauen".
Eigentlich bleibt da nur, den Text im Script zu erzeugen und an den Kran zu senden- der EV bleibt dann nur, ein ja oder nein dazuzugeben...
 

Nichtsdestotrotz bin ich auf deine Lösung gespannt- also machmal :)(y)

 

Gruß ~ Lutz

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 11 Monate später...

Hallo FriLu,

ich bewundere deine EV schon ne Weile und versuche z.Z. das für meine Anlage zu nutzen.

jetzt mal ne blöde Frage o.O :

du stapelst ja die Container und wenn ich deine EV richtig verstanden habe, nutzt du in der Zielvariable trotzdem jedes Mal die Nummer/Bezeichnung der gleichen Stellfläche.

Bei mir schiebt der Kran die Container zusammen :o. Er versucht ja auf der angegebenen Stellfläche abzusetzen, also eigentlich richtig :/

Woher weiß Dein Kran das er "höher" absetzen muss?

 

Gruß Torsten

PS: hat sich erledigt, ich habs gefunden :D

Bearbeitet von tdrewelow
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Torsten,

Ich musste erstmal nachschauen, ist ja schon eine Weile her...
jetzt hast Du es ja gefunden, aber für die Anderen:

Kranziel steht in der Objektvariable des Stellplatzes; ist der Stellplatz leer, steht da der Name des Stellplatzes, ist er besetzt, der Name des obersten Containers.

Gruß ~ Lutz

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Wochen später...

Hallo FriLu

Die Krananlage sieht sehr vielversprechend aus. Das hast du gut hingekriegt. Gefält mir. Ist ja mal was ganz anderes, obwohl die Bahn ja eigentlich mit ihrer Infrastruktur damit eingebunden ist. "Übrigens, die Hamburger Hafenbehörde wäre sehr froh wenn sie einen so schnell arbeitenden Kran hätten wie du ihn gebaut hast."

Bearbeitet von Morsdorf
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...