Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  TM - Plant Simulation
  Anfängerfrage

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:  Anfängerfrage (354 mal gelesen)
lilo123
Mitglied
studentin

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

Beiträge: 9
Registriert: 16.06.2008

erstellt am: 16. Jun. 2008 20:18    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, bin absoluter neuling und habe natürlich so einige Probleme, vielleicht kann mir ja hier jemand ein par Tips geben.

Ich möchte, dass meine Quelle BEs produziert, an die eine Liste angehängt ist (Das Be heißt Auftrag und besitzt eine Liste A mit Art_Nr, Hoehe, Breite und Laenge.

An Station1 soll nun die Abmessung berechnet werden

is
  Abmessung:string;
do
  Abmessung:= station1.Auftrag.Hoehe * station1.Auftrag.Breite   
              *station1.Auftrag.Laenge * station1.Auftrag.Menge;

  Abmessung:=Abmessung/100;

(Abhängig von der Abmessung sollen nun verschiedene Kartons auf station2 produziert werden)

if Abmessung > 50 then Karton_klein.erzeugen(station2)

else  Karton_klein.erzeugen(station2);
end;

Natürlich funktioniert das ganze nicht :-)
Kann mir jemand sagen ob ich die Attribute überhaupt richtig anspreche?

Besten Dank schonmal
 

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

LaBonita
Mitglied
Dipl.-Math.


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

Beiträge: 151
Registriert: 26.07.2007

eM-Plant 7.5 bis 8.1
VB
Java
C#

erstellt am: 17. Jun. 2008 10:30    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 Nur für lilo123 10 Unities + Antwort hilfreich

Hallo lilo123,

znächst mal ein herzliches Willkommen hier in der Community.

Wenn ich mir Deine Frage anschaue, frage ich mich zunächst einmal, ob Du das Tutorial von PlantSimulation durchgearbeitet hast? Das hilft bei vielen einfachen Fragestellungen schon mal recht gut.

Zur eigentlichen Beantwortung Deiner Frage, sind ein paar Annahmen zu treffen, die die Modellierung der Attribute betreffen:
Du sagst: 

Zitat:
Das Be heißt Auftrag und besitzt eine Liste A mit Art_Nr, Hoehe, Breite und Laenge.

Das BE gehört demnach zur Klasse Auftrag. Wenn die einzelnen Attribute für den Auftrag nur einmal benötigt werden, hat eine Liste (als Tabelle modeliiert) nur den Vorteil, dass man alle auf einen Blick sehen kann. Wenn das keine Grundvoraussetzung ist, würde ich die einzelnen Attribute separat modellieren, also etwa: ein Attribut Art_Nr vom Typ string, Höhe vom Typ length, Breite vom Typ length, Länge vom Typ length.
Du verwendest in Deinem Code dann noch ein weiteres Attribut
Zitat:
Abmessung:= station1.Auftrag.Hoehe * station1.Auftrag.Breite * station1.Auftrag.Laenge * station1.Auftrag.Menge;

nämlich die Menge, die zuvor nicht bennant worden ist. Demnach gibt es ein weiteres Attribut Menge vom Typ integer.

Soweit so gut.

Dein Code könnte dann folgendermaßen aussehen - Erläuterungen im Nachgang:

Code:
is
  local
    Abmessung: real;
do
  Abmessung := station1.cont.Hoehe * station1.cont.Breite 
              * station1.cont.Laenge * station1.cont.Menge;

  Abmessung := Abmessung / 100;

(Abhängig von der Abmessung sollen nun verschiedene Kartons auf station2 produziert werden)

if Abmessung > 50
then
  .MUs.Karton_gross.erzeugen(station2);
else
  .MUs.Karton_klein.erzeugen(station2);
end;


Hierbei kommen das Schlüsselwort cont zum Einsatz, mit dem auf den Inhlat eines Objektes zugefriffen wird. Als objektorientierte Simulationsumgebung, müssen selbstverständlich die Objekte auch mit ihrem vollständigen Namen (z.B. .MUs.Karton_gross) angesprochen werden. Aber um das vollständig zu erfassen, vielleicht wirklich mal einen Tag in das Tutorial stecken. Das wird viele Fragen erledigen.

Soweit bis hierher.

Gruß,
Ortrun

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

lilo123
Mitglied
studentin

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

Beiträge: 9
Registriert: 16.06.2008

erstellt am: 17. Jun. 2008 12:59    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, ermal vielen Dank für die Antwort.
Werde das gleich mal ausprobieren. Bin mir sicher, dass ich das mit den Listen auch noch nicht so ganz verstanden hab, aber was nicht ist kann ja noch werden...

Das Tutorial hab ich zwar bereits durchgearbeitet werde es aber nochmal durchgehen und schauen ob ich dort Antworten auf meine ca.1000 Fragen finde :-)

Irgendwie finde ich nirgendwo etwas übersichtliches zu den Grundlagen von Simtalk. Es gitbt zwar Bücher zu kaufen, aber die sind etwas teuer ,da ich dieses Programm nur im Rahmen einer Seminararbeit nutze. Vielleicht kennt ja jemand hier eine Seite auf der alles gut erklärt ist.

Liebe Grüße,
Lilo

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

lilo123
Mitglied
studentin

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

Beiträge: 9
Registriert: 16.06.2008

erstellt am: 18. Jun. 2008 17:11    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,
vielleicht hat ja nochmal jemand Lust mir zu helfen...

Also, ich habe die Abmessung meiner Aufträge nun berechnet und mir mit print ausgeben lassen

Zitat:


is
  local
    Abmessung: real;
do
  Abmessung := station1.cont.Hoehe * station1.cont.Breite 
              * station1.cont.Laenge * station1.cont.Menge;

  Abmessung := Abmessung / 100;


Bis hier funktionier alles prima, DANKE nochmal an dieser Stelle!!!
Nun möchte ich die BEs je nach Abmessung umlagern auf verschiedene Stationen.

Muss ich nun schreiben:

if Abmessung > 0.3 then .BEs.Auftrag.umlagern(Station3)
....

oder muss ich hierbei auch wieder mit "cont" arbeiten, da ich ja wieder auf das BE zugreifen will, was in station1 liegt, also

if Abmessung > 0.3 then Station1.cont.umlagern(Station3)
....

irgendwie funktioniert aber beides nicht so wirklich :-)


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

LaBonita
Mitglied
Dipl.-Math.


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

Beiträge: 151
Registriert: 26.07.2007

eM-Plant 7.5 bis 8.1
VB
Java
C#

erstellt am: 19. Jun. 2008 16:34    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 Nur für lilo123 10 Unities + Antwort hilfreich

Hallo lilo123,

das erste wäre auch lustig, da Du da auf die Klasse zugreifst, Du aber eigentlich immer Instanzen runfahren hast.

Wenn beim zweiten Versuch (der funktionieren sollte) die Station3 belegt ist, dann macht er das nicht und wird den Umlagerungsversuch auch nicht wiederholen. Das (Abprüfen, ob umlagern erfolgreich und Wiederholen des Versuchs, bis es funktioniert hat) müßte also noch ergänzt werden.

Gruß,
Ortrun

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

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