Autor
|
Thema: Ist-Bearbeitungszeit in eine Tabelle schreiben (2221 / mal gelesen)
|
mbauflow Mitglied
Beiträge: 2 Registriert: 11.11.2016
|
erstellt am: 14. Nov. 2016 18:01 <-- editieren / zitieren --> Unities abgeben:
Hallo Zusammen, ich benötige für meine Abschlussarbeit eure Hilfe in Plant Sim Ich habe eine Werkstattfertigung entworfen, in der die Bearbeitungszeiten gleichverteilt sind. Jetzt möchte ich das die Ist-Bearbeitungszeit, an jeder Maschine, in eine Tabelle geschrieben wird die ich später auswerten kann. Also das Eintreffen und Verlassen eines BE's soll mit dem BE-Namen in eine Tabelle geschrieben werden. Jedes BE soll eine neue Zeile bekommen. Könnt ihr mir mit dem SimTalk helfen? Danke euch!
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mbauflow Mitglied
Beiträge: 2 Registriert: 11.11.2016
|
erstellt am: 15. Nov. 2016 10:26 <-- editieren / zitieren --> Unities abgeben:
Ich habe eine Lösung gefunden, wenn auch etwas dirty Ich habe eine globale Variable in das Netzwerk aufgenommen - in dem Beispiel LiegezeitEingang. Diese wird von einer Methode (Methode wird durch die Ausgangs- bzw. Eingangsteuerung aktiviert) aufgerufen sobald im Eingang der Maschine ein BE eintritt und um eins erhöht. Dass ergibt die Zeilen Nummer. Die Zeit des Ereignisverwalters wird über die Methode in die Spalte zwei geschrieben, in Spalte 1 kommt der Typ des BEs (benutzerdefiniertes Attribut). Sobald das nächste BE eintritt wird die globale Variable zunächst um eins erhöht und der Zeiger in der Taballe senkt sich um eins. Der Zweck heiligt die Mittel! is ID : string; do Liegezeit.ZeigerY := 0; ID := @.TeileTyp; -- globale Variable für Zeile LiegezeitEingang := LiegezeitEingang+1; --schriebt ID in Spalte 1 Liegezeit.schreibeZeile(1,LiegezeitEingang,ID); --schreibt Simulationszeit in Spalte 2 Liegezeit.schreibeZeile(2,LiegezeitEingang,Ereignisverwalter.Zeit); @.move; end;
[Diese Nachricht wurde von mbauflow am 15. Nov. 2016 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Vermessungstechniker (Mensch*) | Suchen Sie eine Arbeit, die anspruchsvoll ist, Spaß macht und Sinn ergibt? Wir versorgen die Region Soest mit Strom, Erdgas, Wasser und Wärme. Wir tun etwas für den Klimaschutz und fördern zahlreiche sinnvolle Ideen an Schulen, im Sport, in der Kultur und in sozialen Projekten. Wir sind 200 sympathische Kolleginnen und Kollegen. Und wir freuen uns auf Sie! Wir suchen zum nächstmöglichen ... | Anzeige ansehen | Weitere: Ingenieure und technische Berufe |
|
Sparkie99 Mitglied
Beiträge: 48 Registriert: 07.07.2016
|
erstellt am: 22. Nov. 2016 11:28 <-- editieren / zitieren --> Unities abgeben: Nur für mbauflow
Hey mbauflow, deine Lösung passt aber iwie nur zur Hälfte zu deinem ursprünglichen Vorhaben?! Deine globale Variable kannst du dir einsparen, indem du die Dimension der Tabelle mit
Code: Liegezeit.ydim
abfragst. Dein Anliegen zu realisieren würde auf mehreren Wegen funktionieren. Du könntest deine benötigten Informationen als benutzerdefinierte Attribute in deinem BE speichern und durch die Senke deine Statistik auslesen lassen. Andere Möglichkeit wäre die Tabelle zur Laufzeit füllen zu lassen (so wie du es gerade auch machst).
Code:
is do --Schreibt Typ in Spalte 1 local row:= liegezeit.ydim+1; Liegezeit.schreibeZeile(1,row,@.TeileTyp);--Schreibe Eintrittszeit Liegezeit.schreibeZeile(2,row,Ereignisverwalter.Zeit); --Schreibe Bearbeitungszeit Liegezeit.schreibeZeile(4,row,?.Bearbeitungszeit); --Lager Werkstück um @.move; end;
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|