Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  TM - Plant Simulation
  BEs in Quelle nur erzeugen, wenn Bedingung erfüllt ist...?!

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:  BEs in Quelle nur erzeugen, wenn Bedingung erfüllt ist...?! (1786 mal gelesen)
Bachelor96
Mitglied


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

Beiträge: 3
Registriert: 25.08.2014

erstellt am: 25. Aug. 2014 13:42    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,

ihr seid meine Rettung 

Ich bin wirklich ratlos und habe schon alle Foren nach einer Lösung durchsucht, bin allerdings nicht fündig geworden. Dabei erscheint die Lösung meines Problems gar nicht so schwer...

Folgende Thematik:
Ich habe verschiedene Typen von BEs (26 verschiedene Typen), die ich je nach BE-Name auf die dazugehörige Bearbeitungsstation umlagere. Das habe ich mit einer Methode in der Ausgangssteuerung der Quelle mit dem Befehl "inspect @.Name ..." realisiert und das funktioniert auch. (Info: Die BEs werden in der Quelle mit der BE-Auswahl "Reihenfolge" aus einer Tabelle gelesen und erzeugt.)
Jetzt kommt allerdings eine Bedingung ins Spiel: Insgesamt dürfen nur 5 BEs auf den Maschinen nach der Quelle zur selben Zeit bearbeitet werden. Erst nachdem eines der 5 BEs auf der dazugehörigen Maschine fertig bearbeitet wurde, kann ein neues beliebiges BE "nachrutschen". Und hier komme ich jetzt nicht weiter.

Mein Ziel ist es, dass die Quelle nur dann das nächste BE entsprechend der Reihenfolge aus meiner Auswahl-Tabelle erzeugt, wenn die Summe (Maschine1.anzahlBEs + Maschine2.anzahlBEs + ... + Maschine26.anzahlBEs) < 5. Das erzeugte BE könnte dann sofort nach Erstellung in eine Maschine "nachrutschen". Habt ihr eine Idee, wie das in PlantSim umzusetzen ist?

Aktuell habe ich das Problem nicht zufriedenstellend gelöst. Ich habe die oben erwähnte Abfrage nach der Summe der .anzahlBEs auf den Maschinen in der Ausgangssteuerung der Quelle mit Hilfe von "waituntil (Maschine1.anzahlBEs + Maschine2.anzahlBEs + ... + Maschine26.anzahlBEs) < 5" realisiert. Auf diese Weise warten einige BEs allerdings in der Quelle, bis sie "nachrutschen" können. Das ist aber nicht zweckmäßig, da dadurch die Durchlaufzeit verfälscht wird. Die Zeit, in der das BE in der Quelle wartet, darf nicht zur Durchlaufzeit gehören.

Ich hoffe ihr könnt mir weiter helfen, sonst bin ich aufgeschmissen 

Beste Grüße,
Bachelor96

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

Bon Simul
Mitglied
Simulant


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

Beiträge: 1250
Registriert: 08.08.2011

Plant Simulation 10.1, 11 ff Professional

erstellt am: 26. Aug. 2014 09: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 Nur für Bachelor96 10 Unities + Antwort hilfreich

Die Quelle erzeugt "Erzeugen"-Ereignisse im Ereignisverwalter. Wenn der Zeitpunkt gekommen ist, wird das Teil erzeugt. Sie können in diesen Mechanismus keine Bedingung einfügen.

Für Ihr Problem gibt es mindestens zwei Lösungen:
a) erzeugen Sie Ihre BEs mit SimTalk, wenn Sie diese brauchen.

b) geben Sie den Teilen eine Korrektur-Zeit mit, die Sie am Ende von der Durchlaufzeit abziehen. Die können Sie in der Ausgangssteuerung der Quelle berechnen (ereignisverwalter.zeit-@.erzeugt).

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

Bachelor96
Mitglied


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

Beiträge: 3
Registriert: 25.08.2014

erstellt am: 26. Aug. 2014 09: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

Erst einmal vielen vielen Dank für die Antwort! 

Leider bin ich noch nicht allzu erfahren in Plant...daher weiß ich leider nicht, wie ich beide Möglichkeiten genau umsetzen kann.


Zu a):

Wie müsste eine entsprechende Methode aussehen? Wie schaffe ich es, dass er aus meiner Tabelle die BEs nacheinander einliest und dann entsprechend der Tabelle erzeugt, wenn meine Kapazitätsbedingung erfüllt ist!?

Und, wo rufe ich diese auf? In der Eingangssteuerung der Quelle?


Zu b):

Ich schreibe also in die Methode "... then @.umlagern(Maschine1) and  ???=ereignisverwalter.zeit-@erzeugt"? Unter welchem Namen speichere ich die Korrekturzeit denn ab? Der Name muss ja später wieder genau diesem Teil zugeordnet werden können?!

Und wo und wie hinterlege ich, dass die Zeit dann von der Durchlaufzeit dieses Teils abgezogen wird bevor es in der Senke vernichtet wird!?


Sorry, dass ich nochmal nachfragen muss 

Viele Grüße,
Bachelor96

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



Maschinenbauingenieur (m/w/d) Konstruktion
Du möchtest deine Karriereentwicklung nicht dem Zufall überlassen? Dann gehe mit uns gezielt den nächsten Schritt. Dazu bringen wir bei FERCHAU als eine der führenden europäischen Plattformen für Technologie-Dienstleistungen die smartesten und innovativsten Köpfe mit Unternehmen verschiedenster Branchen zusammen. Wir suchen dich: als ambitionierte:n Kolleg:in, der:die wie wir Technologien auf die nächste Stufe bringen möchte....
Anzeige ansehenMaschinenbau
Bon Simul
Mitglied
Simulant


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

Beiträge: 1250
Registriert: 08.08.2011

Plant Simulation 10.1, 11 ff Professional

erstellt am: 01. Sep. 2014 01:42    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 Bachelor96 10 Unities + Antwort hilfreich

zu a)

Sie könnten z.B.einen Puffer-Baustein anstatt der Quelle verwenden. Mit einer init-Methode erzeugen Sie ein erstes Teil im Puffer (siehe Hilfe: erzeugen). In der Ausgangssteuerung (Heck) der Maschine können Sie dann jeweils das nächste Teil im Puffer erzeugen.

Für das Auslesen der Teile aus der Tabelle könnten Sie eine globale Variable verwenden. Der Zugriff auf die Tabellen-Zellen erfolgt mit Tabelle[spalte,zeile].

zu b) Sie könnten ein benutzerdefiniertes Attribut im BE in der Klassenbibliothek anlegen (z.B. durchLaufzeitStart), damit haben Sie dann die Zuordnung zum Teil. Die Zuweisung müsste nach @.umlagern passieren (Quelle - Ausganssteuerung).
In der Senke müssten Sie dann die Durchlaufzeit für jedes Teil berechnen (z.B. ereignisverwalter.zeit-@.durchlaufZeitStart) und daraus einen Mittelwert bilden.

--> dazu könnten Sie z.B. die Durchlaufzeiten der einzelnen Teile in eine Tabelle schreiben (siehe Hilfe schreibeZeile, yDim)
Die Tabelle selbst besitzt eine Methode zur Berechnung des Mittelswertes. Ein gutter Platz dafür ist die endSim-Methode.

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