Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  TM - Plant Simulation
  Puffer überspringt BEs die dann liegen bleiben

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:  Puffer überspringt BEs die dann liegen bleiben (1388 / mal gelesen)
shishanis
Mitglied
Student

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

Beiträge: 5
Registriert: 25.10.2017

erstellt am: 24. Jan. 2018 21:23    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 hab mal wieder eine Frage.
Ich möchte mithilfe eines Durchlaufdiagramms die Zugänge und Abgänge an einem Arbeitssystem mit zehn  parallelen Einzelstationen messen. Der Puffer soll dabei zur AS zum Arbeitssystem gehören, um auch den Bestand mit messen zu können. Mein Problem ist, dass sobald die Bearbeitungszeiten meiner Maschinen länger dauert als die Zwischenankunftszeit, bleiben teile im Puffer liegen. Die sollte aber nicht der Fall sein. Der Puffer sollte sich weiter füllen, aber sobal eine Maschine frei ist soll dann das nächste Teil umgelagert werden.

Puffereingangssteuerung:

is
i:integer;
NextStation: object;
do

for i:=1 to AnzahlAS loop
NextStation:=str_to_obj( "AS" + to_str(i));
if NextStation.belegt=false then
@.umlagern(str_to_obj("AS"+i));
exitloop;
end;
next;
i:=0;
repeat i:=i+1
until i=@.id;
Datentabelle["ZAZ",i]:=Ereignisverwalter.abszeit;
end;

Ausgangssteuerung Einzelstationen:
is
i:integer;
do
i:=0;

repeat
i:=i+1;
until Datentabelle["ANR",i]=@.id or i=Lieferliste_A.ydim; 
Datentabelle["Aus",i]:=Ereignisverwalter.zeit;
Datentabelle["BZeit",i]:=Datentabelle["Aus",i]-Datentabelle["Ein",i];
@.umlagern(Senke);
end;

Problem ist dann dass er die Station 1-10 bedient und so lange die Stationen belegt sind und neue Aufträge eintreffen, diese nicht abgearbeitet werden. Bsps bei einer ZAZ von 1 Sek und einer Bearbeitungsdauer  der Maschinen von 12 Sek würden dann BE 11 und 12 liegen bleiben und BE 13 wieder auf Maschine 1 umglagert werden.

Vielen Dank schonmal, shishanis

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. Jan. 2018 23:21    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 shishanis 10 Unities + Antwort hilfreich

Hallo shishanis,

Zitat:
BE 11 und 12 liegen bleiben und BE 13 wieder auf Maschine 1 umglagert werden

die Auslagerung aus dem Puffer erfolgt mittels einer Eingangssteuerung. Das @ ist gleich dem BE, welches den Puffer betritt. BEs, die auf dem Puffer ankommen wenn die Stationen belegt sind, werden nie ausgelagert, da hierzu beispielsweise die Stationen in Ausgangssteuerung eine weitere Auslagerungsprüfung benötigen.

TIPP:
Das BE betritt den Puffer. Das ist der Input. Das BE betritt die Senke. Das ist der Output. Wenn Eingang im Puffer oder Senke erfolgt eine Notiz in die Tabelle.

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

shishanis
Mitglied
Student

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

Beiträge: 5
Registriert: 25.10.2017

erstellt am: 27. Jan. 2018 14:06    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 Nadine,

vielen Dank erstmal für die fixe Antwort, ich werde daraus leider nicht ganz schlau. Wenn ich meine Steuerung im Puffer als Ausgangstteuerung setze, dann hört er nach den 10 BEs komplett auf umzulagern. Gibt es evtl eine Möglickeit das BE anzusprechen, dass als nächstes im Puffer liegt ?

Meinst du ich soll dann quasi nur noch die BEs dokumentieren, die den Weg durch alle Stationen "schaffen"?

Gibt es da nicht eine elegantere Lösung?
Das Problem ist auch dass die BEs mit einer gesetzten Zwischenankunftszeit eintreffen sollen und der Bestand am Puffer dokumentiert werden soll, daher ist es leider auch nicht möglich den Eingang des Puffers zu sperren bis die Maschinen frei sind.

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: 27. Jan. 2018 14:50    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 shishanis 10 Unities + Antwort hilfreich


nicht zu kompliziert denken.

Paar Fragen für dich selbst, um das Problem zu ergründen...

Ziel deines Vorhabens.....(z.B.: Durchlaufdiagramm, Materialflusssteuerung, Maschinenbelegung...)
Wenn für das Erreichen deines Ziels eine Methode erforderlich ist, dann....
Ziel der Steuerung... (z.B.: schreibt auf, regelt den Materialfluss...)
Wie wird jede Methode ausgelöst...(z.B.: Wenn BE in das Lager eintritt)
Durch was wird diese Methode ausgelöst.... (Durch das BE beim Eintretten ins Lager)
Was ist das Resultat dieser Auslösung der Methode (z.B.: wenn kein Eintritt ins Lager, dann kein Auslösen)


Zitat:
Wenn ich meine Steuerung im Puffer als Ausgangstteuerung setze, dann hört er nach den 10 BEs komplett auf umzulagern.

Mache dir eine Vorstellung, was wer macht. Stell dir den Mitarbeiter (MA) im Lager vor. Er hat die Arbeitsanweisung: Bei Eingang der Teile, prüfe ob Teile an Maschine erforderlich. Aber obwohl Lager voll ist, werden bei Lieferschwierigkeiten die schon gelagerten Teile im Lager nicht zur Stationen geliefert. Jetzt gehst du zu dem MA im Lager und ergänzt die Arbeitsanweisung: Prüfe ob bedarf in Station, wenn du auslagerst.

Zitat:
Gibt es evtl eine Möglickeit das BE anzusprechen, dass als nächstes im Puffer liegt ?

Beispielsweise mithilfe einer For-Schleife die BEs auf dem Puffer durchgehen.


Zitat:
Meinst du ich soll dann quasi nur noch die BEs dokumentieren, die den Weg durch alle Stationen "schaffen"?

und
Zitat:
Das Problem ist auch dass die BEs mit einer gesetzten Zwischenankunftszeit eintreffen sollen und der Bestand am Puffer dokumentiert werden soll, daher ist es leider auch nicht möglich den Eingang des Puffers zu sperren bis die Maschinen frei sind.

Ein Monitoring hat in der Regel keine Auswirkungen auf den Prozess. .... warum "schaffen" die BE den Weg nicht? ... und was hat dies mit der Erfassung der Durchlaufzeit zutun?

 

Zitat:
Gibt es da nicht eine elegantere Lösung?

Zitat:
TIPP:
Das BE betritt den Puffer. Das ist der Input. Das BE betritt die Senke. Das ist der Output. Wenn Eingang im Puffer oder Senke erfolgt eine Notiz in die Tabelle.


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

shishanis
Mitglied
Student

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

Beiträge: 5
Registriert: 25.10.2017

erstellt am: 11. Feb. 2018 21:44    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

Hey Nadin,

Vielen lieben Dank schonmal für deine super Denkanstöße.    Habe es damit jetzt hinbekommen, dass tatsächlich jedes BE umgelagert wird.

Habe dies durch eine Eingangssteuerungen am Puffer gelöst, der den Ausgang nur freigibt, wenn nicht alle Maschinen belegt sind.
Der Ausgang des Puffers schließt sich nach jedem überlieferten BE wieder und der Senkeneingang gibt den Pufferausgang wieder frei, sobald ein BE eintrifft.

Gibt bestimmt elegantere Lösungen aber ich bin froh, dass es klappt 

Nun kannte ich keine Funktion die bei einer Prüfung hochzählt bis zu einem vorgegebenen Wert wodurch meine Lösung zwar funktional aber mit ständigen Anpassungen in der Methode verbunden ist, wenn sich die Anzahl der Maschinen ändert.


Eingangssteuerung Puffer:
is
do

if
 
AS1.belegt=true  and AS2.belegt=true and AS3.belegt=true  and AS4.belegt=true and AS5.belegt=true and AS6.belegt=true and AS7.belegt=true and AS8.belegt=true and AS9.belegt=true and AS10.belegt=true
  then
Puffer1.AusgangGesperrt:=True;
else
Puffer1.AusgangGesperrt:=False;
end;
end;

Da die Anzahl der Maschinen im Laufe der Experimente angepasst werden soll wäre es super wenn man dies über Variablen anpassen kann, damit eine einfach Änderung im Experimenteverwalter ausreicht. Die Anzahl der Stationen soll zwischen 2 und 10 variieren. Dies wird aktuell über die globale Variable "AnzahlAS" geregelt.

Gibt es vielleicht eine Möglichkeit die "and Funktion" nur solange durchzuspielen bis i:=AnzahlAS?
Ich hoffe ja und du kannst mir vorerst noch ein letztes mal sehr helfen 

Ich wäre wirklich sehr dankbar!

LG shishanis

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: 11. Feb. 2018 23:18    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 shishanis 10 Unities + Antwort hilfreich

beispielsweise so...

Code:

is
integer: i;
object: _obj;
do

for i:= 1 to current.AnzahlAS loop /*gehe den Zähler durch. */
_obj:= str_to_obj(incl("Einzelstation",to_str(i),-1)) /*Erstelle aus String ein Object*/
if _obj.belegt = false then /* prüfe, wenn belegt*/
current.Puffer1.AusgangGesperrt := false; /*dann öffne den Ausgang*/
return; /* und ferlasse die Methode, da sonst am Ende der Ausgang nochmals geöfnet wird.*/
end;

next
current.Puffer1.AusgangGesperrt := true; /* wenn noch da, dann öffne den Ausgang*/


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