Autor
|
Thema: Bestände in Tabelle übertragen (2895 mal gelesen)
|
esscheintdiesonne Mitglied
Beiträge: 19 Registriert: 11.08.2013
|
erstellt am: 11. Aug. 2013 21:59 <-- editieren / zitieren --> Unities abgeben:
Abend zusammen, vllt. kann mir jm. weiterhelfen, ich habe folgendes Problem: Ich habe mehrere Einzelstationen und Puffer in Reihe hintereinander. Während der Simulation lasse ich mir die Betände der Puffer in einem Plotter anzeigen. Für eine bessere Auswertung möchte ich diese in eine Tabelle schreiben lassen. Wie bekomme ich das hin (pro Puffer den Bestand über die Zeit in eine Tabelle)? Die Beschreibung die im Buch von Bangsow (2011) steht hat nicht funktioniert. Gruß 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: 12. Aug. 2013 10:52 <-- editieren / zitieren --> Unities abgeben: Nur für esscheintdiesonne
|
esscheintdiesonne Mitglied
Beiträge: 19 Registriert: 11.08.2013
|
erstellt am: 12. Aug. 2013 11:25 <-- editieren / zitieren --> Unities abgeben:
Hallo, schonmal ein Danke für die Antwort. Ich nutze die Version 10.1.. Ich habe einen Plotter mit dem Namen "Diagramm1", welcher mir die Bestände korrekt aufzeichnet. Nun habe ich dem Netzwerk eine Tabelle mit dem Namen "auswertung" und eine Methode hinzugefügt. In diese habe ich nun folgendes reingeschrieben: is do Diagramm1.schreibeWerteInTabelle(Tabelle); end; Die Tabelle wird leider nicht gefüllt?! 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: 12. Aug. 2013 12:01 <-- editieren / zitieren --> Unities abgeben: Nur für esscheintdiesonne
|
esscheintdiesonne Mitglied
Beiträge: 19 Registriert: 11.08.2013
|
erstellt am: 12. Aug. 2013 12:15 <-- editieren / zitieren --> Unities abgeben:
Das ist eine gute Frage. Ich bin eigentlich davon ausgegangen, dass zum Start der Simulation die Methode automatisch abgehandelt wird?! Wie kann/muss ich die ansteuern? Haben Sie da einen Vorschlag für? 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: 12. Aug. 2013 12:33 <-- editieren / zitieren --> Unities abgeben: Nur für esscheintdiesonne
Sie können die Methode umbenennen in endSim und im Ereignisverwalter eine Ende-Zeit für die Simulation festlegen. Die Methode endSim wird dann automatisch am Ende der Simulation aufgerufen. Wenn irgendetwas am Anfang passieren soll, dann benennen Sie die Methode um in init (in Ihrem Fall wäre das allerdings falsch, weil Sie erst Daten sammeln müssen). Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
esscheintdiesonne Mitglied
Beiträge: 19 Registriert: 11.08.2013
|
erstellt am: 12. Aug. 2013 14:14 <-- editieren / zitieren --> Unities abgeben:
|
Schippo Mitglied
Beiträge: 17 Registriert: 11.09.2013
|
erstellt am: 27. Sep. 2013 09:48 <-- editieren / zitieren --> Unities abgeben: Nur für esscheintdiesonne
Servus, ich habe ein ähnliches Problem. Ich möchte die DLZ eines bestimmten BE's wenn es in die Senke eintritt messen und die Werte dann (DLZ-Zeit) in eine Tabelle schreiben. Hierfür habe ich dem BE drei Attribute zugewiesen, eine Methode geschrieben (Bezeichnung: Methode 1). Die Methode DLZ habe ich der Eingangssteuerung der Senke zugewiesen. Die Tabelle in welche die Daten übertragen werden sollen habe ich das Format (1.Spalte) Time zugewiesen. Die Tabelle füllt sich leider nur nicht... Habe ich ein Fehler bei der Methode gemacht??? Beste Grüße Schippo Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Schippo Mitglied
Beiträge: 17 Registriert: 11.09.2013
|
erstellt am: 27. Sep. 2013 09:50 <-- editieren / zitieren --> Unities abgeben: Nur für esscheintdiesonne
|
Bon Simul Mitglied Simulant
Beiträge: 1250 Registriert: 08.08.2011 Plant Simulation 10.1, 11 ff Professional
|
erstellt am: 27. Sep. 2013 12:55 <-- editieren / zitieren --> Unities abgeben: Nur für esscheintdiesonne
Ich denke, Ihre Methode geht nie in den if-Zweig, denn eine Methode schreibeWerte gibt es in der Tabelle nicht und Sie sollten einen Fehler angezeigt bekommen. Wann setzen Sie die datetime_variable? Sei können die Durchlaufzeit mit Hilfe des Attributes erzeugt (creationTime) ermitteln und in die Tabelle schreiben:
Code:
DLZ_Auswertung.schreibeZeile(1,DLZ_auswertung.yDim+1, ereignisverwalter.zeit-@.erzeugt);
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Schippo Mitglied
Beiträge: 17 Registriert: 11.09.2013
|
erstellt am: 30. Sep. 2013 23:00 <-- editieren / zitieren --> Unities abgeben: Nur für esscheintdiesonne
Hallo Bon Simul, ich habe versehentlich zwischenzeitlich das Modell gelöscht. Ich werde es aber nochmal versuchen aufzubauen. Ich habe aber Ihren Vorschlag bei einem anderen Modell umgesetzt und es funktioniert. Das Attribut erzeugt (creationTime, wo gibts dieses???) kann ich leider nicht erzeugen. Ich erhalte dann folgende Fehlermeldung: Ungültiger Bezeichner oder Bezeichner ist bereits im Namensraum des Objectes oder einer seiner Instanzen vergeben.... Was mich auch ein wenig stützig macht ist das mir gewisse Werte rot in die Tabelle eingetragen werden, siehe Anhang. Woran kann das liegen?? Ist das ein Hinweis auf einen Fehler??? Die ausgegebenen Werte stimmen jedoch..... Ich bekomme auch keine Fehlermeldungen angezeigt........
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: 01. Okt. 2013 10:50 <-- editieren / zitieren --> Unities abgeben: Nur für esscheintdiesonne
erzeugt (creationTime) ist bereits definiert für alle BEs. Sie brauchen es lediglich auszulesen. Die rosa Bereiche in Ihrer Tabelle zeigen an, dass ein entsprechendes Objekt nicht existiert. Vielleicht müssen Sie den Datentyp von Object zu String wechseln. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Schippo Mitglied
Beiträge: 17 Registriert: 11.09.2013
|
erstellt am: 09. Okt. 2013 11:53 <-- editieren / zitieren --> Unities abgeben: Nur für esscheintdiesonne
Hallo Bon Simul, vielen Dank für den Tipp, hat geklappt. Ich frage mich jetzt nur noch ob es auch möglich wäre die DLZ zwischen zwei Stationen auszulesen. An der ersten Station kann ich dies natürlich mit dem oben dargestellten Code machen. Ich kann auch an den Folgestationen den selben Code anwenden, muss dann allerdings die Endzeit nach den jeweiligen Station von den Endzeit der direkt davor gelageten abziehen. Ist es nicht möglich nun in den Code zu schreiben das er für die zweite Station anstatt @.erzeugt z.B. @.Einzelstation1 z.B. Jedoch soll dann nicht der Fehler eintreten, dass die Zeit bei Eintritt in die erste Station anfängt zu laufen, sondern wirklich bei Austritt? Funktioniert das. Hab es mit verschiedenen Bezeichnungen im Code schon versucht, komm aber auf keine Lösung. Beste Grüße Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Arbeitsvorbereiter:in (m/w/d) in Buchholz i. d. Nordheide | Als Teil der weltweit tätigen STRABAG SE und Nummer eins im deutschen Hoch- und Ingenieurbau bauen wir bei ZÜBLIN laufend am Fortschritt. Einzigartigkeit und individuelle Stärken kennzeichnen dabei unsere Projekte und jede:n Einzelne:n von uns. Ob im Hoch- und Ingenieurbau, Spezialtiefbau, Tunnel-, Stahl- und Holzbau oder in der Bauwerkserhaltung ? wir denken Bauen weiter, um der innovativste und nachhaltigste Bautechnologiekonzern Europas zu werden.... | Anzeige ansehen | Bauwesen |
|
Bon Simul Mitglied Simulant
Beiträge: 1250 Registriert: 08.08.2011 Plant Simulation 10.1, 11 ff Professional
|
erstellt am: 11. Okt. 2013 08:45 <-- editieren / zitieren --> Unities abgeben: Nur für esscheintdiesonne
Das können Sie am besten über das BE lösen. Definieren Sie ein benutzerdefiniertes Attribut (austrittsZeit:time) im BE. Die Austrittszeit können Sie in einer Ausgangssteuerung-Heck setzen. In der Eingangssteuerung können Sie dann den Abstand zwischen zwei Stationen mit ereignisverwalter.zeit-@.austrittsZeit berechnen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |