Autor
|
Thema: Regalfächer (856 mal gelesen)
|
biene44 Mitglied Student
Beiträge: 13 Registriert: 30.06.2008
|
erstellt am: 05. Jul. 2008 11:32 <-- editieren / zitieren --> Unities abgeben:
hallo, ich muss regalfächer darstellen...habe mir überlegt, dass ich das mit puffern mache. in den fächern soll jeweils ein bestimmtes be liegen. be hat verschiedene attribute wie name, nummer, gewicht, usw. jetzt möchte ich jedem puffer ein bestimmtes be zu ordnen. wie mach ich das? habe eine tabelle in der die bes mit ihren verschiedenen attributen hinterlegt sind. hilfe! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
renzo Mitglied
Beiträge: 6 Registriert: 14.06.2008
|
erstellt am: 07. Jul. 2008 09:43 <-- editieren / zitieren --> Unities abgeben: Nur für biene44
Hallo biene44, kannst du nochmal ein bisschen genauer erklären, was du machen willst? Also so wie ich dich verstanden hab willst du ein "Regal" mit mehreren FIFO Fächern modelieren? Dabei soll jedes Fach quasi durch einen Puffer modeliert werden. Und in jedem Fach liegen jeweils nur BEs von einer Sorte? Also quasi so: |BE1 BE1 BE1 BE1| -> Entnahme ----------------- |BE2 BE2 BE2 BE2| -> Entnahme ----------------- |BE3 BE3 BE3 BE3| -> Entnahme ----------------- | | Soll das Regal immer komplett gefüllt sein? Dann wäre es wahrscheinlich am einfachsten, wenn beim verlassen des Puffers eine Methode aufgerufen wird, die ein neues BE im Puffer erzeugt. Falls das Regal in zeitlichen Abständen befüllt werden soll würde ich einen Generator einsetzen und die oben genannte Methode von diesem Generator aufrufen lassen. Meld dich einfach falls was unklar sein sollte oder ich das Problem falsch verstanden hab Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
biene44 Mitglied Student
Beiträge: 13 Registriert: 30.06.2008
|
erstellt am: 07. Jul. 2008 11:58 <-- editieren / zitieren --> Unities abgeben:
Hallo, danke für die Antwort! du hast alles richtig verstanden. kann mit einer methode die "Regale" befüllen. werden dann jeweils auf eine einzelstation umgelagert...soweit so gut...liegen also bereit. das problem was sich nun ergibt ist folgendes: ich habe eine liste (Auftragsliste) mit auftragsnummern und da steht drin wieviele medikamente aus den fächern entnommen werden sollen. jetzt muss ich irgendwie die auftragstabelle lesen und dann der einzelstation sagen,wenn das medikament aus der einzelstation in der auftragsliste steht, dann lager das medikament um. verstehst du was ich meine? geht das überhaupt? bin für jede antwort dankbar!!! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
renzo Mitglied
Beiträge: 6 Registriert: 14.06.2008
|
erstellt am: 07. Jul. 2008 18:27 <-- editieren / zitieren --> Unities abgeben: Nur für biene44
Klar geht das Also erstmal brauchst du eine Variable die Auftragsnummer oder so heißt. Also sagen wir mal du hast Med1 bis Med3, und eine Auftragsliste: 0. Spalte: Auftragsnr, 1.Spalte: Anzahl Med1 usw. Deine Methode sieht dann irgendwie so aus:
Code:
is j:integer; do for j:=1 to Auftragsliste["Med1",Auftragsnummer] loop Med1.inhalt.umlagern(Dump); next; for j:=1 to Auftragsliste["Med2",Auftragsnummer] loop Med2.inhalt.umlagern(Dump); next; for j:=1 to Auftragsliste["Med3",Auftragsnummer] loop Med3.inhalt.umlagern(Dump); next; Auftragsnummer := Auftragsnummer +1; end;
Deine Medikamente werden halt jetzt alle nach "Dump" umgelagert, auch ein Puffer. Die Methode musst du dann halt z.B. durch einen Generator in dem Abstand aufrufen in dem was entnommen werden soll Hoffe es klappt... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
biene44 Mitglied Student
Beiträge: 13 Registriert: 30.06.2008
|
erstellt am: 07. Jul. 2008 19:05 <-- editieren / zitieren --> Unities abgeben:
liest j die zeilen in der tabelle oder die auftragsnummern? deine idee klingt gut, klappt aber nicht. habe mehrere gleiche auftragsnummern, die jeweils einem medikament zugeordnet werden. also muss ich pro zeile lesen. dacht auch, dass das über deine methode klappt. klappt aber nicht. kannst du mir bitte nochmal helfen? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
renzo Mitglied
Beiträge: 6 Registriert: 14.06.2008
|
erstellt am: 07. Jul. 2008 22:10 <-- editieren / zitieren --> Unities abgeben: Nur für biene44
Zitat: Original erstellt von biene44: liest j die zeilen in der tabelle oder die auftragsnummern?
Ne, weder noch :) die for schleife erhöht j mit jedem Durchlauf von 1 bis zu dem Wert der in der Zeile mit der Auftragsnummer in der Spalte mit Med 1 steht, also die Anzahl von Med 1. Sprich der umlagern teil wird so oft aufgerufen wie du Med1 bei dieser Auftragsnummer stehen hast. Zumindest in der Theorie... Zitat:
deine idee klingt gut, klappt aber nicht. habe mehrere gleiche auftragsnummern, die jeweils einem medikament zugeordnet werden. also muss ich pro zeile lesen.
sorry versteh ich nicht so ganz. Kannst du mal einen screenshot oder so von deiner Tabelle posten, dann gehts vielleicht einfacher... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
biene44 Mitglied Student
Beiträge: 13 Registriert: 30.06.2008
|
erstellt am: 08. Jul. 2008 11:02 <-- editieren / zitieren --> Unities abgeben:
danke für deine antwort. tut mir leid, dass ich son dummi bin. hoffe das klappt mit den anhängen...habe ich auch probleme mit. die bilder zeigen das modell und die tabelle. in den regalfächern werden medikamente erzeugt, jeweils eins pro fach. in der quelle wird ein karton erzeugt pro auftrag. alles nach der tabelle. jetzt sollen die richtigen medikamente aus den regalen in den richtigen karton umgelagert werden. danke im voraus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
biene44 Mitglied Student
Beiträge: 13 Registriert: 30.06.2008
|
erstellt am: 08. Jul. 2008 12:51 <-- editieren / zitieren --> Unities abgeben:
tut mir leid, krieg das nicht hin mit den datein, irgendwie stürzt jedesmal die seite ab.. na jedenfalls meine tab. sieht so aus auftragsnummer mednr. medikamentenname anzahl/menge 2 555001 2 555002 2 555208 3 444888 3 799999 hast du ne idee, wie man die tab. auslesen lassen kann, damit man dem regalfach sagen kann, es soll zu diesem aufrag die entsprechende anzahl an medikamenten umlagern?
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
renzo Mitglied
Beiträge: 6 Registriert: 14.06.2008
|
erstellt am: 10. Jul. 2008 15:32 <-- editieren / zitieren --> Unities abgeben: Nur für biene44
hast du jetzt die letzten zwei spalten vergessen? weil da sind ja nur zwei spalten mit daten. schau bitte ob du es nicht doch hinbekommst die tabelle nochmal komplett zu posten oder hochzuladen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
biene44 Mitglied Student
Beiträge: 13 Registriert: 30.06.2008
|
erstellt am: 11. Jul. 2008 07:44 <-- editieren / zitieren --> Unities abgeben:
|
hOndo Mitglied DvD
Beiträge: 10 Registriert: 22.07.2008 PlantSim 8.1.6
|
erstellt am: 07. Aug. 2008 09:48 <-- editieren / zitieren --> Unities abgeben: Nur für biene44
hallo biene44, hast dus inzw. in den griff bekommen? stehe nämlich vor dem gleichen problem (1 auftragsnr., mehrere zeilen). habs zwar mitttels odbc-schnittstelle und ner access-datenbank hinbekommen, mich würde aber eine lösung über PlantSim-tabellen interessieren. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
biene44 Mitglied Student
Beiträge: 13 Registriert: 30.06.2008
|
erstellt am: 10. Aug. 2008 09:43 <-- editieren / zitieren --> Unities abgeben:
hallo, ja hab eine lösung gefunden. uns lag die tabelle mit auftragsdaten in einer excel tabelle vor. diese tabelle kannst du in plant simulation einlesen. richte dazu ein extra modell ein. eine quelle, eine einzelstation und eine senke. dazu eine methode: is i:integer; j:integer; do x:=x+1; j:=1; for i:=1 to tabelle1.YDim loop if tabelle1[2,i]=x then Einzelstation.inhalt.tabelle[1,j]:=tabelle1[4,i]; Einzelstation.inhalt.tabelle[2,j]:=tabelle1[5,i]; Einzelstation.inhalt.tabelle[3,j]:=tabelle1[17,i]; j:=j+1; end; next; end; x ist globale variable, mit dem anfangswert 1. tabelle1 ist die tabelle, die du einliest. die tabelle ohne 1 ist eine tabelle die neu erzeugt wird und als benutzerdefiniertes attribut bei fördergut oder förderhilfsgut hinterlegt ist. die methode liest mehrere zeilen für eine auftragsnummer und schreibt das in die tabelle. die daten für die nächste auftragsnummer werden dann überschrieben in die tabelle. Mit Einzelstation.inhalt.tabelle[1,j]:=tabelle1[4,i]; ordnest du deine neu erstellte tabelle. alles was in spalte 4 steht, wird in deine tabelle in spalte 1 geschrieben. so kannst du aus deinen gegebenen daten die informationen auswählen, die du brauchst und alle unnötigen werden nicht eingelesen. achte darauf, dass alle spalten den gleichen datentyp haben, sonst treten fehler auf. falls dir das nicht hilft, oder es nicht so verständlich ist, kann ich dir mein modell auch schicken. musst mir dann nur deine email adresse geben. hoffe es hilft, viel erfolg!
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |