Autor
|
Thema: Abbildung Montagesystem (2779 mal gelesen)
|
montagesimulant Mitglied Student
Beiträge: 11 Registriert: 24.11.2004
|
erstellt am: 01. Dez. 2004 12:57 <-- editieren / zitieren --> Unities abgeben:
Hallo Forum, Vielleicht kann mir einer von euch weiterhelfen, wie die grundsätzliche Struktur in eM-Plant aufgebaut werden soll, um folgend beschriebenes Montagesystem abzubilden. Der Montagekreis besteht aus 4 Einzelmaschinen, 46 Werkstückträgern auf denen jeweils 3 Teile weiterbefördert werden können, 1 Kreiskettenförderer (6 m/min) und dazwischenliegenden Puffern. Man kann sich den Montagekreis folgendermaßen vorstellen: · Quelle · Station 1 (Taktzeit pro Bauteil 25 s) · Förderer zum Puffer 1 · Puffer 1 (Kapazität 13) · Förderer zum Puffer 2 · Puffer 2 (Kapazität 15) · Förderer zur Station 2 (Aufstauung max. 3 WT) · Station 2 (Taktzeit pro Bauteil 26 s) · Förderer zum Puffer 3 · Puffer 3 (Kapazität 15) · Förderer zur Station 3 (Aufstauung max. 2 WT) · Station 3 (Taktzeit pro Bauteil 35 s) · Förderer zum Puffer 4 · Puffer 4 (Kapazität 13) · Förderer zur Station 4 (Aufstauung max. 3 WT) · Station 4 (Taktzeit pro Bauteil 35 s) · Senke Der Montagekreis wird zwischen Station 4 und Station 1 durch einen Förderer zum Puffer 5, einen Puffer 5 (Kapazität 13) und einen Förderer zur Station 1 (Aufstauung max. 3) geschlossen. Wie realisiere ich, dass die 46 Werkstückträger immer im Kreis fahren, jedoch die Bauteile (jeweils 3 pro WT) von der Quelle vor Station 1 zugeführt sowie bei Station 4 durch die Senke abgeführt werden? Es werden außerdem verschiedene Varianten gefertigt, d.h. die Taktzeiten der Einzelmaschinen hängen von der Variante ab, außerdem werden teilweise einzelne Stationen nicht benötigt, d.h. die WTs fahren einfach an der nicht benötigten Station vorbei. Für alle Tips und Anregungen bedanke ich mich bereits herzlich im Voraus! Mit freundlichem Gruß Montagesimulant
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 01. Dez. 2004 15:52 <-- editieren / zitieren -->
Hallo Montagesimulant, 1.wichtige Frage : welche version benutzt Du ? Ab Version eM-Plant 5.0 gibt´s meines Erachtens neben den Montage- auch schon die Demontage-Bausteine, die Dir das Leben deutlich vereinfachen können. Das mit dem "im Kreis fahren" ist ganz einfach. Verbinde den Ausgang des letzten Bausteins mit dem Eingang des 1. Bausteins. Nun zu den 46 WT´s: Verbinde eine Quelle mit dem Eingang des letzten BS. Bei der Quelle stellst Du ein, dass sie 46 Be´s vom Typ Förderhilfsmittel (also Deine WT) erzeugen soll. Nun zum Aufladen der Teile(BT) auf die WT: Der 1. BS sollte ein Montagebaustein sein. Verbinde eine Quelle (für die BT´s) mit dem Eingang des ersten BS. Den Montage-BS und die Quelle kannst Du konfigurieren,dass eine vorgegebene Anzahl an BT (3) auf den WT "montiert" werden. Nun zum Abladen der BT von der WT: Hierzu nimmst du den Demontage-BS und verbindest ihn mit einer Senke (2. Nachfolger!), die die "demontierten" BT´s von dem WT aufnimmt. Pass bei den Montage/Demontage-BS beim Verbinden auf die Vorgänger /Nachfolgerbeziehung auf. eM-Plant holt sich defaultm. die WT´s vom 1.Vorgänger und gibt sie an den 2. Nachfolger ab (ist aber auch einstellbar). Die verschiedenen Montagezeiten (Bearbeitungszeiten) kannst Du zur Laufzeit festlegen (Registrierkarte Zeiten) 1. Möglichkeit Zuordnung Typ/Bearbeitungszeit in der Tabelle 2. Möglichkeit ueber eine Methode (Formel), wo Du den Typ abfragst und dementsprechend die Zeit setzt. Die Typfestlegung machst Du am besten beim 1.BS, wo die BT's auf die Palette "montiert" werden. Sicherheitshalber sollte sie nach dem "Demontieren" auch wieder gelöscht werden. Hier noch ein Tip für den Anfang. Versuch nicht gleich alles auf einmal zu modellieren sondern lieber STEP by STEP. ( schont die Nerven :-) ) Gruß
------------------ DER SIMULATOR
[Diese Nachricht wurde von Simulator am 03. Dez. 2004 editiert.] [Diese Nachricht wurde von Simulator am 03. Dez. 2004 editiert.] |
montagesimulant Mitglied Student
Beiträge: 11 Registriert: 24.11.2004
|
erstellt am: 01. Dez. 2004 16:41 <-- editieren / zitieren --> Unities abgeben:
Hallo Simulator, vielen Dank für die nützlichen Tips!! Ich finde es wirklich nett, dass Du in diesem Forum so eine hervorragende Unterstützung bietest. Das mit den Nerven schonen ist nicht so einfach ;-) Werde mich jetzt noch mal dransetzen... Gruss Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
montagesimulant Mitglied Student
Beiträge: 11 Registriert: 24.11.2004
|
erstellt am: 08. Dez. 2004 10:16 <-- editieren / zitieren --> Unities abgeben:
Hallo Simulator, ich habe noch mal 2 Fragen bezüglich meines Montage-Modells: 1. Wie kann ich die Anzahl meiner produzierten Teile (Vernichtete BEs bei der Senke) zählen bzw. aufsummieren und ausgeben bzw. anzeigen? 2. Da in meinem Montagekreis eine fixe Anzahl von WTs sind, war Dein Vorschlag, die WTs durch eine zweite Quelle zu erzeugen. Dies funktioniert auch fabelhaft, nur mit der Einschränkung, dass die WTs bei jedem Neustart einer Simulation erneut in den Montagekreis eingeschleust werden. In der Realität befinden sich diese WTs jedoch dauernd und immer in unterschiedlichen Anhäufungen an den Einzelstationen bzw. Puffern. Wie könnte ich dies umgehen? In diesem Zusammenhang stosse ich noch auf ein weiteres Problem: Wenn ich bei der Quelle meiner zu produzierenden Teile eine fixe Anzahl eintrage, werden bei meiner ersten Station (Montage-Station) solange Bauteile auf die WTs montiert, bis die fixe Anzahl erreicht wird. Daraus folgt das Problem, dass die letzte Station meines Kreises (Demontage-Station) blockiert wird, da die WTs nicht mehr weiter über meinen Puffer zu Station 1 fliessen können, da Station 1 ja bereits alles abgearbeitet hat und somit stoppt. Ich hoffe, ich konnte mein Problem verständlich beschreiben. Viele Grüsse Montagesimulant Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 08. Dez. 2004 12:09 <-- editieren / zitieren -->
Hallo montagesimulant, zu 1. Ueber die Statistik kannst Du die Anzahl der durch die Senke aufgenommenen Be´s (BT´s) erfassen. Dazu muß die Statistikerfassung der Senke aktiv sein. Dies kannst Du in der Statistik-Registerkarte der Senke überprüfen. Über "senke.anzahlein" kannst Du die Anzahl der aufgenommenen Be´s abfragen z.B. in einer Methode oder aber ueber einen Display-Baustein im Netzwerk direkt ausgeben lassen. Zu 2. Bei Materialflusssimulationen fängt man eigentlich mit einer leeren Anlage (Zeitpunkt 0:0:0:0.0) an, die nach dem Start mit Be´s gefüllt wird (Hochfahrphase). Nach einem vorgegebenen Zeitpunkt (z.B. 1..n Tage) wenn die Anlage entsprechend gefüllt ist mit Be´s und kontinuierlich läuft ( eingeschwungener Zustand) wird dann die Statistik zurückgesetzt, damit die Hochfahrphase die Statistik nicht mehr beeinflußt. D.h. vom Ablauf der Simulation und der Simulationsergebnisse ist es absolut korrekt, wenn die Anlage zunächst leer ist und dann hochgefahren wird. Nun zum Blockierproblem.
Hierzu 2 Fragen: Liegt ein WT auf der Montagestation und wird nicht mit WS beladen ? Wie wurde die Montagestation konfiguriert,sodaß genau 3 Teile aufgeladen (montiert) werden auf den WT ? Gruß ------------------ DER SIMULATOR
[Diese Nachricht wurde von Simulator am 08. Dez. 2004 editiert.] |
montagesimulant Mitglied Student
Beiträge: 11 Registriert: 24.11.2004
|
erstellt am: 08. Dez. 2004 13:35 <-- editieren / zitieren --> Unities abgeben:
Hallo Simulator, die Montagestation habe ich wie folgt konfiguriert: Montagestation > Attribute > Montageliste: Vorgänger 2 (Quelle BTs), Anzahl 3 Somit werden immer 3 Bauteile auf meinen WT gesetzt. Ausserdem habe ich beim Förderhilfsmittel 3 Animationspunkte gesetzt und somit sind die 3 BTs auch optisch zu erkennen. zum Blockierproblem: Ich versuch es nochmal detaillierter zu erklären. Wenn ich eine fixe Anzahl von zu montierenden Bauteilen angebe, liefert meine Quelle der BTs genau diese Menge und "montiert" jeweils 3 auf einen WT in der Montagestation (Station 1). Ist die fixe Anzahl erreicht, fährt zwar ein WT noch auf die Montagestation, da aber keine weiteren Bauteile durch die BT-Quelle geliefert werden, verharrt mein WT auf der Montagestation. Der vorgeschaltene Puffer (zwischen letzter Station und erster Station) der WTs läuft bis zur Maximalkapazität voll und somit bleibt das ganze System stehen, d.h. die Bauteile auf den WTs, die auf den anderen Stationen noch nicht bearbeitet wurden können nicht weitergefördert werden. In der Realität läuft es dann so ab, dass der WT zwar noch in die Montagestation fährt, dort aber nicht mehr bestückt wird und wieder ausfährt zum nächsten Puffer bzw. Station. Somit kommt das System nicht ins stocken. Dabei stellt sich auch die Frage, wie ich es handhaben kann, wenn ich einen Auftrag von zu produzierenden Bauteilen erteile, der nicht durch 3 teilbar ist. Angenommen ich benötige ein Los von 100: Dann werden insg. 99 Bauteile auf 33 WTs gesetzt und bearbeitet. Was aber passiert mit meinem 100sten Bauteil? Die Montagestation hat ja den Befehl, immer 3 BTs auf einen WT zu setzen. Ein Versuch zeigte, dass die Montagestation noch das 100ste Bauteil auf einen WT setzt und ab dann stockt das ganze System wie oben beschrieben... Ich hoffe es ist jetzt besser zu verstehen, vorab schon mal vielen Dank Gruss Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 08. Dez. 2004 14:46 <-- editieren / zitieren -->
Hallo Montagesimulant, zum 1. Punkt (fixe Variante) schalt mal in der Registerkarte "Attribute" der Quelle um von "Anzahl einstellbar" auf "Abstand einstellbar", Betriebsart ="blockierend" und BE-Auswahl = "konstant". Dann erzeugt die Quelle in einem vorgegebenen Takt (Bearbeitungszeit) die WS (ohne Anzahlbegrenzung). zum Punkt 2. (variable Variante) Es ist grundsätzlich auch möglich, die Anzahl der zu beladenden WS variable während der Simulation zu definieren. Die Montageliste, die die Du jetzt fix in der Registerkarte eingetragen hast, wird dann ueber eine Methode (SIMTALK) erzeugt und dem Montagebaustein mitgeteilt, wenn der WT in den Montagebaustein eintritt. Hierzu muß das System natürlich die jeweilige zubeladende WS-Anzahl vorab kennen. (z.B.über eine Tabelle) Eine Sache die Du dir auch noch überlegen solltest: Muß der Beladevorgang so ausführlich mit Be- und Entladen dargestellt werden, d.h. ändert sich das Simulationsergebnis relevant, wenn Du den Be-/Entladevorgang durch einfache Einzelstationen nachbildest ohne daß tatsächlich WS´s auf die WT´s beladen werden? Gruß
------------------ DER SIMULATOR |
montagesimulant Mitglied Student
Beiträge: 11 Registriert: 24.11.2004
|
erstellt am: 10. Dez. 2004 13:44 <-- editieren / zitieren --> Unities abgeben:
Hallo Simulator, mit welchem Befehl kann ich denn mit Hilfe einer Methode auf die einzelnen BEs zugreifen, die in einer Montagesation auf mein Förderhilfsmittel montiert werden? Und mit welchem Befehl könnte ich je nach Anzahl meiner zu montierenden BEs auf die Bearbeitungszeit der Montagestation zugreifen? Vorab schon mal vielen herzlichen Dank Mit freundlichem Gruss Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 10. Dez. 2004 17:53 <-- editieren / zitieren -->
Hallo Montagesimulant, jetzt geht´s ins Eingemachte... eM-Plant stellt hierfür folgende Methoden zur Verfügung "montagestation.zuLoeschendesBE(i);" wobei 0<=i<=Montagestation.anzahlzuLoeschendeBEs gilt oder aber "montagestation.zuLoeschendesBEs(Tabelle);" wobei in der Tabelle dann alle zu montierenden Be´s stehen (sollten). Das "sollten" habe ich deshalb angehängt, weil nun der Zeitpunkt zudem die zu montierenden Teile abgefragt werden,eine Rolle spielt. z.B. könnte die Palette schon auf der Montagestation liegen aber noch nicht alle Teile. Es muß deshalb sichergestellt werden, daß alle Teile,vor der Abfrage nach den Teilen der Montagestation,bekannt sind ! Die Bearbeitungszeit kann extern über montagestation.bearbeitungszeit gesetzt und ausgelesen werden. Wichtig dabei ist, wann die Bearbeitungszeit gesetzt wird. Wenn, dann solltest Du die Bearbeitungszeit in einer Methode (mit dem Zeitwert als Rückgabewert) unter "Bearbeitungszeit" (RegisterKarte Zeit) eintragen, damit sie für den aktuellen Takt harangezogen wird. Sonst gilt sie nämlich für den nachfolgenden Takt. Überlege vielleicht nochmal, ob es nicht einfacher wäre, wenn Du die individuelle Losgrösse/Zeit die Du ja sowieso dem System mitteilen mußt, in eine Warteschlangenliste schreibst (anhängst). Zu Beginn des Montagevorgangs würde der oberste Wert herausgenommen (herausnehmen= lesen und löschen) und dann die Zeit entsprechend gesetzt werden (s.o.). Für Warteschlangenlisten gibt es entsprechende Befehle: liste.anhaengen(Wert) -- Wert wird ans Ende der Liste geschrieben liste.entnehmen -- oberster Wert wird gelesn und herausgeloecht. d.h. die Verwaltung würde Dir eM-Plant abnehmen. Gruß ------------------ DER SIMULATOR [Diese Nachricht wurde von Simulator am 10. Dez. 2004 editiert.] |
montagesimulant Mitglied Student
Beiträge: 11 Registriert: 24.11.2004
|
erstellt am: 22. Dez. 2004 18:06 <-- editieren / zitieren --> Unities abgeben:
Hallo Simulator, wie kann ich denn die ID bzw. die Nummer meines Förderhilfsmittels abrufen, während sich das Förderhilfsmittel auf einer Bearbeitungsstation befindet? Ich würde die ID in einer Methode benötigen um weitere Fallunterscheidungen einzuleiten. Vorab vielen Dank und wünsche ein frohes Weihnachtsfest Gruss Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 22. Dez. 2004 18:29 <-- editieren / zitieren -->
Hallo, Über z.B. "idnr:=objekt.id;" kannst Du die ID abfragen, wobei "objekt" Deine Palette ist. Über "Förderhilfsmittel:idnr" (idnr s.o.) kommst Du an Dein Objekt (mit ID=idnr), wobei "Förderhilfsmittel" das Klassenobjekt von "objekt"(s.o.) ist.
Gruß ------------------ DER SIMULATOR [Diese Nachricht wurde von Simulator am 22. Dez. 2004 editiert.] |
montagesimulant Mitglied Student
Beiträge: 11 Registriert: 24.11.2004
|
erstellt am: 23. Dez. 2004 10:10 <-- editieren / zitieren --> Unities abgeben:
Hallo Simulator ich habe die Methode ungefähr folgendermassen aufgebaut: is local idnr : integer; do idnr := objekt.id; print (idnr); end; Dabei bekomme ich jedoch folgende Fehlermeldung: Falsche Parameteranzahl in Objekt: 0 übergeben, 1 erwartet. Der Pfad von meinem Förderhilfsmittel wäre: .BEs.BEs_Linie.Förderhilfsmittel1 Weisst Du, wo der Gedankenfehler liegen könnte? Leider finde ich im Handbuch keine Beschreibung bzgl. der Abfrage der ID. Viele Grüsse
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 23. Dez. 2004 10:50 <-- editieren / zitieren -->
Hi, 1. Du hast das "objekt" noch nicht als Variable deklariert. 2. Das Teil, daß Du abfragen willst muß eindeutig sein also nicht ".BEs.BEs_Linie.Förderhilfsmittel1" (es können ja viele .Förderhilfsmittel1 auf der BEs_Linie sein) Das 1. Teil kannst Du z.B. ueber ".BEs.BEs_Linie.inhalt" erfragen so wird Deine Methode funktionieren. 1: is 2: idnr : integer; 3: obj : object; 4: do 5: obj := <<<<<Teil auf der be_linie eintragen >>>>>> ; 6: idnr := obj.id; 7: print idnr; 8: 9: end;
Gruß
------------------ DER SIMULATOR |
montagesimulant Mitglied Student
Beiträge: 11 Registriert: 24.11.2004
|
erstellt am: 23. Dez. 2004 12:25 <-- editieren / zitieren --> Unities abgeben:
Hallo Simulator, erst mal danke für die rasche Antwort! 1. Ich habe für <<<<<Teil auf der be_linie eintragen>>>>> den Bezeichner @ verwendet. Gibt es dafür auch noch eine andere Möglichkeit? 2. Nun wollte ich damit eine Fallunterscheidung einleiten: if .BEs.BEs_Linie.Förderhilfsmittel1:idnr.AnzahlBEs = 3 then ... Die Methode akzeptiert mir jedoch das ":idnr" nicht. Die Fehlermeldung lautet: Syntax-Fehler in der Nähe von Zeile 13 bei <idnr>. Gibt es dafür eine logische Erklärung? Mit freundlichem Gruss Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 23. Dez. 2004 13:22 <-- editieren / zitieren -->
Hi, zu 1. ja z.B. mit obj.inhalt oder obj.inhaltsliste(liste), wobei <liste> vom Type <table> ist. zu 2. OOPs, erwischt; wenn man nicht alles vorher testet :-); Anscheinend akzeptiert eM-Plant bei den ID´s nur Zahlen und keine num-Variablen (wie idnr); Ich vermute mal das ":" in Verbindung mit einer Variablen wird als Typdeklaration interpretiert. hier ein workaround : is obj,obj1 : object; do obj1:=.bes.fahrzeug:1; obj:= str_to_obj(sprint(obj1.klasse,":",obj1.id)); print obj; end; Dem "obj1" (hier ".bes.fahzeug:1") ordnest Du Dein aktuelles Be zu ("@" oder "obj.inhalt" ...)
Gruß ------------------ DER SIMULATOR |
montagesimulant Mitglied Student
Beiträge: 11 Registriert: 24.11.2004
|
erstellt am: 10. Jan. 2005 11:45 <-- editieren / zitieren --> Unities abgeben:
Hallo Simulator, gibt es in eM-Plant eine Funktion, die es mir ermöglicht, auf einfache Weise ein veränderbares Mitarbeiter-Modell zu hinterlegen? Die Montagelinie hat bspw. 4 Einzelstationen, mit 3 Mitarbeitern. 2 Mitarbeiter sind fix an 2 Stationen und 1 Mitarbeiter wechselt zwischen 2 Stationen. Dieser Mitarbeiter fängt an Station 1 an zu arbeiten bis der Puffer zwischen Station 1 und 2 voll ist, dann wechselt er zu Station 2 und leert den vorgeschaltenen Puffer, dann geht er wieder zurück an Station 1, usw... Wie könnte ich das denn variabel hinterlegen, da sich dieses Mitarbeiter-Modell häufig auch verändert? Vielen Dank im Voraus mfg montagesimulant Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 10. Jan. 2005 21:48 <-- editieren / zitieren -->
Hi Montagesimulant, ab der Version 7 gibt´s den Werker (Pool) basierend auf dem Exporter/Broker-Bausteinen damit kannst Du den Bausteinen Ressourcen zuordnen die zur Bearbeitung individuell angefragt werden. Näheres siehe eM-Plant-Handbuch. Gruß ------------------ DER SIMULATOR |
montagesimulant Mitglied Student
Beiträge: 11 Registriert: 24.11.2004
|
erstellt am: 03. Feb. 2005 11:31 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe in einem Sub-Netzwerk einen Montageprozess abgebildet. In diesem Subnetzwerk befindet sich eine Einzelstation. Wie kann ich nun die Zustandssymbole dieser Einzelstation auf das Symbol meines Netwerkes übertragen? Unter Symbol bearbeiten/Objekt/Zustandssymbole LEDs kann ich das Feld Zustandssymbol benutzen nicht anklicken... Vorab vielen Dank!!! Gruss Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 03. Feb. 2005 23:37 <-- editieren / zitieren -->
Hi, selbst wenn Du Zugriff darauf hättest, so könntest Du sie vermutlich nicht nutzen, denn die eigenen LED´s des Netzwerkes werden schon für das Netzwerk benutzt und können somit nicht von einem anderen Objekt benutzt werden. mit der "Ampel"-Methode (siehe Beitrag "Änderung der Zustandsanimation erzwingen" von Joshi) kannst Du auch Stati von Bausteinen dem Netzwerk "mitteilen". Gruß
------------------ DER SIMULATOR |