Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  TM - Plant Simulation
  Sortierkriterium

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:  Sortierkriterium (1521 mal gelesen)
optimierer
Mitglied


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

Beiträge: 4
Registriert: 28.12.2004

erstellt am: 28. Dez. 2004 13:04    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 "Mit-Simulatoren",

arbeite z.Z. an der Abbildung einer Werkstattfertigung.

Diese soll verschiedene Auftragstypen auf mehreren Einzelstationen bearbeiten. Vor dieser Bearbeitung soll eine Sortierung der BEs nach benutzerdefinierten Attributen (z.B. Prio, Zufall) erfolgen.

Ich habe nun eine Methode Namens "Sortierkriterium" geschrieben, die folgenden Quellcode enthält (vereinfachte Version):

: real
is
do
result := @.Sortierattribut;
end;

Diese Methode rufe ich in den Sortieren beim Punkt "Sortierkritierium" --> "Methode" und Auswahl von "Sortierkritierum" auf.

Wie muss nun die Ausgangssteuerung meines Sortierers aussehen, dass er genau das BE umlagert, was laut Methode als nächstes umzulagern ist?
Sobald ich schreibe "@.umlagern" wird für den Fall, dass das erste BE umgelagert wird, dieses - also das aufrufende - BE umgelagert. Für alle weiteren Fälle wird das "richtige" BE umgelagert. Wie schaffe ich es, dass auch bei der ersten Sortierung das richtige BE umgelagert wird?

Herzlichen Dank für eure Hilfe!!!

Viele Grüße und noch einen wunderschönen Tag,

optimierer

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


Ex-Mitglied

erstellt am: 28. Dez. 2004 13:52    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hallo Optimierer,

Stell mal folgendes am Sortierer ein (Reiter "Attribut"):

Sortierkriterium: "Be-Eigenschaft" und daneben "freies Attribut"
                                  und darunter <Dein Attributname>

und raaauuuus mit den Umlagerungs-Methoden in der Ausgangssteuerung!
Das Umlagern kann das eM-Plant viel besser als wir Anwender.

Das mit dem Umlagern (@) erklärt sich, wie folgt:

@ bezeichnet ja das aktuelle BE auf einer Station.
Da der Sortierer in dem Sinn keinen Zeitverbrauch (außer Zyklus-/Erholzeit, die wahrscheinlich = 0 sind) hat, wird das 1. Be, das den Sortierer betritt, sofort (nach 0 Sek) die Ausgangssteuerung aufrufen,
-sonst erst nach der jeweiligen Bearbeitungszeit-.

Gruß

------------------
DER SIMULATOR 

optimierer
Mitglied


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

Beiträge: 4
Registriert: 28.12.2004

erstellt am: 28. Dez. 2004 14:12    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 Simulator,

leider kann ich die Ausgangssteuerung nicht löschen, da ich dort noch weitere Anweisungen stehen habe.

Weiterhin kann ich bei den Sortierern nicht als Sortierkriterium das freie Attribut wählen, da ich in der Methode Sortierkriterium weitere wichtige Anweisungen für andere Sortieralgorhytmen stehen habe.

Die Ausgangssteuerung der Sortierer wird erst dann ausgeführt, wenn eine bestimmte Anzahl an BEs von der Quelle generiert wurde. Anschließend beendet die Quelle die Generierung und die Sortierung der z.B. ersten 10 Aufträge soll abgearbeitet werden.
Wie kann ich für diesen Fall sicherstellen, dass bereits das erste BE nach der Sortierung umgelagert wird.

Wenn ich in der Ausgangssteuerungsmethode der Sortierer schreibe "@.umlagern" wird im ersten Fall das aufrufende - also erste BE, was den Sortierer betritt - und anschließend die richtigen BEs umgelagert.

Ganz lieben Dank für Eure Hilfe!!!

Beste Grüße,

optimierer

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


Ex-Mitglied

erstellt am: 28. Dez. 2004 15:59    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hallo Optimierer,

ich habe nichts von Löschen der Ausgangssteuerung geschrieben
sondern von den Umlagerungsmethoden - also @.umlagern- in den Ausgangssteuerungen.

Wenn Du das Kontrollkästchen an der Ausgangssteuerung auf "HECK" stellst, brauchst Du normalerweise kein @.umlagern mehr, weil eM-Plant dann selbstständig umlagert. Du sparst Dir viel Zeit wenn Du einige Aufgaben auch eM-Plant überläßt.

Und glaube mir,das "Umlagern" von BE´s beherrscht das System perfekt! : - );

Nun zu dem Fuellstand des Sortierers S:

Dies kannst Du eleganter mit 2 Befehlen in der Eingangs/Ausgangssteuerung erledigen.

Eingangssteuerung:

if ?.anzahlbes<Fuellstand then
?.ausganggesperrt:=true;
else
?.ausganggesperrt:=false;
end;

Ausgangssteuerung:
  ?.ausganggesperrt:=true;

Jetzt lagert der Sortierer immer erst ab einem vorgegebenen Füllstand um; somit wird auch das 1. "eingetretene" Be in der vorgegebenen Sortierreihenfolge umgelagert.


In der INIT- oder RESET-Methode (im Netzwerk) noch

deletemovables;
sortierer.ausganggesperrt:=true;

damit zu Beginn der Simulation die BE´s geloescht werden und der Sortiererausgang zu ist.

Jetzt muß nur noch der Sortieralgorithmus gecheckt werden und schon können wir uns auf Silvester einstimmen.

Gruß

------------------
DER SIMULATOR 

optimierer
Mitglied


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

Beiträge: 4
Registriert: 28.12.2004

erstellt am: 29. Dez. 2004 10:05    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 Simulator,

Danke für Deine wiederholt schnelle Hilfe.

Ich habe Deine Tipps umgesetzt und es funktioniert fast einwandfrei. Einzigstes Problem:

Wenn der Sortierer erst nach dem Eingang von 10 BEs beginnen soll umzulagern (z.B. absteigend nach ID der BEs, d.h. das 10. als Erstes) wird leider zu Erst das 9. und anschließend das 10. BE umgelagert.

Habe bereits sowohl bei der Eingangs- als auch Ausgangssteuerung folgenden Befehl eingebaut: ?.Sortieren in der Hoffnung, dass der jeweilige Sortierer kurz vor der ersten Umlagerung nochmals sortiert. Leider ohne Erfolg. Reihenfolge ist dann so: 9, 10, 8, 7, 6, 5, ...

Wie kann ich gewährleisten, dass auch das letzte BE, das den Sortierer betritt, bei der ersten Sortierung berücksichtigt wird?

Ganz herzlichen Dank!!!

Wünsche allen Forum-Beteiligten einen guten Start in 2005.

Viele Grüße,

optimierer

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


Ex-Mitglied

erstellt am: 29. Dez. 2004 14:13    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hallo Optimierer,

hmmm interessant !,
ist das nun korrekt bzw. nachvollziehbar, wie sich der Sortierer verhält oder nicht ?

auf alle Fälle wird die Eingangsmethode, die den Ausgang öffnet bzw. schließt vor dem Sortieren ausgeführt.

Ich habe hier zu folgende Erklärung (nach einigem Nachdenken)

Bis dato haben wir immer von einem "Betreten" des Sortierers gesprochen. Die Eingangsteuerung wird aber in diesem Fall ausgeführt sobald ein BE mit seiner vorderen Spitze "anklopft" d.h. noch nicht tatsächlich umgelagert und auf dem Sortierer liegt. Deshalb wird das 10. Teil beim Sortiervorgang nicht berücksichtigt.

Nun zur Lösung.

Was Du machen mußt ist die Eingangsmethode etwas zu verzögern, sodaß sie erst ausgeführt wird nachdem das Teil auf dem Sortierer liegt.

D.h. wenn Du die Ausführung der Eingangsmethode leicht verzögerst indem Du ein "wait(0.0001);" vor die  1. Anweisung  in der Eingangssteuerung schreibst, dann wird erst sortiert und dann der Ausgang geöffnet.

Gruß

------------------
DER SIMULATOR 

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