多谢,我程序! U! V* p7 O9 T( e
Methode1 Trigger调用 Trigger定义1小时出发一次& z1 g% W, V( i* _0 F" Z5 P
(old, new : boolean )& F9 l+ e. h4 s. ]
is# [! m) p& q+ e. S/ A& T! r
do
& f' F$ K, e4 }2 \6 z0 M# s5 ?% F if new = true then
! }! P6 w, |/ d2 U& [' [) { Tabelle1[1,1]:= time_to_num(y)/3600;
- n" U u$ W# I) |5 j m:= 0;9 h* Q6 R! b; F2 L, W
n:=0;
9 Y1 ~3 q1 ]3 _6 Y- x W9 l y:=0;
+ g; n( o Q t) C end;
* U% Y7 L$ F; R1 ~4 { end;
- W4 L( E. q5 p# Gmethode2 Singleproc 输入控制调用/ x# l4 W* w1 [& X2 }
is
6 d! P, e* ]' I7 Ido9 l) m; H/ A* |5 V
n:=Ereignisverwalter.zeit;
) n9 d4 E( }) X) P! V+ Y6 f$ {end;4 h5 K$ E' R0 H, e6 w5 W8 N1 w
methode3 singleproc输出控制调用
/ o: ]/ ?! w/ q' Kis- o' y+ \' g) Q k- }% E
do
4 d" c2 X6 P( k) B1 x m:= Ereignisverwalter.zeit;
( L5 \' P- i/ s7 `3 [ if m/=0 then
, g* K1 L/ v+ t; w y:=y+(m-n);" ]- }9 m) y5 x" H
end;
9 B* d" I; e) Z- @' [6 L) p3 ?
# M1 k+ u G3 \end;2 g7 _9 s; E0 c9 w) y6 y3 u8 j: }
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
$ d3 E# ^' O/ z6 w! w1 E1 Fm-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。2 y6 ?' U7 Z; h$ ?
可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
# ?6 r6 Q4 @+ p9 o7 s3 a请问如何解决这个问题 |