Cancel
Showing results for 
Search instead for 
Did you mean: 

Strecke sperren/ wait until bis eine andere Förderstrecke < 4 BEs besitzt

Creator
Creator

Hallo Zusammen,

 

ich hänge leider derzeit an einer Bedingung in meiner Simulation fest und konnte keine Lösung mithilfe des Webs, der Hilfestellung oder Beispielen finden. 

 

Zum Aufbau:

Produkte sollen über mehrere Förderstrecke befördert, aufgeteilt und zusammengeführt werden (Power and Free). Zur Vereinfachung meiner Problematik ändere ich mein Modell mal etwas ab. 

Ich habe 3 Förderstrecken (F1,F2 und F3) und die BEs fahren in dieser Reihenfolge über diese Förderstrecken.

F1 -> F2 -> F3. 

Nun möchte ich, dass die BEs am Ende von F1 bzw. eher am Sensor stehen bleiben, wenn F3 genau 4 BEs besitzt, weil Maximum der Kapazität.

Dafür habe ich einen Sensor am Ende von F1 platziert und mit folgender Methode verknüpft:

 

if F3.AnzahlBEs < 4 then
@.umlagern(F2,0)
else
waituntil F3.AnzahlBEs < 4 prio 1
end

 

Das Stehenbleiben, sobald F3 4 BEs hat funktioniert, jedoch fahren die BEs nicht weiter, sobald F3 wieder Platz besitzt. Ich hatte bisher Stopuntil versucht, die Prio verändert und das BE welches sich am Ende der Strecke befindet gelöscht. Beim Löschen fuhr lediglich das nächste BE durch, der Rest staute sich am Ende von F1. Ein Verschieben des Sensors hat leider auch nichts gebracht.

Ich schätze mal, dass der Sensor bzw. die Methode nur 1x abgefragt wird? 

 

Vielen Dank 

 

 

 

 

 

10 REPLIES 10

Re: Strecke sperren/ wait until bis eine andere Förderstrecke < 4 BEs besitzt

Gears Esteemed Contributor Gears Esteemed Contributor
Gears Esteemed Contributor

der Sensor oder die Methode wird nur einmal abgefragt, deshalb müssen Sie auch im else-Zweig das Teil umlagern:

 

if F3.AnzahlBEs < 4 then
  @.umlagern(F2)
else
  waituntil F3.AnzahlBEs < 4 prio 1
  @.umlagern(F2)
end
Steffen Bangsow
freelance simulation specialist  
web: www.bangsow.eu
mail: steffen@bangsow.net

Re: Strecke sperren/ wait until bis eine andere Förderstrecke < 4 BEs besitzt

Creator
Creator

Vielen Dank.

Genau so habe ich mir das vorgestellt. Leider funktioniert dies nur mit dem ersten BE:

Strecke F3 besitzt 4 BEs

Das BE am Sensor wartet, bis F3 nur noch 3 BEs besitzt und fährt dann erst los --> Vielen Dank dafür.

Das nächste BE in F1 fährt an das Ende der Förderstrecke und bleibt stehen, obwohl F3 bis zu diesem Zeitpunkt noch 3 BEs besitzt + das eine, welches Unterwegs ist. Das ist auch gut soweit, so soll es auch sein. Aber ich gehe davon aus, dass es an dem folgenden Fehler liegt und nicht daran, dass das fahrende BE zu F3 mit berücksichtigt wird.

Jedenfalls wartet das nachgerückte BE am Sensor und fährt nicht mehr los, selbst wenn sich F3 komplett leert. 

 

Wäre hier auch ein Zähler als Alternative möglich?

Sobald ein BE die Strecke F1 verlässt +1

Sobald ein BE die Strecke F3 verlässt -1 ?

Damit müssten auch die fahrenden BEs zu F3 berücksichtigt werden? 

 

Vielen Dank

 

 

 

Re: Strecke sperren/ wait until bis eine andere Förderstrecke < 4 BEs besitzt

Gears Esteemed Contributor Gears Esteemed Contributor
Gears Esteemed Contributor

wo hängt jetzt ganz genau die Steuerung?

 

Können Sie Ihr Modell posten? Wenn nicht, dann machen Sie ein bitte ein kleines Beispielmodell.

Steffen Bangsow
freelance simulation specialist  
web: www.bangsow.eu
mail: steffen@bangsow.net

Re: Strecke sperren/ wait until bis eine andere Förderstrecke < 4 BEs besitzt

Creator
Creator

Da Sie nun das richtige Modell besitzen.

Z.B. soll P1 erst ein BE auslagern, wenn SP1 weniger als 4 besitzt. 

 

Re: Strecke sperren/ wait until bis eine andere Förderstrecke < 4 BEs besitzt

Gears Esteemed Contributor Gears Esteemed Contributor
Gears Esteemed Contributor

Sie haben Bug und Heck im Sensor aktiviert, damit wird die Methode jeweils zwei mal aufgerufen, das ist in Ihrem Fall falsch. 

Zwischen P1 und NPS exisiert keine Kante, somit müssen Sie in jedem Fall der Verzweigung das BE auf NPS umlagern.

 

Damit nicht zu viele Teile in Richtung Sp1 umgelagert werden, müssten Sie auch die Belegung von NPS beachten. Das ergibt folgendes Programm:

 

if (SP1.AnzahlBEs + NPS.AnzahlBEs) < 4 then
	@.umlagern(NPS)
else
	waituntil (SP1.AnzahlBEs + NPS.AnzahlBEs) < 4 prio 10
	@.umlagern(NPS)
end

 

 

Steffen Bangsow
freelance simulation specialist  
web: www.bangsow.eu
mail: steffen@bangsow.net

Re: Strecke sperren/ wait until bis eine andere Förderstrecke < 4 BEs besitzt

Creator
Creator

Stimmt. Hatte ich versucht, um das Problem zu lösen.

Die Kanten hatte ich entfernt, weil z.B. P3 bei NPS nicht bei 0, sondern bei Länge x einlagern soll. Daher auch die Verwendung der Sensoren.

Noch eine Info zu dem gesamten Ablauf:

P1, P2 und P3 sollen zu SP1 fahren

P4 zu SP2 und

P5 zu SP3 

 

Mit dem von Ihnen geschriebenen Programm (vielen Dank dafür), würde jedoch keine Auslagerung aus Strecke P3 z.B. passieren, wenn bei SP1 4 BEs stehen richtig? 

 

 

Re: Strecke sperren/ wait until bis eine andere Förderstrecke < 4 BEs besitzt

Gears Esteemed Contributor Gears Esteemed Contributor
Gears Esteemed Contributor
das ist nur das Programm für P1 (PVEFP1), das Programm PVEFP3 müssten Sie analog zu PVEFP1 ändern
Steffen Bangsow
freelance simulation specialist  
web: www.bangsow.eu
mail: steffen@bangsow.net

Re: Strecke sperren/ wait until bis eine andere Förderstrecke < 4 BEs besitzt

Creator
Creator

Logisch, mein Fehler.

Jedoch hatte ich immer noch das Problem, dass das nachrückende BE stehen geblieben ist, obwohl sich SP1 geleert hatte. Da ich erst gestern mit dem Programm angefangen habe und daher noch nicht so stark in SimTalk vertieft bin, konnte ich mir bisher jetzt nur so weiterhelfen, indem ich den If-Block mehrmals kopiert habe. Damit klappt es wunderbar.

 

Mich wundert es nur, dass die Simulation irgendwo im Programm hängen bleibt und 5x der If-Block hilft, obwohl das doch eigentlich die Aufgabe von waituntil ist? 

 

Jedenfalls klappt es nun, auch wenn es wahrscheinlich eine schönere Variante gibt.

Vielen Dank für Ihre Untersützung 

 

 

Re: Strecke sperren/ wait until bis eine andere Förderstrecke < 4 BEs besitzt

Gears Esteemed Contributor Gears Esteemed Contributor
Gears Esteemed Contributor

da ist bestimmt noch ein Fehler in Ihrem Programm

 

können Sie es noch einmal posten?

Steffen Bangsow
freelance simulation specialist  
web: www.bangsow.eu
mail: steffen@bangsow.net