Autor
|
Thema: Einzelstation.bearbeitungszeit (5258 mal gelesen)
|
hro89 Mitglied
Beiträge: 8 Registriert: 19.06.2012
|
erstellt am: 19. Jun. 2012 15:11 <-- editieren / zitieren --> Unities abgeben:
Moin! Ich möchte ein Simulation für einen Blechzuschnitt generieren. Dafür habe ich zuerst ein einfaches System aus einer Quelle, einer Einzelstation und einer Senke aufgebaut. Der Quelle habe ich mittels einer Lieferliste den auftrag gegeben 3 verschiedene Fördergüter (die ich BlechA, BlechB und BlechC genannt habe) an die Einzelstation weiterzugeben (diese habe ich in der Kassenbibliothek durch dublizieren des Ursprungsfördergutes erzeugt). Nun möchte ich mittels einer Methode der Maschine den Auftrag geben das sie für jedes Blech eine bestimmte Bearbeitungszeit benötigen soll. Dies würde ich nach meinem bisherigen Wissensstand über eine if/then Anweisung machen.Also für das erste Blech zb if .bes.blechA then einzelstation.bearbeitungszeit :=200 end; Das Programm sagt mir dann aber das nach dem "then" ein boolescher Ausdruck erwartet wird. Habe ich einen Denkfehler in meiner Überlegung oder ist der Ansatz an sich komplett falsch? Ich würde mich freuen wenn ihr mir helfen könntet. Mit freundlichen Grüßen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bon Simul Mitglied Simulant
Beiträge: 1250 Registriert: 08.08.2011 Plant Simulation 10.1, 11 ff Professional
|
erstellt am: 19. Jun. 2012 20:00 <-- editieren / zitieren --> Unities abgeben: Nur für hro89
Erst einmal, die Bedingung (if...) muss true oder false ergeben. Auf das aktuelle Blech können Sie mit @ zugreifen (siehe Hilfe). Wenn Sie die Namen der Bleche vergleichen wollen, dann sieht das wie folgt aus: Code:
if @.name = "blechA" then einzelstation.bearbeitungszeit :=200; end;
Wie wollen Sie die Methode aufrufen? Mit welcher Plant Simulation Version arbeiten Sie? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
hro89 Mitglied
Beiträge: 8 Registriert: 19.06.2012
|
erstellt am: 20. Jun. 2012 12:08 <-- editieren / zitieren --> Unities abgeben:
Ersteinmal vielen Dank für Ihre schnelle Antwort! Ich nutze eine 9er Studentenversion und besitze mit dieser Programmiersprache, wie Sie sicherlich schon bemerkt haben, noch keine allzu nennenswerte Erfahrung. Mit Ihrer Hilfe habe ich mich mit dem "@",das Sie benutzt haben, auseinander gesetzt. Liege ich richtig in der Annahme, dass dieses immer dann verwendet werden kann, wenn es um ein BE geht, das die Methode auslösen soll? Die Methode soll auf den Eingang der Einzelstation wirken und anhand des Namens das Blech erkennen und diesem eine in der Methode festgelegte Bearbeitungszeit zuordnen. Ich habe zudem Ihren Code in die Methode eingesetzt, um zu gucken, was geschieht. Mir wird hierfür eine Fehlermeldung angezeigt, in der es lautet, dass die Variable "@" den Wert "Void" besitzt und dieser keine Methode "Name" empfangen kann. Können Sie mir helfen, wie ich in Zukunft solche Fehler ausschließen kann? Mit freundlichen Grüßen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bon Simul Mitglied Simulant
Beiträge: 1250 Registriert: 08.08.2011 Plant Simulation 10.1, 11 ff Professional
|
erstellt am: 20. Jun. 2012 20:11 <-- editieren / zitieren --> Unities abgeben: Nur für hro89
@ ist das BE, das einen Sensor ausgelöst hat (Eingang, Ausgang, dazwischen)... Wenn Sie die Bearbeitungszeit setzen wollen, müssen Sie das tun, bevor Sie das BE umlagern (ab V. 10 gibt es dafür eine Einstellung). Sie müssen die Bearbeitungszeit in der Ausgangssteuerung des Vorgängers setzen (am Ende der Methode @.umlagern). Sie können die Methode nicht einfach so ausprobieren, weil es dann kein BE gibt, welches den Sensor ausgelöst hat. Setzen Sie statt dessen einen Haltepunkt (siehe Hilfe) und lassen Sie das BE die Methode aufrufen für einen Test. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
hro89 Mitglied
Beiträge: 8 Registriert: 19.06.2012
|
erstellt am: 26. Jun. 2012 10:39 <-- editieren / zitieren --> Unities abgeben:
Vielen Dank für Ihre Hilfe. Obwohl die Methode immer noch nicht reibungsfrei funktioniert, habe ich eine neue Möglichkeit gefunden die Bearbeitungszeit der einzelnen BEs der Einzelstation zuzuweisen. Ich habe die Bearbeitungszeit der Einzelsation von "konst" auf "Liste(Typ)" umgestellt und auf einen Tabellennamen verwiesen. Da ich die Bearbeitungszeiten der Bleche einer Exceltabelle entnehme ist diese Methode meines Erachtens auch sinnvoller. Nun ist mein neues Problem dass, beim Starten des ereignisverwalters, in der Lieferliste der Quelle der ereignisverwalter nur die Lieferzeit des ersten BEs berücksichtigt und die anderen anscheinend mit einer Lieferzeit von 0 an die Einzelstation weiter gibt. Dies führt zu einer falschen Simulationszeit des gesamten Prozesses. Wie könnte ich diesen Fehler beheben? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bon Simul Mitglied Simulant
Beiträge: 1250 Registriert: 08.08.2011 Plant Simulation 10.1, 11 ff Professional
|
erstellt am: 26. Jun. 2012 12:42 <-- editieren / zitieren --> Unities abgeben: Nur für hro89
|
hro89 Mitglied
Beiträge: 8 Registriert: 19.06.2012
|
erstellt am: 26. Jun. 2012 13:32 <-- editieren / zitieren --> Unities abgeben:
|
| Entwicklungsingenieur (m/w/d) Digital | Gemeinsam mit uns, für eine sichere, nachhaltige und mobile Welt. Elmos entwickelt, produziert und vertreibt Halbleiter vornehmlich für den Einsatz im Auto. Unsere Bausteine kommunizieren, messen, regeln sowie steuern Sicherheits-, Komfort-, Antriebs- und Netzwerkfunktionen. Seit über 30 Jahren ermöglichen Elmos-Innovationen neue Funktionen und machen die Mobilität weltweit sicherer, komfortabler und energieeffizienter.... | Anzeige ansehen | Entwicklung |
|
Bon Simul Mitglied Simulant
Beiträge: 1250 Registriert: 08.08.2011 Plant Simulation 10.1, 11 ff Professional
|
erstellt am: 26. Jun. 2012 14:33 <-- editieren / zitieren --> Unities abgeben: Nur für hro89
In der Lieferliste (erste Spalte) müssen Sie die Lieferzeit für jedes Teil selbst definieren (gestaffelt). Wenn Sie eine feste Lieferzeit berücksichtigen wollen und wiederholt die gleichen Teile produzieren lassen wollen, wäre folgende Einstellung besser geeignet: Erzeugungszeitpunkt: Abstand einstellbar --> Abstand einstellen BE-Auswahl: Reihenfolge zyklisch Tabelle: Ihre Tabelle mit den BEs der Teile Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |