Autor
|
Thema: Vergleich DateTime / Produktionsplan (2128 mal gelesen)
|
pom Mitglied Dipl.-Ing. (FH)
Beiträge: 182 Registriert: 25.08.2006
|
erstellt am: 23. Nov. 2006 17:31 <-- editieren / zitieren --> Unities abgeben:
Hi Forum, nach langer Zeit meld ich mich wieder mit einer Frage die mich ziehmlich verwirrt. Ich will einen Produktionsplan erstellen dafür hab ich in einer Excel Datei die folgenden Daten: Datum und Zeit Anzahl Soll Motorvariante Ab einem bestimmten Datum und Zeit soll eine AnzahlSoll vom Typ Motorvariante erzeugt werden. Wenn die Anzahl erreicht ist bzw. die Dauer dieser Produktion erreicht wurde soll die nächste Variante erzeugt werden. Das Problem ist bei mir das er den Vergleich NächsteZeit <= Datum und Datum >= StartZeit nicht richtig durchführt. eM-Plan behandelt den vergleich irgend wie als True obwohl die Daten sich unterscheiden. Beispiel: Datum >= StartZeit 22.05.2006 06:00:52.7616 >= 23.05.2006 06:00:00.0000 => True Hoffe ihr versteht was mein Problem ist und könnt mir helfen?! Falls ihr eine andere Möglichkeit kennt um einen Produktionsplan zu erstellen meldet euch! Hier der Quelltext der Methode: is StartZeit, NächsteZeit : Datetime; i:Integer; do
Datum:=Ereignisverwalter.absZeit; -- Erste Einstellung vornehmen If AnzahlSoll = 0 then StartZeit:=Produktionsplan[1,1]; NächsteZeit:=Produktionsplan[1,2]; AnzahlSoll:=Produktionsplan[2,1]; MotorVariante:=Produktionsplan[4,1]; i:=1; end; -- Umstellen falls Soll erfüllt oder Dauer erreicht If AnzahlSoll = AnzahlIst or NächsteZeit <= Datum then i:=i+1; StartZeit:=Produktionsplan[1,i]; NächsteZeit:=Produktionsplan[1,i+1]; AnzahlSoll:=Produktionsplan[2,i]; MotorVariante:=Produktionsplan[4,i]; Produktionsplan[3,i]:=AnzahlIst; AnzahlIst:=0; end; -- Ab der Startzeit die produzierten Teile erfassen If Datum >= StartZeit then; AnzahlIst:=AnzahlIst+1; end; end; MFG Patrick PS: Hoffe das ich in der Suche nichts zu meinem Problem übersehen hab! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Homer Simpson Mitglied
Beiträge: 345 Registriert: 14.09.2005
|
erstellt am: 24. Nov. 2006 12:12 <-- editieren / zitieren --> Unities abgeben: Nur für pom
Ich kann das Problem nicht nachvollziehen. Das folgende Programm gibt bei mir false aus: Code: is a, b : datetime; do a := str_to_datetime("22.05.2006 06:00:52.7616"); b := str_to_datetime("23.05.2006 06:00:00.0000"); print a >= b; end;
Ist die Variable 'Datum' auch vom Datentyp datetime?Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
pom Mitglied Dipl.-Ing. (FH)
Beiträge: 182 Registriert: 25.08.2006
|
erstellt am: 27. Nov. 2006 08:05 <-- editieren / zitieren --> Unities abgeben:
|
Homer Simpson Mitglied
Beiträge: 345 Registriert: 14.09.2005
|
erstellt am: 27. Nov. 2006 08:21 <-- editieren / zitieren --> Unities abgeben: Nur für pom
|
pom Mitglied Dipl.-Ing. (FH)
Beiträge: 182 Registriert: 25.08.2006
|
erstellt am: 27. Nov. 2006 09:06 <-- editieren / zitieren --> Unities abgeben:
|
Homer Simpson Mitglied
Beiträge: 345 Registriert: 14.09.2005
|
erstellt am: 27. Nov. 2006 11:39 <-- editieren / zitieren --> Unities abgeben: Nur für pom
Das ist schon irgendwie merkwürdig. Bist du ganz sicher, dass die Variablen die entsprechenden Werte haben? Wenn du bei der if-Anweisung einen Haltepunkt setzt, kannst du die Variablenwerte im Debugger ansehen. Außerdem kannst du im Debugger auf der Registerkarte "Ausdrücke" die Bedingung eingeben und nachsehen, ob sie zu true oder false ausgewertet wird. Falls das alles nichts bringt, kannst du ja mal versuchen das neueste service pack (7.5.8) zu installieren. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 27. Nov. 2006 12:34 <-- editieren / zitieren -->
@pom was kommt bei Dir heraus, wenn Du die Differenz zwischen den Daten bildest ? ------------------ Der Simulator |
Homer Simpson Mitglied
Beiträge: 345 Registriert: 14.09.2005
|
erstellt am: 27. Nov. 2006 14:23 <-- editieren / zitieren --> Unities abgeben: Nur für pom
|
Ex-Mitglied
|
erstellt am: 27. Nov. 2006 14:34 <-- editieren / zitieren -->
und bei b-a, +23:59:07.2384, was ja korrekt ist ! Mich würde interessieren, was beim pom herauskommt, wenn er die Differenz so berechnet. ------------------ Der Simulator |
pom Mitglied Dipl.-Ing. (FH)
Beiträge: 182 Registriert: 25.08.2006
|
erstellt am: 30. Nov. 2006 11:08 <-- editieren / zitieren --> Unities abgeben:
|
pom Mitglied Dipl.-Ing. (FH)
Beiträge: 182 Registriert: 25.08.2006
|
erstellt am: 01. Dez. 2006 15:49 <-- editieren / zitieren --> Unities abgeben:
-23:59:07.2384 ... Ich versteh nich warum die andere Abfrage nicht funktioniert. Am Quellcode kanns ja nich wirklich liegen da alle, wirklich alle, Variablen auf das richtige Format eingestellt sind. Hänge jetzt aber gerade an einem viel kritischeren Problem fest, das meine Simulation zum Absturz bringt, denke das werd ich hier auch nochmal im Forum zur Diskussion bringen müssen Falls ihr noch eine Fehler im Quellcode oder euch sonst wie was einfällt bitte meldet euch! Bis denne Patrick
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 01. Dez. 2006 23:27 <-- editieren / zitieren -->
also ich kann dieses Phänomen auch nicht nachbilden. schick mal das Modell der Hotline ------------------ Der Simulator |