Autor
|
Thema: speichern und später verwenden (644 mal gelesen)
|
femida45 Mitglied student
Beiträge: 71 Registriert: 20.04.2008
|
erstellt am: 12. Mai. 2008 10:11 <-- editieren / zitieren --> Unities abgeben:
Hallo! ich bin auf Ihre Hilfe angewiesen. Ich saß die ganze Nacht und kam nicht weiter. Nach der Simulation bleiben einige BEs (restbestand) im Puffer. Ich muss diesen Restbestand bei der nächsen Simulation berücksichtigen und Ihn mit Hilfe der zusätzlichen Quelle in den Puffel laden. source2---->Puffer<-----Quelle bis jetz sieht meine Code so aus: <<<<<<<<<<<<<<<<<<< if puff /=void then puff.Kapazitaet := 1010; end; bestandalt := 3; verbr := out / 20; --Quelle if sourceObj3 /=void then sourceObj3.Anzahl :=bestandalt; end; --Source if sourceObj2 /=void then if bestandalt >= verbr then bestell := 0; sourceObj2.Anzahl := bestell; bestandneu := bestandalt; else bestell := 1000; sourceObj2.Anzahl := bestell; bestandneu := bestandalt + bestell; end; --TestTabelle rest := bestandneu - verbr; Tabelle1[1,1] := bestell; Tabelle1[2,1] := verbr; Tabelle1[3,1] := bestandneu; Tabelle1[4,1] := rest; end; <<<<<<<<<<<<<< bestandalt habe ich einen Konstantenwert genommen, soll aber Vergangenheitswert sein. ich hoffe, dass jemand eine Idee hat, wie ich das Problem gelöst werden kann. Gruß, Nataliya Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
LaBonita Mitglied Dipl.-Math.
Beiträge: 151 Registriert: 26.07.2007 eM-Plant 7.5 bis 8.1 VB Java C#
|
erstellt am: 13. Mai. 2008 10:14 <-- editieren / zitieren --> Unities abgeben: Nur für femida45
Hallo Nataliya, Du musst Deinen Altbestand (und vermutlich nicht nur den, sondern auch alle verbundenen Attribute) speichern, beispielsweise in ein Txt-File und die Daten dann alle wieder herstellen (Datei lesen und interpretieren), wenn Du die nächste Simulation startest. Möchtest Du nur einer Quelle sagen, dass sie die Anzahl an Teilen erzeugen soll? Das erscheint mir zu wenig, da die ganze Historie verloren geht. Versuch es mal und viel Erfolg. Gruß, Ortrun Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
femida45 Mitglied student
Beiträge: 71 Registriert: 20.04.2008
|
erstellt am: 13. Mai. 2008 11:13 <-- editieren / zitieren --> Unities abgeben:
Hallo Ortrun, danke schön für Deine Hilfstellung. Gestern dachte ich schon daran, wusste nur nicht wie das zu realisieren ist. Ich habe noch paar Fragen dazu: Soll ich einfach eine txt-Datei (Word) aufmachen und die Werte abspeichern oder gibt es die Möglichkeit in Plant Simulation. ich habe gesehen, dass man Objekte abspeichern kann aber nicht einfache Werte. Gib es auch die Möglichkeit automatisch dann diese Werte auszulesen? Eigentlich ich muss mehrere Werte abspeichern. Ich dachte mir, dass wenn ich weiss, wie es mit dem einen Wert geht, kann ich das mit mehreren machen. Noch mal danke schön, Nataliya Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
LaBonita Mitglied Dipl.-Math.
Beiträge: 151 Registriert: 26.07.2007 eM-Plant 7.5 bis 8.1 VB Java C#
|
erstellt am: 13. Mai. 2008 14:55 <-- editieren / zitieren --> Unities abgeben: Nur für femida45
Hallo Nataliya, wenn Du Dir eine Tabelle erzeugst, solltest Du die einfach abspeichern können (sollte auch mit dem Datenformat table funktionieren) und dann kannst Du die Daten auch wieder in eine Variable vom Typ table einlesen und veerwenden. Hierzu noch die Stichworte: schreibeDatei und leseDatei und schon sollte es gehen. Gruß, Ortrun Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
femida45 Mitglied student
Beiträge: 71 Registriert: 20.04.2008
|
erstellt am: 13. Mai. 2008 22:43 <-- editieren / zitieren --> Unities abgeben:
Hallo Ortrun, danke schön für Deine Hilfe. Die Befehle habe ich angewendet und sie funktionieren. ABER ich versuche die gespeicherte Werte in eine andere Tabelle2 beim leseDatei zu schreiben. Diese Tabelle2 habe ich in dem gleichen Netzwerk. In den beiden Tabellen sind die gleiche Werte. Was mache ich falsch? <<<<<<<<<<<<<<<<<<<<<<<<< if puff /=void then puff.Kapazitaet := 1010; end; Tabelle2.leseDatei("C:\Lauf1"); bestandalt := str_to_num(Tabelle2[2,4]); verbr := out / 20; if sourceObj3 /=void then sourceObj3.Anzahl := bestandalt; end; if sourceObj2 /=void then if bestandalt >= verbr then bestell := 0; sourceObj2.Anzahl := bestell; bestandneu := bestandalt; else bestell := 1000; sourceObj2.Anzahl := bestell; bestandneu := bestandalt + bestell; end; rest := bestandneu - verbr; Tabelle1[1,1] := bestell; Tabelle1[2,1] := verbr; Tabelle1[3,1] := bestandneu; Tabelle1[4,1] := rest; Tabelle1.schreibeDatei("C:\Lauf1"); end; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Tausend Dank, Nataliya Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
femida45 Mitglied student
Beiträge: 71 Registriert: 20.04.2008
|
erstellt am: 14. Mai. 2008 07:14 <-- editieren / zitieren --> Unities abgeben:
Hallo Ortrun, ich rufe jetzt die leseDatei in der INIT-Methode vom Öffnendes Dialogfensters auf und lasse die Daten in die Tabelle2 im Netzwerk speichern. SchreibeDatei benutze ich in der callback-Methode des Dialogfensters. Tabelle1 hat jetzt die aktuellen daten und Tabelle2 die vergangenheitsdaten. Es gibt aber ein kleines Problem beim auslesen der Werte aus Tabelle2. ich mache es folgendes: bestandalt := str_to_num(Tabelle2[2,4]); bekomme als Ergebniss 0, obwohl in der Tabelle2 1000 steht. Was mache ich falsch? Ich hoffe, dass Du es weiss. Gruß, Nataliya Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
LaBonita Mitglied Dipl.-Math.
Beiträge: 151 Registriert: 26.07.2007 eM-Plant 7.5 bis 8.1 VB Java C#
|
erstellt am: 14. Mai. 2008 14:04 <-- editieren / zitieren --> Unities abgeben: Nur für femida45
|
femida45 Mitglied student
Beiträge: 71 Registriert: 20.04.2008
|
erstellt am: 15. Mai. 2008 21:37 <-- editieren / zitieren --> Unities abgeben:
Hallo Ortrun, ich habe den Fehler gefunden. Es war ein blöder Fehler. Ich habe beim Auslesen der Zelle die Zeilennummen und die Spaltennummer vertauscht. Echt dumm von mir! Tausend Dank für Deine Hilfe, Nataliya
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |