|
Autor
|
Thema: Baustein Lager (2383 mal gelesen)
|
DFault Mitglied
 
 Beiträge: 123 Registriert: 19.10.2005
|
erstellt am: 01. Nov. 2005 13:38 <-- editieren / zitieren --> Unities abgeben:         
Hallo Zusammen, ich habe ein Problem mit dem Lagerbaustein. In der Hilfe von eM-Plant steht, dass ich über eine Eingangssteuerung z.B. eine Inventarliste aktualisieren lassen kann. Leider schweigt die Hilfe bei Eingabe von Inventarliste. Also dachte ich mir ich fertige einfach meine eigene Inventarliste an (damit ich immer genau weiss wo welches Teil liegt). Ich dachte an eine Tabelle, die in Spalte 1 den BE-Typ, in Spalte 2 die X-Position des Lagerplatzes und in Spalte 3 die Y-Position des Lagerplatzes enthält. Damit ich beim Einlagern von BEs nicht jedes Mal alle Freien Speicherplätze abfragen muss, wollte ich dem Baustein das Einlagern selbst überlassen. Mein Gedanke war: Beim Einlagern frage ich den BE-Typ über @.entitytype ab und übergebe diesen einer lokalen Variable. Als nächsten Schritt wollte ich dem Baustein nun entlocken, auf welchen Speicherplatz er das BE gesetzt hat und diese Information abermals zwei Variablen zu übergeben. Aber leider scheitere ich genau daran. Es gelingt mir einfach nicht dem Baustein diese Information zu entlocken. Hat jemand einen Rat? Vielen Dank. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 01. Nov. 2005 14:25 <-- editieren / zitieren -->
Hi, anbei ein Loesungsvorschlag. Gruss ------------------ DER SIMULATOR  |
DFault Mitglied
 
 Beiträge: 123 Registriert: 19.10.2005
|
erstellt am: 01. Nov. 2005 15:02 <-- editieren / zitieren --> Unities abgeben:         
Hallo Simulator, das ist auf jeden Fall schon mal ne Hilfe. Obwohl ich gerade noch nicht ganz daraus schlau werde. Also was Deine Methode macht ist mir halbwegs klar. Mein Problem ist jedoch, dass ich die Information über den Ablageort gerne sichtbar in einem Tabellenbaustein haben möchte. Zudem soll diese Tabelle dann zur Entnahme eines passenden Bausteins herangezogen werden. Wenn Du mir dabei noch helfen könntest, schließe ich Dich in mein Abendgebet mit ein.  Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DFault Mitglied
 
 Beiträge: 123 Registriert: 19.10.2005
|
erstellt am: 01. Nov. 2005 15:11 <-- editieren / zitieren --> Unities abgeben:         
|
Ex-Mitglied
|
erstellt am: 01. Nov. 2005 15:50 <-- editieren / zitieren -->
Hi, so gehts. Die Tabellenspalten kannst Du ueber tab01.sortieren... (s. msort) beliebig sortieren. Ueber das Be-Objekt greifst Du auf die Zeileninhalte zu. Falls ein Be das Lager wieder verlässt, musst Du es aus der Tabelle wieder loeschen (am besten mit tab01.entfernezeile(BE-Objekt) Gruss ------------------ DER SIMULATOR  [Diese Nachricht wurde von Simulator am 01. Nov. 2005 editiert.] |
DFault Mitglied
 
 Beiträge: 123 Registriert: 19.10.2005
|
erstellt am: 01. Nov. 2005 16:34 <-- editieren / zitieren --> Unities abgeben:         
|
Ex-Mitglied
|
erstellt am: 01. Nov. 2005 17:08 <-- editieren / zitieren -->
Hi, anbei die Methode mit entsprechenden Kommentaren. den Text kannst Du selektieren und in ein Methoden-Objekt kopieren is inventarliste :table; i,j :integer; do inventarliste.create; tab01[0,tab01.ydim+1]:=@; -- trage Be-Objekt in die Zeilenindexspalte (0) -- nun kann die Zeile ueber das aktuelle Be-Objekt(@) angesprochen werden tab01["name",@]:=@.name; -- trage Be-Namen ein tab01["entitytyp",@]:=@.entitytyp; -- trage entitytyp ein lager.inhaltsliste(inventarliste); -- Inhalt des Lagers in inventarliste einlesen inventarliste.zeigerX:=1; -- Spaltenzeiger auf 1 (initialisieren) für Suche inventarliste.zeigerY:=1; -- Zeilenzeiger auf 1 (initialisieren) für Suche if inventarliste.finden(`[1,1]..`[*,*],@) then -- suche Be-Objekt in inventarliste i:=inventarliste.zeigerX; -- wenn BE gefunden zeigt ZeigerX auf entsprechende Spalte j:=inventarliste.zeigerY; -- wenn BE gefunden zeigt ZeigerY auf entsprechende Zeile tab01["X",@]:=i; --trage Spalte in Tabelle ein tab01["Y",@]:=j; --trage Zeile in Tabelle ein print sprint (inventarliste[i,j],"wurde auf platz[",i,",",j,"] gelagert"); else print @,"nicht im Lager"; -- falls BE nicht gefunden wurde end; end; Gruss ------------------ DER SIMULATOR 
[Diese Nachricht wurde von Simulator am 01. Nov. 2005 editiert.] |
T_Wunsch Mitglied Greenfield & Digital Factory

 Beiträge: 75 Registriert: 03.11.2005 Plant Simulation 10.1.1
|
erstellt am: 03. Nov. 2005 14:58 <-- editieren / zitieren --> Unities abgeben:          Nur für DFault
|

| | Projektingenieur (m/w/d) mechanische Verfahrenstechnik / Schälmüllerei | Sie brennen für den Maschinen- und Anlagenbau ? speziell in der Lebensmittelverarbeitung? Sie denken technisch, entwickeln gern weiter und wollen mit Ihrer Expertise echte Produktlösungen gestalten? Dann sind Sie bei SCHULE Mühlenbau genau richtig. Seit über 130 Jahren steht unser Name für Qualität, Präzision und Innovationskraft im Mühlenbau ? von der Reis- und Getreideverarbeitung bis hin zu Hülsenfrüchten und Ölsaaten.... | | Anzeige ansehen | Feste Anstellung |
|
DFault Mitglied
 
 Beiträge: 123 Registriert: 19.10.2005
|
erstellt am: 03. Nov. 2005 23:03 <-- editieren / zitieren --> Unities abgeben:         
|