Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  TM - Plant Simulation
  Teil wegtragen aus Lager

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Teil wegtragen aus Lager (2146 mal gelesen)
Simon91
Mitglied


Sehen Sie sich das Profil von Simon91 an!   Senden Sie eine Private Message an Simon91  Schreiben Sie einen Gästebucheintrag für Simon91

Beiträge: 4
Registriert: 24.08.2018

erstellt am: 24. Aug. 2018 13:24    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo zusammen,

ich bin ein blutiger Anfänger was Plant Simulation angeht und kämpfe gerade mit folgender Problemstellung zu der ich in den Foren nirgendwo etwas gefunden habe:

Ein Werker soll ein BE aus einem Lager holen und auf eine Einzelstation umlagern.
Das habe ich bisher über den Ausgang beim Lager versucht. Doch dabei tut sich nichts. Wenn ich statt des Lagers einen Puffer verwende führt der Werker die gewünschte Aktion aus.

Kann mir da bitte jemand weiterhelfen?
Vielen Dank!

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

nadin1223
Mitglied
Ing.


Sehen Sie sich das Profil von nadin1223 an!   Senden Sie eine Private Message an nadin1223  Schreiben Sie einen Gästebucheintrag für nadin1223

Beiträge: 938
Registriert: 29.03.2016

erstellt am: 25. Aug. 2018 20:59    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Simon91 10 Unities + Antwort hilfreich


LagerWerkerTransport.spp.txt

 
Hallo Simon,

Lager lagern nicht automatisch um...

Etwas muss das Event für das Auslagern auslösen. Im Beispiel übernimmt es ein Generator.

vG
Nadin

------------------
Die einfachste Art an korrekte Informationen zu gelangen ist, etwas Falsches in ein Forum zu posten und auf die Korrektur zu warten. (Matthew Austern)

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

lodonnel
Mitglied


Sehen Sie sich das Profil von lodonnel an!   Senden Sie eine Private Message an lodonnel  Schreiben Sie einen Gästebucheintrag für lodonnel

Beiträge: 3
Registriert: 06.02.2019

erstellt am: 06. Feb. 2019 21:38    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Simon91 10 Unities + Antwort hilfreich

Hallo nadin1223,

ich habe mich in den letzten Tagen fleißig durch eure Threads und deine oftmaligen Hilfestellungen gelesen - klasse, wie ihr hier unterstützt!

Ich habe auch ein Problem (und vermutlich noch ein paar mehr), schließe mich einfach mal hier in dem Thread an, da es thematisch passt.

Ich habe ein Modell gebaut, bei dem ich ein Lager befüllen lasse. Das klappt auch soweit gut. Jetzt ist das Regal gefüllt und ich möchte es entladen lassen, mittels:

a) Pick&Place auf Fließband oder
b) Puffer auf Fließband oder
c) direkt auf Fließband

Mein Problem ist nun: Ich bekomme den Auslagervorgang aus dem Lager nicht in Gang. Ich habe mir die Lösung aus diesem Thread angeschaut, und bekomme die Steuerung über einen Generator hin. Allerdings ist der Generator ein wenig unsauber für meine Zwecke, da ich nur einen "einmaligen Trigger" für die Auslagerungen brauche, und keinen "alle x Sekunden wiederkehrenden Prozess". Den Code der üblichen Methoden verstehe ich, aber wie bekomme ich das Pick&Place beispielsweise dazu, anzufangen, sobald mein Lager voll ist?

if lager1.full then
    lager1.pe(1,1).inhalt.umlagern(PickAndPlace); //Eventuell auch ohne "Inhalt"
end;

- das müsste doch so funktionieren oder? Tut es aber einfach nicht, egal ob in Eingang/Ausgang Heck/Bug des nachgelagerten Pick&Place packe... Es passiert nichts.


Das Pick&Place hätte eigentlich nur anschaulichen Charakter, bringt faktisch keinen Mehrwert. Ich möchte halt nur "realistisch" simulieren, weshalb das ganz gut aussehen würde. Allerdings werde ich später auch wieder Einlagerungen vornehmen - kann EIN pick&place in ein Regal ein- und auslagern? oder müsste ich da mit zwei pick&place arbeiten?

