Autor
|
Thema: Bes erzeugen in Demontage (1256 mal gelesen)
|
ominum Mitglied
Beiträge: 10 Registriert: 10.08.2010 Plant Simulation 8.2
|
erstellt am: 15. Aug. 2010 12:55 <-- editieren / zitieren --> Unities abgeben:
Hallo, hab mal eine Grundsätzliche Frage, ich möchte eine Station in einem Demontagebetrieb simulieren. Ein Be soll in eine Station reinkommen, und dort in ca. 20 Teile zerlegt werden(dafür habe ich eine Tabelle angelegt von den Namen die die Bes bekommen sollen, z.B. Auto kommt rein, und rauskommen soll 1 mal Frontscheibe, 1 mal Tür links, 1 mal tür rechts, etc.). Ist das irgendwie möglich? Hab jetzt schon probiert mit dem Demontagebaustein zu arbeiten, aber der nimmt leider die Tabelle nicht an, man kann sie zwar eintragen als Demontagetabelle, aber verändern tut sich nichts, die Bes heißen dann immer noch Fördergut1. Muß ich jedes Be vorher erzeugen? Das wäre ein großes Problem, da sich die Tabelle ständig verändert und ich das Programm eigentlich so flexibel gestalten wollte, dass man andere Tabellen reinladen kann die andere Teile haben. Wäre für jeden Tip echt dankbar. vg Ominum Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tsx Mitglied
Beiträge: 103 Registriert: 06.03.2010
|
erstellt am: 15. Aug. 2010 22:29 <-- editieren / zitieren --> Unities abgeben: Nur für ominum
Hallo ominum, ich mache das i.d.R. mit einer Methode - ist aus meiner Sicht einfacher und auch zuverlässiger als eine Demontagestation. Der Code könnte als Eingangssteuerung einer Einzelstation so aussehen:
Code:
is i,j:integer; do --Tabelle: Spalte 1 ist das BE, Spalte 2 die Menge for i:=1 to Tabelle.ydim loop for j:=1 to Tabelle[2,i] loop Tabelle[1,i].erzeugen(Puffer); next; next; @.vernichten; --ursprüungliches BE vernichten end;
------------------ Grüße, tsx Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ominum Mitglied
Beiträge: 10 Registriert: 10.08.2010 Plant Simulation 8.2
|
erstellt am: 16. Aug. 2010 00:24 <-- editieren / zitieren --> Unities abgeben:
Hi, danke für die schnelle Antwort, funktioniert leider noch nicht so richtig. Kannst du mir sagen wie die Tabelle formatiert sein muss dafür? Also die Anzahl(Spalte 2) auf jedenfall alls Integer, aber wie schaut das für die 1. Spalte aus? Wenn ich die Daten aus einer Exceltabelle einlese hab ich standartmäßig string als Datentyp. Daraufhin kommt die Fehlermeldung "Ein String kann keine methode erzeugen empfangen". Wenn ich als Object formatiere habe ich dann wieder das Problem das er das Be ja nicht erkennt weil es ja nicht existiert. Vielleicht versteh ich auch was falsch, aber ich komme einfach nicht auf die richtige Lösung Hoffe du kannst mir nochmal helfen. vg Ominum Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Samson53 Mitglied Nur noch selten simulierend
Beiträge: 119 Registriert: 18.02.2010
|
erstellt am: 16. Aug. 2010 07:56 <-- editieren / zitieren --> Unities abgeben: Nur für ominum
Hallo, Wenn du außer dem Namen nicht noch andere spezielle Attribute brauchst (Symbole oder benutzerdefinierte), dann wurde ich ein Standard-BE erzeugen und den Namen zuweisen. for I := 1 to Tabelle.YDim loop Modelle.Objekte.Einzelteil.erzeugen(Puffer); Puffer.inhalt(I).Name := Tabelle[1,I]; next; Damit das funktioniert, muss der Puffer vor Beginn natürlich leer sein und in der Tabelle steht in Spalte 1 enthält den Namen als String. Erzeuge vorher ein Objekt "Modelle.Objekte.Einzelteil" als BE. ------------------ Gruß Samson Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ominum Mitglied
Beiträge: 10 Registriert: 10.08.2010 Plant Simulation 8.2
|
erstellt am: 16. Aug. 2010 10:19 <-- editieren / zitieren --> Unities abgeben:
Hallo, vielen Dank, funktioniert schon besser, allerdings klappt es nur wenn ich bei folgendem Quellcode is i,j:integer; do --Tabelle: Spalte 1 ist das BE, Spalte 2 die Menge for i:=1 to Tabelle.ydim loop .Modelle.Objekte.Einzelteil.erzeugen(puffer); Puffer.inhalt(i).name:=Tabelle[1,i] next; @.vernichten; --ursprüungliches BE vernichten end; bei Puffer.inhalt das (i) rausnehme, und nur 1 teil in der Tabelle habe. ansonsten sagt er mir jedesmal "Falsche Parameterzahl in(Inhalt), 1 übergeben 0 erwartet. Das heißt doch jetzt soviel wie dass ich so nicht auf die einzelnen Bes im Puffer zugreifen kann, oder? Gibts da vielleicht noch ne Möglichkeit das umzusetzen? Wenn ich mir den Puffer anschaue kann ich ja auch sehen auf welchem Platz die sind nur ansprechen kann ich sie nicht.
vg Ominum Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tsx Mitglied
Beiträge: 103 Registriert: 06.03.2010
|
erstellt am: 16. Aug. 2010 17:42 <-- editieren / zitieren --> Unities abgeben: Nur für ominum
Bei meiner Methode hat die Spalte 1 den Datentyp object und bezeichnet den Pfad des BEs (z.B. .BEs.Fördergut). Bei der Lösung von Samson gehts so (aus meiner Sicht am besten):
Code:
is i,j:integer; teil : object; do --Tabelle: Spalte 1 ist das BE (string), Spalte 2 die Menge (integer) for i:=1 to Tabelle.ydim loop for j:=1 to Tabelle[2,i] loop teil:=.Modelle.Objekte.Einzelteil.erzeugen(puffer); teil.name:=Tabelle[1,i]; next; next; @.vernichten; --ursprüngliches BE vernichten end;
Der Fehler bei deiner Lösung lag an dem Aufruf inhalt(i). Der Parameter inhalt erwartet keinen Counter. Du hast vermutlich die Funktion be(i) gesucht. Die Verwendung der Funktionen inhalt und be ist jedoch relativ unsicher (z.B. wenn der Puffer vorher nicht leer war wird das falsche BE manipuliert. Die Zuweisung über über den lokalen Parameter "teil" ist jedoch 100%ig eindeutig. ------------------ Grüße, tsx [Diese Nachricht wurde von tsx am 16. Aug. 2010 editiert.] [Diese Nachricht wurde von tsx am 16. Aug. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Samson53 Mitglied Nur noch selten simulierend
Beiträge: 119 Registriert: 18.02.2010 Plant Simulation 11 Office 2013
|
erstellt am: 17. Aug. 2010 07:39 <-- editieren / zitieren --> Unities abgeben: Nur für ominum
|
| Entwicklungsingenieur (m/w/d) Versorgungssysteme / Energietechnik / Maschinenbau | Sie haben Spaß und Freude an der Arbeit und möchten sich in einem netten und kollegialen Team wiederfinden!? Dann passen wir zu Ihnen! Wir sind voller Energie, haben eine Menge Ideen und den Ehrgeiz, gemeinsam Herausforderungen zu meistern. Bei uns erwartet Sie ein angenehmes Betriebsklima, ein motiviertes Team sowie spannende und abwechslungsreiche Projekte. Aalberts, es kommt nicht nur darauf an, wo Sie arbeiten.... | Anzeige ansehen | Entwicklung |
|
ominum Mitglied
Beiträge: 10 Registriert: 10.08.2010 Plant Simulation 8.2
|
erstellt am: 20. Aug. 2010 18:31 <-- editieren / zitieren --> Unities abgeben:
|