多谢,我程序# Q; h$ X/ E% s+ m% S
Methode1 Trigger调用 Trigger定义1小时出发一次
! b. Q0 l, |! K- y8 z- R3 S(old, new : boolean )
& ~- x6 [2 v7 F6 |( o9 P4 R% kis
% A3 @4 J8 R3 e7 B' l" }5 @! h do0 y8 ]' c. e* y4 C8 u$ k9 V
if new = true then + l1 p! o. @% X2 V# _' H
Tabelle1[1,1]:= time_to_num(y)/3600;
2 ]1 s. i! i) i* T5 j m:= 0;; t/ z0 w7 E5 |# W
n:=0;
2 q# }% b$ t1 b/ b: }) y7 V$ P y:=0;8 @8 Z8 m1 C# h) @* ]
end;( ^3 E( Y8 |% Y B7 G' j/ }" x8 B% Y
end;
- K# E, N a. S7 C! k) H6 D0 Emethode2 Singleproc 输入控制调用6 m, [2 B* C6 G3 w3 [3 C1 a
is
$ {: C8 w$ o- {; `# A( y! }do+ m- p) [1 J1 h# G1 [) I, u$ S
n:=Ereignisverwalter.zeit;: S r8 R2 v' c4 L
end;
/ S. i8 u; L- l. B: I1 ymethode3 singleproc输出控制调用7 e1 s. `+ I! ~/ c7 M7 t+ T7 I
is
+ |% s6 f& J5 ^$ v0 A& A" b8 ]do8 Y9 p. N% ?' r2 P: A' q. l* p
m:= Ereignisverwalter.zeit;
! p. d6 h. F* ~ if m/=0 then
3 ~# |/ ^) }. \* A y:=y+(m-n);0 P9 F/ B$ e) }/ [! `; p
end;0 [9 v, e/ ] u: q) L
! G' I" h: c/ Eend;1 Y7 b& A: \9 r
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
* e$ _8 `" X) a# O2 \& Q4 B jm-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
3 }& ^( ?' g/ A可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
: |, G: F3 v" [$ H+ z3 e6 F3 J请问如何解决这个问题 |