多谢,我程序! b8 T& o" x# _" V6 ?5 ?. W5 ]" ]
Methode1 Trigger调用 Trigger定义1小时出发一次
' y7 ]/ o2 U' Y, D$ F(old, new : boolean )' _% Z4 Q% ~+ M4 ]" z
is* [/ x8 _6 }, ~0 N: s
do
3 h, V. H V/ x) Z7 N! D if new = true then
5 E: E1 A) Y, X9 @1 L Tabelle1[1,1]:= time_to_num(y)/3600;
6 S4 ^1 ?& B; P+ ` m:= 0;
8 ^. u T% R G" @ n:=0;
4 T2 o$ W4 q! O1 G( r. ]5 \8 N y:=0;
7 o1 O' T" A( _ end;
# Z# t1 i, n* e4 W- e- } end;
1 [. J( N& D7 M0 E. wmethode2 Singleproc 输入控制调用5 d9 m; ?, Y6 `2 G# S
is
; A: b" k, J8 U3 Tdo
5 Y7 K! n/ ~8 e+ y. C n:=Ereignisverwalter.zeit;
- C; M: ?5 u; [7 R9 Wend;
g6 z% l/ z3 P$ W, \methode3 singleproc输出控制调用! `6 j+ m% U: S8 c
is
6 J% `3 f# B' Wdo9 o- o; w0 W% ]! S4 h! i
m:= Ereignisverwalter.zeit;8 z. }# W( N% f8 }+ N7 F1 u. p
if m/=0 then . K0 m% ]" w' I7 a* S. K: U' u
y:=y+(m-n);
' [/ L# X/ c) ` y! G+ R* [! F end;
V8 Q* |2 I* h3 _: `
/ D# _% c8 `+ O; m& Lend;0 o" P& W9 `: E: P' ?
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,$ K6 T/ h7 r& w3 t
m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
& b" y& _% Z2 X7 Z可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
/ x7 K1 T8 U9 Z: F7 \请问如何解决这个问题 |