Vielen Dank für deine Rückmeldung hierzu!
VG

[Diese Nachricht wurde von lodonnel am 06. Feb. 2019 editiert.]

[Diese Nachricht wurde von lodonnel am 07. Feb. 2019 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

nadin1223
Mitglied
Ing.


Sehen Sie sich das Profil von nadin1223 an!   Senden Sie eine Private Message an nadin1223  Schreiben Sie einen Gästebucheintrag für nadin1223

Beiträge: 938
Registriert: 29.03.2016

erstellt am: 07. Feb. 2019 11:33    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Simon91 10 Unities + Antwort hilfreich


BeispielPickAndPlaceStore.spp.txt

 
Hallo lodonnel,

Zitat:
kann EIN pick&place in ein Regal ein- und auslagern?

ja...kleines Beispiel anbei

Zitat:
- das müsste doch so funktionieren oder? Tut es aber einfach nicht, egal ob in Eingang/Ausgang Heck/Bug des nachgelagerten Pick&Place packe... Es passiert nichts.

am Besten zwei Punkte beachten.
(1) was soll passieren (das ist der Inhalt der methode)
(2) wann (und wo) soll passieren (das ist der Event für die methode)

dein Ansatz ist gut. Nur durch was soll die Eingang- oder Ausgangsteuerung aktiviert werden, wenn noch kein BE auf dem nachgelagerten Pick&Place ist....

vG
Nadin

------------------
Die einfachste Art an korrekte Informationen zu gelangen ist, etwas Falsches in ein Forum zu posten und auf die Korrektur zu warten. (Matthew Austern)

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

lodonnel
Mitglied


Sehen Sie sich das Profil von lodonnel an!   Senden Sie eine Private Message an lodonnel  Schreiben Sie einen Gästebucheintrag für lodonnel

Beiträge: 3
Registriert: 06.02.2019

erstellt am: 07. Feb. 2019 18:11    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Simon91 10 Unities + Antwort hilfreich

Hallo Nadin,

vielen Dank für deine Info und Beispiel. Wenn ich das richtig sehe, dann ist das Beispiel ja sogar für beide meiner Fragen relevant :-)

Deine rhetorische Frage war super, ich dachte eine Eingangssteuerung könnte eben genau das bewirken, dass in den Baustein etwas rein kommt...

2 Fragen habe ich zu deinem Code:

1)
Wieso benutzt du 2 init-Methoden in dem Beispiel?
"Für mich" würde die "M_InitStore" genügen. Sie wird halt direkt aufgerufen und steht somit in Warteposition, bis das Lager voll ist. Wieso also muss man eine weitere "init" erstellen, die diese doch nur aufruft? (Ich habe init Methoden bisher auch nur benutzt um Fahrzeuge oder Container zu platzieren, nicht für Methodenaufrufe...   )

2)
"&" vor den Methoden ist ja der sog. Reference-Operator - auf nicht programmiererdeutsch: Warum muss ich den verwenden?
Und wieso kann ich meinen Store nicht direkt aufrufen, sondern muss es über "current." machen? Ich habe doch nur einen, den ich mit Namen doch innerhalb meines Netzwerkes aufrufen kann, nicht?

Ach und Nachtrag, Nr. 3)

Das Argument (0) bei Methcall heißt doch lediglich, dass die Methode direkt, also nach 0 Sekunden aufgerufen wird, oder?

Vielen lieben Dank Dir!


[Diese Nachricht wurde von lodonnel am 07. Feb. 2019 editiert.]

