Autor
|
Thema: Probleme bei Grundlagenprogrammierung zu Abfolgesteuerung & Attributzuweisung (1211 / mal gelesen)
|
Lene wills lernen Mitglied
Beiträge: 22 Registriert: 23.12.2020 Plant Simulation Version 16
|
erstellt am: 15. Jan. 2021 14:21 <-- editieren / zitieren --> Unities abgeben:
Hallo Liebe Community, DANKE, dass man hier immer neue Ansätze erhält - entweder durchs Stöbern oder bei eigenen Problemen. Meine derzeitige Simulation läuft bisher (fast) ohne Programmierung, ich würde sie aber gerne noch Verfeinern. Dazu scheitere ich trotz tagelangen Versuchen an den einfachsten Programmierungen. Folgendes möchte ich erreichen: 1. Zuweisen eines Attributs, z.B. voll/leer, an einer Station --> Ich vergebe Attribute bei der Erzeugung durch die Quelle, jedoch klappt die Änderung dieser an verschiedenen Stationen nicht 2. Start einer Anlage erst nach Abschluss eines anderen Prozessschrittes der nicht direkt vorgelagert ist --> Ein Abgekoppelter Prozess darf erst beginnen, wenn ein anderer Prozess abgeschlossen ist, da in der Realität ein Mitarbeiter für die Bedienung zuständig ist nicht gleichzeitig an beiden Prozessen arbeiten kann. Ich habe bereits den kompletten Aufbau mit Werkern gestaltet, da funktioniert alles, jedoch würde ich den Vorgang gerne auch ohne Werker abbilden. 3. Montage von zwei Bauteilen, die von dem Selben Vorgänger kommen --> Umgangen habe ich dies durch ein Zwischenschalten eines Puffers um zwei verschiedene Vorgänger zu erreichen (siehe Bild). Gibt es eine Möglichkeit hier durch eine Eingangssteuerung o. Ä. den Zusammenbau auf direktem Weg (wenn beide Teile von gleicher Station kommen) zu vollziehen? Besten Dank bereits jetzt für alle Denkanstöße und Hilfestellungen! Viele Grüße verbunden mit den besten Wünschen für das neue Jahr Lene Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
nadin1223 Mitglied Ing.
Beiträge: 949 Registriert: 29.03.2016
|
erstellt am: 15. Jan. 2021 20:07 <-- editieren / zitieren --> Unities abgeben: Nur für Lene wills lernen
Hallo Lene, zu 1: "voll" und "leer" sind boolean-Attribute von Station, Förderhilfsmittel, u.v.m... Diese können nur ausgelesen und nicht gesetzt werden.. Attribut-Name so wählen, dass es für dich und am Besten auch Andere klar ist, dass dies manuell angelegt ist.. Zitat: --> Ich vergebe Attribute bei der Erzeugung durch die Quelle, jedoch klappt die Änderung dieser an verschiedenen Stationen nicht
hierzu bitte mehr Info. Was klappt nicht? zu 2: Beispiel im Bild zu 3:
Zitat: Montage von zwei Bauteilen, die von dem Selben Vorgänger kommen
Das Hauptteil braucht einen eigenen Eingang. Es muss nicht Puffer sein --> die Flusssteuerung hat keine Kapazität, sodass kein BE drauf liegen bleiben kann 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 |
Lene wills lernen Mitglied
Beiträge: 22 Registriert: 23.12.2020 Plant Simulation Version 16
|
erstellt am: 15. Jan. 2021 20:49 <-- editieren / zitieren --> Unities abgeben:
Hallo nadin1223, vielen Dank für deine Antwort! Ganz verstanden habe ich es leider bisher noch nicht.. zu 1: Oh, daran habe ich nicht gedacht; gefüllt und geleert würde ebenso gehen. In meinen Programmieranfängen habe ich die Source mit einer Tabelle Bestückt in der ich unter "Attributes" eine Tabelle erzeugt habe mit "Name of Attribute" *Füllstand* und dann "String" *voll*. (Siehe Bild) [Falls das Vorgehen völliger Schwachsinn ist, kläre mich bitte auf! Ich habe das aus einem Beispiel nachgebaut.] Dieses *voll* (oder neu *gefüllt*) möchte ich gerne in einer Station als *leer* (oder *geleert*) umwandeln, weil die Station eben das macht - Behälter befüllen oder entleeren. zu 2: Dein Beispiel habe ich nachgebildet , aber ehrlich gesagt nicht ganz verstanden. Im Programmieren bin ich noch nicht fit genug. Die Einzelstation blockiert in meinem Fall und gibt das BE nicht weiter; Einzelstation1 wird übersprungen und Einzelstation11 arbeitet ganz normal. Obwohl ich alles genau nach deinem Bild nachgebaut habe. Ich möchte, dass z.B. Einzelstation11 erst dann mit der Bearbeitungszeit beginnt, wenn das BE im Buffer111 ist. zu 3: Richtig, es muss kein Puffer sein. Aber ich kann ja keine zwei Verbinder zwischen den gleichen Vorgänger und Nachfolger (wie im Bild vom vorherigen Beitrag) setzen? Dann kommt die Meldung, dass bereits eine Verbindung besteht, deshalb habe ich einen Puffer mit Zeit=0 dazwischen gebaut. Das heißt aber, dass ich zwei Eingänge brauche, wie vermutet? Beste Grüße Lene Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
nadin1223 Mitglied Ing.
Beiträge: 949 Registriert: 29.03.2016
|
erstellt am: 15. Jan. 2021 23:11 <-- editieren / zitieren --> Unities abgeben: Nur für Lene wills lernen
zu 1: Zitat: [...] "Attributes" eine Tabelle erzeugt habe mit "Name of Attribute" *Füllstand* und dann "String" *voll*
OK, ich bin nicht auf die Idee gekommen in deiner Frage String anzunehmen... Deshalb: @.Füllstand:="voll" geht.. Was nicht geht, ist: Setzen von DasObjekt.voll bzw. DasObjekt.leer. Plant Sim sieht es nicht so wild mit String-Datentyp. (Zumindest nicht so wild, als dass davon abzuraten nötig wäre. Allgemein aus IT: String ist sehr teuer. Boolean ist das Günstigste. IsVoll := true bzw. false ist vollkommen aussagekräftig, als es hierfür ein String nötig wäre).. Für das Ändern deiner Variable (String)... In Station - oder wo auch immer - in Ein- oder Ausgangssteuerung mit @ auf das BE zugreifen und setzen...
Code: @.Füllstand := "leer"
zu 2: ich sehe im Bild eine Verbindung zwischen Buffer21 und Buffer111, die eig. nicht hin gehört... Weil im Bild von mir nicht abgebildet war: in V_Arbeitend ist der Anfangswert auf false gesetzt (aber das hast du schon eig. selbst rausgefunden) Zitat: Ich möchte, dass z.B. Einzelstation11 erst dann mit der Bearbeitungszeit beginnt, wenn das BE im Buffer111 ist.
jep, mit dem Ansatz (Beispiel) geht diese MA-Logik. zu 3:
Zitat: Das heißt aber, dass ich zwei Eingänge brauche, wie vermutet?
ja Zitat: Aber ich kann ja keine zwei Verbinder zwischen den gleichen Vorgänger und Nachfolger (wie im Bild vom vorherigen Beitrag) setzen?
auch ja. Flusssteuerung hat keine Kapa. Deshalb sind es quasi zwei Verbindungen zwischen den gleichen Vorgänger und Nachfolger.
------------------ 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 |
Lene wills lernen Mitglied
Beiträge: 22 Registriert: 23.12.2020 Plant Simulation Version 16
|
erstellt am: 16. Jan. 2021 11:04 <-- editieren / zitieren --> Unities abgeben:
Hallo Nadin, herzlichsten Dank noch einmal für deine immer ausgesprochen hilfreichen Antworten!! zu 1: ich habe die Methode mit deiner Hilfe (und ohne teurem String) nun folgendermaßen ausgestaltet: if @.IsVoll = false @.IsVoll := true else @.IsVoll := false end Glücklicherweise funktioniert diese auch, wenn ich sie als Eingangssteuerung einfüge. Ein Problem herrscht nur, wenn ich die Methode auf eine Baugruppe (Zusammenbau mehrerer BEs) anwenden will. Hier ändert sich nur der Status des Hauptteils. Hast du eine Idee, wie ich es auf alle BEs anwenden kann? Und kannst du mir helfen eine geeignete Anschauungsvariante zu finden, bei der dargestellt wird wie lange welcher Behälter voll (IsVoll=true) oder leer (IsVoll=false) ist? zu 2: Du hast wie immer Recht, die Verbindung war falsch. Im Probeaufbau funktioniert nun alles. Jedoch gibts neue Probleme. - Die von mir in der Tabelle als erste Station Franz.Ausbau_von_BP_aus_BR eingefügt Station blockiert und ich weiß nicht warum. Daraufhin (ich denke das ist der Grund) blockieren auch die anderen beiden. Wie gehe ich bei der Reihenfolgedefinition richtig vor? Was könnte ich falsch gemacht haben? - Da ich ja eigentlich die Methode aus 1 als Eingangssteuerung habe, ist dort eigentlich kein Platz mehr für die Eingangssteuerung von M_EinStr. Ich habe es so umgangen, dass ich die voll_leer-Methode im Reiter Benutzerdefiniert eingefügt habe. Macht man das so? Oder geht das schöner? zu 3: Ich verstehe deinen letzten Satz nicht ganz, bei Erzeugung des zweiten Verbinders zwischen den gleichen Stationen (hier Ausbau_von_BP_aus_BR und Montage_BP_BJ) erhalte ich die Fehlermeldung. Danke bereits jetzt für alle weiteren Bemühungen von dir!! Beste Grüße Lene
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
nadin1223 Mitglied Ing.
Beiträge: 949 Registriert: 29.03.2016
|
erstellt am: 16. Jan. 2021 22:14 <-- editieren / zitieren --> Unities abgeben: Nur für Lene wills lernen
zu 1: kleine for-Schleife kann helfen Code:
//Wenn Inhalt möglich, dann if @.internalClassName /= "Piece" then //kein BE... somit kann Inhalt existieren for var i := 1 to @.AnzahlBes loop //gehe Inhalt BEs durch @.BE(i).Attr_isVoll := true //setze was auch immer next end //Wenn Inhalt nicht möglich für das BE/Fahrzeug/Förderhilfsmittel @.Attr_isVoll := true //setze das BE, welches sich auf der Station befindet
Zitat: eine geeignete Anschauungsvariante zu finden, bei der dargestellt wird wie lange welcher Behälter voll (IsVoll=true) oder leer (IsVoll=false) ist?
schau dir mal unter Hilfe "StatistikAktiv" und "holeStatistikTabelle" an zu 2:
Zitat: Wie gehe ich bei der Reihenfolgedefinition richtig vor?
Die erste Station, welche das BE bekommt bearbeitet dieses. Andere Stationen warten. Weil nur eine Station arbeiten soll. Zitat: Ich habe es so umgangen, dass ich die voll_leer-Methode im Reiter Benutzerdefiniert eingefügt habe. Macht man das so? Oder geht das schöner?
Eine wichtige Regel: Du sollst dich selbst in paar Monaten noch in deinem Modell zurecht finden schaffen Methoden können mit "DeineAndereMethode();" auch innerhalb anderer Methode ausgeführt werden. Achtung! hier bleibt @ gleich, aber ? ist dann die Methode, welche diese Methode aufruft. (Soll ? und @ gleich bleiben, dann geht es mit "&DeineAndereMethode.execute(@,?);") zu 3: Flusssteuerung kommt in ihrem Verhalten näher einer Kante als beisp. Puffer.. Flusssteuerung hat keine Kapazität und kann somit kein BE physisch haben. Vor der Umlagerung ist das BE auf dem vorgelagerten Objekt. Nach der Umlagerung auf dem nachgelagerten Objekt.
------------------ 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 |
Lene wills lernen Mitglied
Beiträge: 22 Registriert: 23.12.2020 Plant Simulation Version 16
|
erstellt am: 17. Jan. 2021 11:38 <-- editieren / zitieren --> Unities abgeben:
Hallo Nadin, erneut bedanke ich mich ganz herzlich für deine Hilfe! zu 1: Den Code verstehe ich! Leider ist er noch nicht ganz auf meine Steuerung anwendbar. Nicht in jeder Station muss das Attribut auf true gesetzt werden, deshalb hatte ich ja meine for-Schleife, die geregelt ha, dass false gesetz wird, falls der Wert schon true ist. Ich habe versucht das zu verbinden und dein Ende des Codes auskommentiert und dafür meine Schleife eingesetzt, leider nicht ganz erfolgreich. //Wenn Inhalt möglich, dann if @.internalClassName /= "Piece" then //kein BE... somit kann Inhalt existieren for var i := 1 to @.AnzahlBEs loop //gehe Inhalt BEs durch @.BE(i).IsVoll := true //setze was auch immer next end //Wenn Inhalt nicht möglich für das BE/Fahrzeug/Förderhilfsmittel //von Lene auskommentiert @.Attr_isVoll := true //setze das BE, welches sich auf der Station befindet //dafür von Lene eingefügt if @.IsVoll = false @.IsVoll := true else @.IsVoll := false end Bestimmt ist diese Vorgehensweise Horror für eine erfahrene Programmiererin wie dich. Ich könnte mir vorstellen, dass ich meinen Teil auch schon weiter oben einfügen muss bei @.BE(i)... Da es derzeit folgendermaßen ist: Förderhilfsmittel befördert ein weiteres Förderhilfsmittel und darauf ein Fördergut. Förderhilfsmittel und Fördergut werden als leer (IsVoll = false) erzeugt. Förderhilfsmittel und Fördergut werden aufeinander aufgeladen und befüllt, alles ist voll (IsVoll = true). - passt Förderhilfsmittel und Fördergut kommen mit weiterem Förderhilfsmittel in Parallelstation und nur das weitere FHM ändert den Status auf voll (wird befüllt) und das Hauptteil des Zusammenbaus (eines der beiden Förderhilfsmittel) ändert den Status auf leer. - es sollten alle Elemente des Zusammenbaus den Satus leer bekommen. "StatistikAktiv" und "holeStatistikTabelle" habe ich mir angesehen, liest sich schon mal gut! Aber wo bringe ich den Code dazu unter? zu 2: Die Reihenfolge habe ich eingehalten, trotzdem Stockt es bei der Anlage, die in meiner Tabelle als Erstes geführt ist. Diese sollte ja eigentlich immer durchlaufen und nur die nachfolgenden sind von dieser abhängig, oder verstehe ich das falsch?
Zu "DeineAndereMethode();" bin ich noch am Probieren. Das Tüfteln ist nicht so einfach, weil die zuvor genannten Probleme noch auftreten. Aber in nem Mininetzwerk zur Probe siehts nicht schlecht aus. zu 3: Super, hab die Flussteuerung eingebaut. Es besteht ja keine Notwendigkeit ein BE aufzuladen. DANKE!!!!
Viele Grüße Lene
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
nadin1223 Mitglied Ing.
Beiträge: 949 Registriert: 29.03.2016
|
erstellt am: 18. Jan. 2021 17:16 <-- editieren / zitieren --> Unities abgeben: Nur für Lene wills lernen
zu 1: so tauscht du alle IsVoll zustände... Code:
@.IsVoll := not @.IsVoll if @.internalClassName /= "Piece" then for var i := 1 to @.AnzahlBEs loop @.BE(i).IsVoll := not @.BE(i).IsVoll next end
Wenn tatsächlich physisch beladen wird, dann ist das Auslesen von Attributen Leer bzw. Voll besser. zu 2: Zitat: --> Ein Abgekoppelter Prozess darf erst beginnen, wenn ein anderer Prozess abgeschlossen ist, da in der Realität ein Mitarbeiter für die Bedienung zuständig ist nicht gleichzeitig an beiden Prozessen arbeiten kann.
Station führt einen Arbeitsvorgang vollständig aus bevor nächstfolgender Arbeitsvorgang angefangen werden darf. Arbeitsforgänge werden nach FIFO verarbeitet.
------------------ 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 |
Lene wills lernen Mitglied
Beiträge: 22 Registriert: 23.12.2020 Plant Simulation Version 16
|
erstellt am: 18. Jan. 2021 21:23 <-- editieren / zitieren --> Unities abgeben:
Hallo Nadin, noch einmal allerbesten Dank! zu 1: Klasse! Der Code ist genau das, was ich gebraucht habe!!
zu 2: Leider habe ich noch immer irgendwo einen Fehler, der sich trotz stundenlanger Suche nicht zeigt. Die in der Tabelle "T_StatWartend" als erstes genannte Station "Ausbau_von_BP_aus_BR" bekommt den Status "Stopped", wenn sie eigentlich an der Reihe wäre und stoppt somit auch die Nachfolgenden Prozessschritte (Siebturm.Siebvorgang und .Fritz.Fritz und alles Nachgelagerte). Mir fällt auf, dass sich der Status von V_Arbeitend bereits kurz bevor "Ausbau_von_BP_aus_BR" an der Reihe wäre von false (Anfangszustand) in true ändert. Das kann ich mir nicht erklären. Ich vermute aber, dass hier die Lösung liegt. Im Model "Attributsprobe" habe ich dein Schema nachgebastelt und dort funktioniert es super! Habe die Codes hier nochmal rauskopiert und in mein wahres Geschehen (Frame: Models.FIT.Halle_Gesamtübersicht) reinkopiert; Schreibfehler dürfte es somit nicht geben. Fällt dir noch etwas auf? "DeineAndereMethode();" konnte ich soweit umgehen, da ich die MEthoden so platzieren konnte, dass ich entweder die voll/leer-Methode, oder die M_EinStr und M_AusStr benötige. Eine ganz andere (banale) Frage habe ich schon seit Längerem. Was bedeutet die Nummerierung hinter dem Doppelpunkt, wenn man die Maus über ein Objekt im Materialfluss hält? Ich dachte, die Zahl würde aussagen, dass es sich um das als erstes, zweites, drittes,... erzeugte BE handelt, das stimmt so aber nicht. Beste Grüße Lene
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
nadin1223 Mitglied Ing.
Beiträge: 949 Registriert: 29.03.2016
|
erstellt am: 18. Jan. 2021 22:42 <-- editieren / zitieren --> Unities abgeben: Nur für Lene wills lernen
zu 2: habe keine V16 Version... Füge paar print-Befehle ein, damit du siehst welche Stationen welchen Status bekommen. Zitat: Was bedeutet die Nummerierung hinter dem Doppelpunkt, wenn man die Maus über ein Objekt im Materialfluss hält? Ich dachte, die Zahl würde aussagen, dass es sich um das als erstes, zweites, drittes,... erzeugte BE handelt, das stimmt so aber nicht.
Nun das auslesen der Zahl, um die Anzahl BEs eines Klassenobjektes zu bekommen, wird damit nicht gehen. Hierzu ist es einfach nicht gedacht. Objektorientierte Programierung verlangt eindeutige Objekte. Das Objekt muss auch eindeutig identifizierbar sein. Das Identifizieren eines Objektes geschieht in Plant Sim mittels des Namens. Der Name für die in der Simulation erzeugte Objekte (BE|Fahrzeug|Förderhilfsmittel) wird, damit es unikat ist, mit einer Zahl erweitert. Diese ist fortlaufend und bei Reset (alle Instanzen dieses Objektes müssen vernichtet sein) auch beginnend bei 1.. Diese Zahl stellt aber! nur sicher, dass dieser Name (Adresse zum Objekt) unikat ist. ------------------ 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 |
nadin1223 Mitglied Ing.
Beiträge: 949 Registriert: 29.03.2016
|
erstellt am: 26. Jan. 2021 16:37 <-- editieren / zitieren --> Unities abgeben: Nur für Lene wills lernen
Beispiel für ein Lösungsansatz mit Parallelstation ("Mit Bearbeitung starten, wenn voll") im Bild. Die Kommunikation der verwendeten Bausteine ist sehr wichtig. Ein Lösungsansatz für Einzelstation ist nicht immer auf eine Parallelstation übertragbar. 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 |
Lene wills lernen Mitglied
Beiträge: 22 Registriert: 23.12.2020 Plant Simulation Version 16
|
erstellt am: 26. Jan. 2021 17:28 <-- editieren / zitieren --> Unities abgeben:
Hallo Nadin, schön von dir zu lesen und vielen Dank noch einmal für diesen Ansatz! Leider liegt es nicht daran. Ich könnte mir vorstellen, dass es hakt, weil die Stationen in verschiedenen Unternetzwerken (Frames) stehen. Zumindest habe ich durch "Ausprobieren" in meinem Versuchsaufbau aufgrund solch einer Änderung den selben Fehler bewirkt. Könnte das sein? Bist du vielleicht selbst schon aufgrund verschiedener Netzwerke auf ähnliche Probleme gestoßen? Folgende Fehlermeldung erhalte ich: Fehler in Methode '.Models.FIT.Halle_Gesamtübersicht.M_AusStr' in Zeile '1': Der ref-Operator kann das Objekt 'V_Arbeitend' nicht finden. Ich habe schon versucht V_Arbeitend in das "Problem-Frame" zu kopieren. Das half aber leider auch nichts. Beste Grüße Lene
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
nadin1223 Mitglied Ing.
Beiträge: 949 Registriert: 29.03.2016
|
erstellt am: 26. Jan. 2021 20:28 <-- editieren / zitieren --> Unities abgeben: Nur für Lene wills lernen
Im Quellcode ist die Adresse zu V_Arbeitend current.&V_Arbeitend. current bedeutet: in dem Netzwerk, wo diese Methode ist. Dies ist ein relativer Verweis. Mit relativen Verweis, sucht die Station im gleichen Unternetzwerk, wo die Methode M_Ein bzw. M_Aus ist. Damit es die Variable V_Arbeitend findet, unabhängig davon, wo die Methode ist, wird die Adresse absolut angegeben. Absolute Adressen zu einem Objekt im Modell beginnen mit root (und für Objekte in der Klassenbibliothek mit "."). Root ist das oberste Netzwerk.
------------------ 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 |
Lene wills lernen Mitglied
Beiträge: 22 Registriert: 23.12.2020 Plant Simulation Version 16
|
erstellt am: 26. Jan. 2021 21:28 <-- editieren / zitieren --> Unities abgeben:
Das klang wirklich verständlich und vielversprechend, jedoch besteht weiterhin der gleiche Fehler. Vielleich können wir aber ein anderes Problem einfacher lösen. Zur Erklärung des Bildes: Der Puffer (Bestückung_SLM) wird aus vier verschiedenen Vorgängern bestückt und das Frame sollen auch vier verschiedene Teile verlassen. Dabei befinden sich die angelieferten Parts und Container (weil Baugruppen) je in zweifacher Ausfertigung in einem Kreislauf. Also z.B. 2x TeilA, 2x TeilB, 2x TeilC 2x TeilD. Die Teile A, B und C kommen dabei aufgrund kürzerer Bearbeitungszeiten ziemlich schnell wieder an diesem Punkt an, TeilD erst viel später. Zu TeilD wird noch ein TeilX angebaut, das in unbegrenzter Menge zur Verfügung steht und im Laufe des Prozeses wieder abgebaut wird. erst nach der Montage kommt TeilD+TeilX in die Parallelstation. Nun will ich umgehen, dass die Parallelstation mit der Kapazität 4 z.B. TeilA, TeilB, TeilC, TeilA gleichzeitig bearbeitet und dann ausgibt, weil diese bereits angekommen sind und TeilD noch im Umlauf ist. Wie kann ich dieses Problem lösen? Ich habe bereits waituntil- und if-Steuerungen, sowie den Sortierer erfolglos ausprobiert. Erzeugt werden die Teile aus jeweiligen Quellen mit Begrenzung der Anzahl auf 2. Auch hier habe ich schon verschieden Möglichkeiten versucht. Da die Dauer der Montage in AS_BR_BP_BJ zufallsverteilt (Dreiecksverteilung) stattfindet, kann ich die Teile nicht einfach im richtigen Abstand erzeugen lassen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lene wills lernen Mitglied
Beiträge: 22 Registriert: 23.12.2020 Plant Simulation Version 16
|
erstellt am: 26. Jan. 2021 21:29 <-- editieren / zitieren --> Unities abgeben:
|
nadin1223 Mitglied Ing.
Beiträge: 949 Registriert: 29.03.2016
|
erstellt am: 26. Jan. 2021 22:14 <-- editieren / zitieren --> Unities abgeben: Nur für Lene wills lernen
Simulationmodelle sind immer! ein Abbild eines realen / geplanten Prozesses. Was ist der Puffer in der realen Welt? Förderband, Wühlbox, verschiedene Bereitstellungsplätze .... Wie ist die Steuerung im Realen organisiert / geplant? MA trägt zu Station und wählt aus / Förderband befördert zu Station und lagert automatisch um /u.v.m...
------------------ 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 |
Lene wills lernen Mitglied
Beiträge: 22 Registriert: 23.12.2020 Plant Simulation Version 16
|
erstellt am: 26. Jan. 2021 22:30 <-- editieren / zitieren --> Unities abgeben:
Die Simulation beschreibt durch diese drei Bausteine eine Anlage, die vom Mitarbeiter mit verschiedenen Behältern bestückt (Puffer) wird um dann in der Montagestatiom als z. B. 3D Druck den Kundenauftrag auf eine Platte zu bringen. Die Behälter dienen nur der Materialzufuhr und werden nach dem Prozess, ebenso wie das fertige Produkt, von Mitarbeitern abtransportiert. Die abtransportierten Teile und Behälter erfahren Folgeprozesse, wie z. B. Entleerung, Reinigung,... Nun sollen die Auswirkungen simuliert werden, wenn alle Behälter doppelt vorhanden wären und die Anlage sofort wieder gerüstet werden kann, ohne auf die fertig gereinigten Behälter im Kreis zu warten. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lene wills lernen Mitglied
Beiträge: 22 Registriert: 23.12.2020 Plant Simulation Version 16
|
erstellt am: 26. Jan. 2021 22:33 <-- editieren / zitieren --> Unities abgeben:
Der Puffer dient hier dazu, dass die Behälter während des Vorgangs an die Anlage "gebunden" werden, bis sie Bearbeitung fertig ist und somit alles von der Paralellstation (dient der Kapazitätssteuerung und der Ausgabe aller vier Teile nach deren Fertigstellung) aus abtransportiert werden kann. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
nadin1223 Mitglied Ing.
Beiträge: 949 Registriert: 29.03.2016
|
erstellt am: 26. Jan. 2021 22:54 <-- editieren / zitieren --> Unities abgeben: Nur für Lene wills lernen
Zitat: beschreibt durch diese drei Bausteine eine Anlage, die vom Mitarbeiter mit verschiedenen Behältern bestückt (Puffer) wird
Zitat: Nun will ich umgehen, dass die Parallelstation mit der Kapazität 4 z.B. TeilA, TeilB, TeilC, TeilA gleichzeitig bearbeitet und dann ausgibt, weil diese bereits angekommen sind und TeilD noch im Umlauf ist.
Als eine Anlage hat eine Kapazität (Ist nach gut Glück bei dir gerade nach deinem Bild zu urteilen.).. Die Parallelstation bekommt das, was Puffer hat. Und Puffer ist der Eingang zu dieser Anlage. Also ist die Regel, die du suchst: belade den Puffer je eine Teile-Art. Was sind vor dem Puffer für Bausteine verbaut und wie lagern diese die Teile auf Puffer um (die Logik und deine Umsetzung)? ------------------ 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 |
Lene wills lernen Mitglied
Beiträge: 22 Registriert: 23.12.2020 Plant Simulation Version 16
|
erstellt am: 27. Jan. 2021 07:55 <-- editieren / zitieren --> Unities abgeben:
Genau, alles richtig. Ja, das wäre ein Ansatz. Da habe ich wohl zu spät angefangen, den Fehler beheben zu wollen. Eine If alle benötigten Teile im Puffer then suche die richtigen aus und gebe sie weiter hat nicht gekappt. Habe ich aber schon befürchtet, weil der Puffer ja nur je nach Warteschlange oder Stapel ausgeben kann. Dieser Lösungsansatz hier ganz unten hatte sich auch vielversprechend angehört: https://ww3.cad.de/foren/ubb/Forum262/HTML/001190.shtmlDie Teile A, B und C kommen von Puffern und werden in diesen bei der Initialisierung durch eine Quelle erzeugt und dann im Kreislauf erhalten. (Siehe Anhang) Das TeilD kommt von einer Montagestation, in der zwei Teile aufgeladen wurden, dem vorgeschaltet ist das selbe Prinzip wie bei den anderen Teilen mit Quelle und Übergang, dann rein in den Puffer um nur einen Ausgangsstrang zu haben. Die Montagestation wird über einen Puffer bestückt, in dem die Aufträge warten und über eine Lieferliste erzeugt werden. Der Ausgang aus der Parallelstation erfolgt an einen Puffer, der über BE-Attribut jedes Teil an einen anderen Nachfolger umlagert. Das Umlagern erfolgt in dieser Version an dieser Stelle durch direkte Verknüpfung mit einem Verbinder über verschiedene Frames. (In einer weiteren Version habe ich den selben Aufbau mit der Steuerung über Werker Simuliert. Hier würde aber das gleiche Problem Auftreten und die Werker würden die Teile in der falschen Reihenfolge an den Puffer bringen.)
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
nadin1223 Mitglied Ing.
Beiträge: 949 Registriert: 29.03.2016
|
erstellt am: 27. Jan. 2021 20:12 <-- editieren / zitieren --> Unities abgeben: Nur für Lene wills lernen
also paar Montagestationen und Puffer liefern mit Kante an diese Anlage. Jetzt stelle dir vor, du bist der jenige, welcher diesen Arbeitsprozess gestalten soll. Damit es einfach bleibt: ein MA bestückt nur diese eine Anlage. Deine Aufgabe: Für diesen MA eine Arbeitsanweisung formulieren. MA Arbeitsanweisung startet beim Schritt: Fertiges Teil hat Anlage verlassen. MA Arbeitsanweisung endet beim Schritt: Fertiges Teil hat Anlage verlassen. ------------------ 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 |
Lene wills lernen Mitglied
Beiträge: 22 Registriert: 23.12.2020 Plant Simulation Version 16
|
erstellt am: 27. Jan. 2021 20:49 <-- editieren / zitieren --> Unities abgeben:
Richtig! Ich verstehe nicht ganz, welche Antwort du erwartest, aber ich versuch es mal hiermit: Lieber Mitarbeiter, deine Aufgabe ist es, nach Fertigstellung des Bauteils dieses samt den drei Pulverbehältern zu entnehmen und zur Schleuse_In zu bringen. Dort holt dein Kollege die Behälter dann ab und reinigt sie. Währenddessen kannst du die Anlage bereits mit den drei doppelt vorhandenen Behältern aus den Lagerplätzen bestücken. dabei hilft dir ein anderer Kollege, weshalb es reicht, die Behälter nur vor der Anlage abzustellen. Die Bauplatte musst du vor der Bestückung mit dem dazugehörigen Behälter verbinden und den Zusammenbau der Anlage zuführen. Während in der Anlage der Auftrag auf den Zusammenbau kommt, müssen die Behälter selbstverständlich an der Anlage bleiben um Pulver aufzunehmen oder abzugeben. Ist die Anlage fertig, bringst du die Teile wieder zur Schleuse. Ist dein Kollege fertig mit der Reinigung der ersten Behälter, bringt er sie zu Schleuse_Out. Hole sie dort wieder ab. Das Bauteil nimmst du und bearbeitest es nach, erst dann kannst du die Platte, auf der sich das Bauteil befand, in den Kreislauf zurück schleusen und zu deren Lagerplatz bringen. Die übrigen Pulverbehälter kannst du direkt an die verschiedenen Lagerplätze verteilen. Ist die Anlage wieder fertig, dann hole die Pulverbehälter bitte aus den Lagern und bestücke die Anlage für den nächsten Auftrag damit. Die Bauplatte vereinst du dann wieder mit dem dafür vorgesehenen Behälter in der Vormontagestation. Ist dies erledigt, bringst du den Zusammenbau auch zur Anlage, bestückst diese und schaltest die Anlage ein. Nach Fertigstellung des Bauteils beförderst du wieder alles zur Schleuse. Danke!
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
nadin1223 Mitglied Ing.
Beiträge: 949 Registriert: 29.03.2016
|
erstellt am: 27. Jan. 2021 21:45 <-- editieren / zitieren --> Unities abgeben: Nur für Lene wills lernen
noch viel zu kompliziert Fertiges Teil hat Anlage verlassen. Entnehme TeilX aus Lager_ÜFB1_1. Wenn kein TeilX da, dann warte bis fertig. Bringe TeilX Lager_ÜFB1_l zu Anlage. Stelle auf Platz1 (Bestückung_SLM) ab. Bringe TeilZ von Bestückung_BR_mBP zu Bestückung_SLM. ... Starte die Anlage. Die Anlage schließt sich. Automatischer Beladeprozess wird gestartet. Warte bis in Anlage Entnahme_SLM beladen ist. Warte bis in Anlage Entnahme_SLM entladen ist. ... Fertiges Teil hat Anlage verlassen. ------------------ 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 |
Lene wills lernen Mitglied
Beiträge: 22 Registriert: 23.12.2020 Plant Simulation Version 16
|
erstellt am: 27. Jan. 2021 22:00 <-- editieren / zitieren --> Unities abgeben:
Nun verstehe ich worauf du hinaus wolltest. Die Prozesse in Anlehnung an die Programmiersprache darzustellen. Deine Auflistung der Aufgaben sieht nach einer Pull-Steuerung aus. Bei mir basiert alles auf der grundlegenden Push-Steuerung. D.h. wenn eine Aktivität abgeschlossen ist, sofort weiter zur nächster, statt zu warten bis es von der Folgestation gebraucht wird. Ich stelle mir die Umstellung als ziemlich zeitintensive und Fehlerbehaftete Aufgabe vor..
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
nadin1223 Mitglied Ing.
Beiträge: 949 Registriert: 29.03.2016
|
erstellt am: 27. Jan. 2021 23:14 <-- editieren / zitieren --> Unities abgeben: Nur für Lene wills lernen
Zitat: Bei mir basiert alles auf der grundlegenden Push-Steuerung. D.h. wenn eine Aktivität abgeschlossen ist, sofort weiter zur nächster, statt zu warten bis es von der Folgestation gebraucht wird.
und Zitat: Nun will ich umgehen, dass die Parallelstation mit der Kapazität 4 z.B. TeilA, TeilB, TeilC, TeilA gleichzeitig bearbeitet und dann ausgibt, weil diese bereits angekommen sind und TeilD noch im Umlauf ist.
passen nicht zusammen. zu Push / Pull allgemein: Station A liefert an Station B Push: Event beim Ausgang A sobald BE fertig: A lagere aus sobald Platz frei. Pull: Event beim Eingang B sobald Platz frei: A lagere aus sobald BE fertig. (oder: Event beim Ausgang A sobald BE fertig: A lagere aus sobald B dies braucht) Auf dieser Prozessebene ist es wirklich net die Welt Und Arbeitsanweisung deshalb, weil es i.d.r für IE dies einfacher ist, als die Event-Positionen und -Art sowie Prozesse zu identifizieren bzw. zu beschreiben.
------------------ 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 |
Lene wills lernen Mitglied
Beiträge: 22 Registriert: 23.12.2020 Plant Simulation Version 16
|
erstellt am: 27. Jan. 2021 23:23 <-- editieren / zitieren --> Unities abgeben:
Dankeschön für deine Erklärung der Prinzipien. In meiner Simulation werden die "Transporte" jedoch nicht über Programmierung angesteuert, sondern über die für mich derzeit noch einfachere Lösung der Ausgangssteuerung. All meine bisherigen Erungenschaften in SimTalk haben viel Zeit gekostet. Somit stelle ich mir vor, dass es doch ganz schön viel Zeit in Anspruch nehmen wird dies umzusetzen. Siehst du das ähnlich, oder ist die Umstellung mit wirklich einfachen Codes möglich? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lene wills lernen Mitglied
Beiträge: 22 Registriert: 23.12.2020 Plant Simulation Version 16
|
erstellt am: 27. Jan. 2021 23:24 <-- editieren / zitieren --> Unities abgeben:
|
nadin1223 Mitglied Ing.
Beiträge: 949 Registriert: 29.03.2016
|
erstellt am: 27. Jan. 2021 23:44 <-- editieren / zitieren --> Unities abgeben: Nur für Lene wills lernen
Zitat: Nun will ich umgehen, dass die Parallelstation mit der Kapazität 4 z.B. TeilA, TeilB, TeilC, TeilA gleichzeitig bearbeitet und dann ausgibt, weil diese bereits angekommen sind und TeilD noch im Umlauf ist.
Ob du diese Logik brauchst..--> Das weiß ich net. Wie lange du hierzu brauchst.. --> Ich habe keine Ahnung Aber für diese Logik brauchst du SimTalk. ------------------ 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 |
Lene wills lernen Mitglied
Beiträge: 22 Registriert: 23.12.2020 Plant Simulation Version 16
|
erstellt am: 28. Jan. 2021 07:57 <-- editieren / zitieren --> Unities abgeben:
Hallo Nadin, vielen Dank für deine allzeit wertschöpfenden Antworten! Natürlich wäre es sehr schön, wenn das funktionieren würde. Ich muss sehen, ob ich das zeitlich noch hinbekomme. Aber sollte ich es hinkriegen, möchte ich mit dem dabei dazugelernten auf jeden Fall auch noch den Fehler in der Reihenfolgesteuerung knacken.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|