Autor
|
Thema: Wieder Mal.. Je nach BE Attribut mit Werker umladen (2697 mal gelesen)
|
Leibchen Mitglied Student

 Beiträge: 29 Registriert: 07.02.2014
|
erstellt am: 13. Feb. 2014 14:21 <-- editieren / zitieren --> Unities abgeben:         
Hallo ihr Lieben..... Folgende Situation. Ich habe 6 unterschiedliche BE's die ich durch meine Anlage schleuse. Ursprünglich wollte ich das Ganze mittels Arbeitsplan machen (was auch eig das Schönste wäre) und habe mich da an der Hilfe entlanggehangelt. Problem dabei war dann aber, dass sich die Teile gebeamt haben und ich auch jede Förderstrecke mit in den Arbeitsplan übernehmen musste. Gibt es da einen Trick das entsprechen anzupassen? Da die Teile eben nicht alle über die selben Maschinen laufen werden sie an der Position x vom Werker entsprechend verteilt und bearbeitet. Da ich das mit dem Arbeitsplan nicht hinbekommen habe (siehe oben) habe ich das Bsp von Bangsow genommen und versucht auf meine Anforderungen anzupassen. Müsste dann entsprechend bei jeder Station eine If.. then.. Bedingung für jedes BE machen. Habe es jetzt fürs erste BE mal probiert und bekomme aber eine Fehlermeldung. Anbei ein Screenshot. Ich vermute das es für euch eine Kleinigkeit ist. Ich habe bisher leider nur sehr viel mit VBA programmiert und bin mir mit SimTalk noch mehr als nur unsicher.... Danke euch! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Leibchen Mitglied Student

 Beiträge: 29 Registriert: 07.02.2014
|
erstellt am: 13. Feb. 2014 14:43 <-- editieren / zitieren --> Unities abgeben:         
Ich schon wieder  Ok... das untere mit der If... then... hab ich gelöst... Musste nur das Materialfluss entfernen.... Falls ihr ne Idee zu der Geschichte mit dem Arbeitsplan habt würde mich freuen  Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bon Simul Mitglied Simulant
   
 Beiträge: 1250 Registriert: 08.08.2011 Plant Simulation 10.1, 11 ff Professional
|
erstellt am: 13. Feb. 2014 18:24 <-- editieren / zitieren --> Unities abgeben:          Nur für Leibchen
Für den Arbeitsplan könnten Sie eine verschachtelte Tabelle verwenden. Fügen Sie eine Tabelle in das Netzwerk ein und lassen Sie den Zeilenindex anzeigen. Tragen Sie in den Zeilenindex die Namen der BEs ein. Formatieren Sie die erste Spalte als Datentyp table. Formatieren Sie die Subtabelle: erste Spalte object. Tragen Sie etwas in die Haupttabelle in die Spalte mit dem Datentyp table und drücken Sie dann F2 (Subtabelle öffnet sich). Tragen Sie hier den Arbeitsplan als Abfolge von Maschinen ein. Legen Sie in allen BEs ein Attribut op (integer, Anfangswert 1) an.
In der Ausgangssteuerung der Maschinen erhöhen Sie die op der Teile um eins und lesen das nächste Ziel aus dem Arbeitsplan:
Code:
@.op:=@.op+1; @.zielort:=arbeitsplan[1,@.name][1,@.op];
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Leibchen Mitglied Student

 Beiträge: 29 Registriert: 07.02.2014
|
erstellt am: 13. Feb. 2014 18:33 <-- editieren / zitieren --> Unities abgeben:         
Hallo Bon Simul, vielen Dank für die Antwort  Muss hier an der Stelle auch mal ein Kompliment aussprechen, dass man zu fast jeder Suche einen Beitrag von dir findet  Ich zeige hier nochmal wie ich es mal gemacht hatte (mit der Hilfe). Denke das ist ein sehr ähnlicher Ansatz. Die Ausgangssteuerung dann in allen Stationen einfügen. Das hat dann aber zu 2 Problemen geführt: 1. Jeder Förderstrecke musste mit in den AP 2. Das Tragen durch Werker ist weggefallen, da sich die Teile einfach gebeamt haben. Grüße aus Mainz Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bon Simul Mitglied Simulant
   
 Beiträge: 1250 Registriert: 08.08.2011 Plant Simulation 10.1, 11 ff Professional
|
erstellt am: 13. Feb. 2014 18:45 <-- editieren / zitieren --> Unities abgeben:          Nur für Leibchen
Sie können das denke ich gut kombinieren mit der Programmierung aus Ihrem ersten Beitrag; einfach nur das Attribut @.zielort auf die nächste Station im Arbeitspan setzen und die OP hochsetzen. In dem Fall ruft @.umlagern den Werker (Ausgangsverhalten Teil wegtragen). Ich würde dann nur die Stationen in den Arbeitsplan aufnehmen, die durch den Werker beschickt werden. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Leibchen Mitglied Student

 Beiträge: 29 Registriert: 07.02.2014