[Diese Nachricht wurde von lodonnel am 07. Feb. 2019 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

nadin1223
Mitglied
Ing.


Sehen Sie sich das Profil von nadin1223 an!   Senden Sie eine Private Message an nadin1223  Schreiben Sie einen Gästebucheintrag für nadin1223

Beiträge: 938
Registriert: 29.03.2016

erstellt am: 08. Feb. 2019 00:48    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Simon91 10 Unities + Antwort hilfreich

Zu (1)
"Init", "Reset" wie auch "EndSim" sind vordefinierte Namen. In diesem Example wird "M_InitStore" nochmals aus einer anderen Methode aufgerufen. Ist der Inhalt aus "M_InitStore" in "Init", dann würde Init während der Simulation nochmal ausgeführt werden. Wie du schon schreibst, nimmt "Init"-Methode auch weitere Einstellungen vor. Deshalb ausgelagert.
Meist sind Methoden "M_InitStore" und "M_storeOut" eine Methode. Diese würde sich dann selbst zum Ende aufrufen. Aber alles eine Sache von Vorlieben, Programmiererfahrung und Übersicht.


Zu (2)
&(Methode) bzw. &(Variable) ist der Verweisoperator. Mithilfe von &(...) wird die Ausführung der Methode selbst nicht unterbrochen. Workflow mit &: Methode1 ist fertig --> dann erst die Methode2 (nach 0 Sekunden aufgerufen) ausführen.
Workflow ohne: Methode1 unterbrechen --> Methode2 ausführen --> rest von Methode1

Zu "current."
es zeigt mir, dass es keine interne Variable ist...(schön farbig)


     

------------------
Die einfachste Art an korrekte Informationen zu gelangen ist, etwas Falsches in ein Forum zu posten und auf die Korrektur zu warten. (Matthew Austern)

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

lodonnel
Mitglied


Sehen Sie sich das Profil von lodonnel an!   Senden Sie eine Private Message an lodonnel  Schreiben Sie einen Gästebucheintrag für lodonnel

Beiträge: 3
Registriert: 06.02.2019

erstellt am: 28. Feb. 2019 18:29    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Simon91 10 Unities + Antwort hilfreich

EDITEDIT: Hallo Nadin, also das hier geschilderte Problem ist tatsächlich nicht mehr sehr gravierend für mein Modell, ich habe einen funktionierenden Ausweg gefunden. Da ich nicht weiß, ob ich an anderer Stelle nochmal einen Rat benötigen könnte, ziehe ich die Frage mal zurück :-)
VG


Hallo Nadin,

deine Hilfe letztes Mal war super - danke! Ich mache auf jeden Fall Fortschritte und nähere mich meinem Ziel an.

Allerdings beschäftigt mich jetzt eine "Syntax-Sache", die doch nicht so schwer sein kann. Ich will die Auslagerungen aus einem Regal gezielt über eine Tabelle durchführen. In der Tabelle stehen die Objekte, z.B. ".MUs.Ersatzteil"

Jetzt habe ich die entsprechende Methode wie folgt geschrieben:

    if @.lager1[i,j] = Tabelle[1,1] then
      @.lager1[i,j].move (Station);
    else

i und j sind natürlich Variablen für meine Suche. Das Problem liegt an dem "@" - wenn ich damit arbeite, kommt immer der Fehler "Ein void kann keine Methode Lager1 empfangen".

Ich bekomme das alternativ über Attributsteuerung oder "if lager1[i,1].inhalt.name = ... " hin - aber nicht über das Ansprechen des MUs, was eigentlich doch das einfachste wäre?!

Ich mache bestimmt nen total dummen Fehler.. vielleicht kannst du mir ja helfen oder einen Hinweis geben...

EDIT: so kommt kein fehler, aber es wird auch nichts ausgelagert...

if lager1[i,j].BE = Tabelle[1,1] then
      lager1[i,1].inhalt.move (Station);
else


[Diese Nachricht wurde von lodonnel am 28. Feb. 2019 editiert.]

[Diese Nachricht wurde von lodonnel am 04. Mrz. 2019 editiert.]

[Diese Nachricht wurde von lodonnel am 04. Mrz. 2019 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

nadin1223
Mitglied
Ing.


Sehen Sie sich das Profil von nadin1223 an!   Senden Sie eine Private Message an nadin1223  Schreiben Sie einen Gästebucheintrag für nadin1223

Beiträge: 938
Registriert: 29.03.2016

erstellt am: 04. Mrz. 2019 12:26    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Simon91 10 Unities + Antwort hilfreich

hier ist ein schönes Beispiel von Herr Bangsow für die Auslagerung aus einem Lager.

vG
Nadin

------------------
Die einfachste Art an korrekte Informationen zu gelangen ist, etwas Falsches in ein Forum zu posten und auf die Korrektur zu warten. (Matthew Austern)

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz