Hot News:

Unser Angebot:

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

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:  Sortierer (1030 mal gelesen)
Micha80
Mitglied
Student


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

Beiträge: 27
Registriert: 10.11.2004

erstellt am: 09. Dez. 2004 13:55    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!
Wieder habe ich ein Problemchen...
Ich versuche in einem Sortierer die Fördergüter per Code zu sortieren nach gewissen Kriterien z.B.Bearbeitungszeit. Wie kann ich herausfinden welche Teile sich momentan im Sortierer befinden?
dacht mir das so

for x to y
.bes.palette.kindnr(x)...
--Sortieralgorithmus...
next

weiß aber nicht wie ich x wählen soll, da sich im Sortierer evtl. nur be.kindnr1 und kindnr9 aufhalten aber nicht 2-8. In VB wäre es so etwas wie eine "for each objekt in Sortierer", aber emplant kennt das nicht.

Danke für jede Hilfe!

Gruß
Micha

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


Ex-Mitglied

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

Hallo Micha80,

Schau mal in der Hilfe unter "Methoden für den Inhalt der Materialflußbausteine".

Dort ist mit einem kleinen Beispiel beschrieben, wie Du den Inhalt
z.B. eines Sortierers in eine Tabelle schreiben kannst.

anbei eine Schleife, die Dir die Werte aus der Tabelle ausliest:

i  : integer;
obj : object;
.
.
.
for i:=1 to tabelle.xdim loop

obj:=tabelle[i,1];

.. sortieralgorithmus

next;

überprüf nochmal beim sotierer ob die be´s in die Tabellenspalten (x)
oder Tabellenzeilen (y) geschrieben werden. Obiges Beispiel liest die Spalten aus. Wenn andersherum dann wird tabelle.xdim zu tabelle.ydim und tabelle[i,1] zu tabelle[1,i];

Gruß


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

Micha80
Mitglied
Student


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

Beiträge: 27
Registriert: 10.11.2004

erstellt am: 10. Dez. 2004 14:21    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

Yiep, genau das ist das was ich suche!!!!
bis auf eine Kleinigkeit: es wird zwar nun richtig sortiert aber beim Umlagern kommt es zur Fehlermeldung „ein VOID kann keine Methode ‚umlagern’ empfangen.“ Wie kommt es dazu? Liegt es am Bug/Heck Sensor?

…noch was ist mir als Anfänger von Simtalk aufgefallen - man kann keine „globalen“ Arrays wie in anderen Programmiersprachen erzeugen, ist das richtig ?(man muss also generell den Umweg über Tabellen machen; in der Hilfe kam ich bei „Array“ auf "sendeNachricht an" und das ist was total anderes)?

Danke&Sorry für die vielen Fragen!

Michi

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


Ex-Mitglied

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

Hallo Micha80,

Diese Meldung erscheint, wenn Du z.B. in der Ausgangsteuerung (Methode)
versuchst ein BE umzulagern, daß nicht mehr auf dem Baustein liegt sondern schon umglagert wurde.

Wenn in der Ausgangssteuerung eine Methode eingetragen ist und der Sensor auf "BUG" steht, muß die Methode das BE selber umlagern (durch @.umlagern).

Wenn der Sensor auf "HECK" steht-dann nicht!!, d.h. wenn in der
Methode noch "@.umlagern" steht, dann wird das aktuelle Be  (@) nun nicht mehr auf dem Baustein "gefunden" und es kommt zu der entsprechenden Meldung

Von der Funkionalität sind die sog. Arrays und Tabellen/Listen/Karteien ähnlich und werden in eM-Plant zum globalen Datenzugriff verwendet.

Du kannst aber in der Methode auch lokale Tabellen (arrays)
anlegen die genauso aufgerufen werden wie die globalen tabellen tabelle[x,y].

Ein praktischer Aspekt ist,daß Du den (globalen) Tabellen-Objektinhalt immer auch manuell direkt editieren kannst z.B. EXCEL-Werte einfügen.

"sendeNchricht an" (engl. sendmessage) ist eine Funktion um mit den 3D-Objekten in eM-Plant zu kommunizieren also auch Arrays im 3D-Bereich mit Werten zu belegen und hat unmittelbar nichts mit den Tabellenstrukturen (s.o.) zu tun.

Gruß

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

Micha80
Mitglied
Student


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

Beiträge: 27
Registriert: 10.11.2004

erstellt am: 19. Dez. 2004 23:39    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 & sorry für verspätete Rückmeldung!

Der Sensor steht auf BUG aber es kommt komischerweise trotzdem zur Fehlermeldung. Kann es sein das eMPlant das Fördergut weiterleitet oder den Aufruf abschließt, bevor meine Schleifen durchlaufen sind? Das Teil befindet sich aber noch im Sortierer (wurde also noch nicht umgelagert, wäre aber im Prinzip egal, da man den Bes...kindnr() Befehl aufrufen kann wo man will).
Bloß das Programm "tut so als wäre es verschwunden".

Bin total ratlos!

Micha

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


Ex-Mitglied

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

Hallo Micha80,

komisch, so ein Phänomen hatte auch keyfa.

Ich habe mal die Sache mit kindnr(i) in einem kleinen Modell
nachvollzogen.

Bei kindnr mußt Du auf folgendes achten:
Sobald ein Be (z.B. per Senke) Dein Modell verläßt oder ein neues Be (z.B. Quelle) in Deinem Modell erzeugt wird, wird die Anzahl
der "Kinder" neu bestimmt und damit auch die kindnr neu zugeordnet !

Anbei eine kleine Methode die Du mal als Eingangssteuerung Deines Sortierers benutzen kannst um  zu verdeutlichen wie die kindnr-Zuordnung sich dynamisch verändert.

is
i :integer;
do
print;
for i:=1 to .bes.fördergut.anzahlkinder loop
print i,chr(9),.bes.fördergut.kindnr(i);
next;
end;

Hiermit kannst Du auch ueberprüfen wo das Teil geblieben ist, denn wenn z.B. nur noch 6 Be´s im System sind, gibt es kein kindnr(7) mehr.

Gruß

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

Micha80
Mitglied
Student


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

Beiträge: 27
Registriert: 10.11.2004

erstellt am: 22. Dez. 2004 14:36    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,

Ich glaube gerade eine mystische Eingebung gehabt zu haben...
habe es verstanden!!!

Kann man um das VOID Prob zu umgehen, die Methode des Sortierers immer aufrufen bzw zu bestimmten Zeiten und nicht erst wenn ein neues Teil rein bzw rausgeht?

Danke! DANKE DANKE! :-)))

Micha

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


Ex-Mitglied

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

Hallo Micha80,

bin auch erst darauf gekommen, nachdem ich ein kleines Modell hierzu geschrieben habe!
ist aber - glaube ich - schon logisch oder ?

Nun zu Deiner Frage.

Klar geht das.

Hierzu gibt es (unter "Informationsbausteinen") den sog. Generator-Baustein.

Den Generator kannst Du so konfigurieren, daß er immer zu einem vorgegebenen Zeitinterval (Takt) Deine Methode aufruft. Näheres siehe eM-Plant-Hilfe.


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