|
erstellt am: 13. Feb. 2014 19:01 <-- editieren / zitieren --> Unities abgeben:         
|
Leibchen Mitglied Student

 Beiträge: 29 Registriert: 07.02.2014
|
erstellt am: 17. Feb. 2014 12:26 <-- editieren / zitieren --> Unities abgeben:         
Hallo, ich habe es umgesetzt bekommen, habe aber eine Verständnisfrage. Einfach gesagt... 3 Mal die "selbe Steuerung" mit minimalsten Modifikationen und dabei bekomme ich 3 unterschiedlichste Ergebnisse... Vlt kann mich jemand aufklären  Wenn ich mit der Methode als seperates Modul arbeite und Heck aktiviere, bekomme ich die Fehlermeldung "Kein gültiges Ziel", negiere ich die Frage betreffs anhalten der Simulation erreicht das BE sein gewünschtes Ziel. Aktiviere ich Bug, überspringt das BE eine Station, also wird "Position....." doppelt hochgezählt. Lege ich das Ganze in einer "self.OnExit" Steuerung ab funktioniert es wunderbar. In erster Linie bin ich froh das es funktioniert, würde mich aber trotzdem interessieren warum das so ist, falls es nicht zu viel Aufwand ist. Danke und eine gute Woche euch allen!!
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bon Simul Mitglied Simulant
   
 Beiträge: 1250 Registriert: 08.08.2011 Plant Simulation 10.1, 11 ff Professional
|
erstellt am: 17. Feb. 2014 21:54 <-- editieren / zitieren --> Unities abgeben:          Nur für Leibchen
Hecksteuerung: die wird erst aufgerufen, wenn das Teil die Maschine schon verlassen hat. In Ihrem Fall wird dann das Ziel aus dem Tab Ausgangsverhalten ausgelesen. Wenn da nichts vernünftiges steht, kommt es zur Fehlermeldung. Warum es als externe Methode nicht richtig funktioniert, kann ich Ihnen auch nicht sagen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Leibchen Mitglied Student

 Beiträge: 29 Registriert: 07.02.2014
|
erstellt am: 20. Feb. 2014 15:13 <-- editieren / zitieren --> Unities abgeben:         
Ich habe das Gefühl das ich langsam den Verstand verliere.... -.- Habe festgestellt das ich mich selbst betrogen habe und die Steuerung in nur einer Station eingesetzt hatte. Nachdem ich Sie jetzt überall einsetzen wollte ist es wieder schief gegangen. Ich habe den Eindruck die Steuerung wird 2Mal ausgeführt. Die BE's kommen mit Position 2 in die Station. Habe den Haltepunkt gesetzt. Wie man dann sieht wird es auf 3 gesetzt und das richtige Ziel (Pressen) eingetragen. Drücke ich dann auf Einzelschritt zählt es auf 4 hoch und es geht zur übernächsten Station. Bin ich einfach nur doof, oder werde ich hier auf die Schippe genommen?? Ich dachte eig, dass ich SimTalk langsam aber sicher halbwegs verstanden hätte Mein Gefühl hat mich nicht getäuscht. Die Methode wird 2Mal hintereinander ausgeführt.... aber warum ? [Diese Nachricht wurde von Leibchen am 20. Feb. 2014 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Leibchen Mitglied Student

 Beiträge: 29 Registriert: 07.02.2014
|
erstellt am: 20. Feb. 2014 17:45 <-- editieren / zitieren --> Unities abgeben:         
Jetzt benutze ich die Steuerung wie im Screenshot als Hecksteuerung. In der Konsole kommt die Fehlermeldung "Sie haben kein gültiges Ziel/BE-Ziel für die Trageoperation des BEs MU '.BEs.Flipper_Boden:5' eingetragen." aber geht trotzdem direkt weiter und genau so wie es eig soll.... Das "Problem" konnte ich auch beseitigen indem ich am Arbeitsplatz eine Aufladezeit gesetzt habe. Ich weiss nicht genau warum, aber es funktioniert [Diese Nachricht wurde von Leibchen am 20. Feb. 2014 editiert.] [Diese Nachricht wurde von Leibchen am 20. Feb. 2014 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bon Simul Mitglied Simulant
   
 Beiträge: 1250 Registriert: 08.08.2011 Plant Simulation 10.1, 11 ff Professional
|
erstellt am: 21. Feb. 2014 10:15 <-- editieren / zitieren --> Unities abgeben:          Nur für Leibchen
kleiner Nachtrag zu umlagern: umlagern wird hier immer zwei mal aufgerufen. Beim ersten mal wird false zurückgegeben (Werker wird gerufen) und beim zweiten Mal (Umlagerung auf den Werker) wird true zurückgegeben. In Ihrem Fall müssten Sie das Hochzählen der Position im Arbeitsplan abhängig machen vom Rückgabewert der umlagern Methode:
Code:
if @.umlagern=true then @.positionImArbeitsplan:=@.positionImArbeitsPlan+1; end;
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |