DIAdem

cancel
Showing results for 
Search instead for 
Did you mean: 

Differenz zweier Zeitwerte

Hallo,
 
ich habe folgendes Problem:
 
Ich möchte aus einem Zeitkanal die Differenz zwischen zwei Einträgen (Zeile1 und Zeile2) in Form einer Zeitdifferenz dt erhalten, also das Ergebnis wieder im Zeitformat ausgeben und nicht als Realvalue.
 
Mein Script sieht verkürzt in etwas wie folgt aus:
 
Dim t1, t2, dt
t1 = Chv(Zeile1,Gruppe1)
t2 = Chv(Zeile2,Gruppe1)
dt = t2-t1
 
Beim Debuggen erhalte ich für die aktuellen Variablen folgende Werte:
t1 = #4/9/2007 12:24:01 AM# (wieso nicht das 24h Format?)
t2 = #4/9/2007 12:28:19 AM#
dt = 2.98240745905787E-03
 
und für RTT(dt) das Datum 01.01.000 00:00:00.00
 
Im Taschenrechner erhalte ich folgende Werte
 
t1 = Chv(Zeile1,Gruppe1)=63343211040,86
t2 = Chv(Zeile2,Gruppe1)=63343211298,54
und für Chv(Zeile2,Gruppe1)-Chv(Zeile1,Gruppe1) den Wert 0.00298240745905787
(zu beachten sind hierbei auch die unterschiedlichen Dezimaltrennzeichen "," und "." ?!?)
bzw. wieder das obige Datum für RTT(Chv(Zeile2,Gruppe1)-Chv(Zeile1,Gruppe1))
 
Wie kriege ich es hin, das ich die richtige Zeitdifferenz 00:04:18 erhalte (das Datum kann durchaus vernachlässigt werden).
 
Gruß,
     Krischan
 
 
 
 
 
0 Kudos
Message 1 of 6
(4,559 Views)
Hallo Krischan!
 
Versuch es mal mit RTT(Chdx(2,1) - Chdx(1,1),"hh:nn:ss")
 
Matthias
Matthias Alleweldt
Project Engineer / Projektingenieur
Twigeater?  
0 Kudos
Message 2 of 6
(4,556 Views)

Hallo Krischan!

Ich vergaß noch einige Hintergründe zu erklären:

  • chv liefert den Wert als VBS CDate, man sollte damit auf jeden Fall nur VBS Routinen 'füttern'
  • die unterschiedlichen Dezimaltrennzeichen kommen auch vom Unterschied VBS / DIAdem. VBS formatiert nach den lokalen Einstellungen, in Deutschland also ','. DIAdem Routinen verwenden normalerweise immer '.'.
  • chdx sollte was schneller sein als chd

Matthias

Matthias Alleweldt
Project Engineer / Projektingenieur
Twigeater?  
0 Kudos
Message 3 of 6
(4,551 Views)

Hallo Matthias,

Danke für den Tipp. ChD an Stelle von ChDx funktioniert ebenfalls, habe ich gerade festgestellt.

 

Gruß,

    Krischan

0 Kudos
Message 4 of 6
(4,550 Views)
Hallo Krischan,

in der Basismathematik gibt es eine Funktion, die für einen Kanal die Differenzen aufeinander folgender Werte berechnet. Wenn die Daten wieder im Zeitformat angezeigt werden sollen, kann das durch setzen der Eigenschaft ChnPropValSet(Kanalname, "displaytype", "time") gemacht werden. (Kanalverrechnungen sind aus Geschwindigkeitsgründen vorzuziehen.)
Das angezeigte Format hängt von den allgemeinen Einstellungen in (Menü>>Einstekllungen>>Optionen>>Allgemeines ab)

Gruß
Walter

0 Kudos
Message 5 of 6
(4,550 Views)

Hallo Walter,

das Problem ist nur, das die beiden Zeitwerte für die Differenzberechnung nicht in aufeinanderfolgenden Zeilen liegen. Ich denke, dass die Funktion aus der Basismathematik somit nicht in Frage kommt.

Gruß,

   Krischan

0 Kudos
Message 6 of 6
(4,544 Views)