多谢,我程序
( O* B2 b+ H3 U# xMethode1 Trigger调用 Trigger定义1小时出发一次* P$ @% u1 H2 P# C( l
(old, new : boolean )( N$ e9 m2 \, u/ o- o( a* z' G
is, t, A5 ~: i8 l$ Z
do4 |" j( z8 f5 ^& D5 ` h2 S
if new = true then
1 e7 b0 ?+ p# R# [2 B Tabelle1[1,1]:= time_to_num(y)/3600;2 A1 b8 k5 X4 s0 Y4 s/ z
m:= 0;
0 [* B8 v- s X n:=0;" \3 U7 ^ w0 u6 @
y:=0;
* L, i& Q* N& }" y7 P) |1 o( `0 ^ end;. j2 b* ]. Z# G$ Y
end;
6 Z# W8 a2 J8 `* y, @methode2 Singleproc 输入控制调用1 s5 }* }) y! O. Z. o
is5 d5 ]8 a' T) ?
do9 s4 t# d( ?& S. ]$ B) O6 [; k; e
n:=Ereignisverwalter.zeit;. G& P+ U n: B" Z, d! D
end;8 w) Q1 a3 W0 d( e r1 s: @
methode3 singleproc输出控制调用7 f& b( i$ A# W8 h) U1 e
is) r" ~2 x7 T* [
do/ E% ]; q+ d+ }* |0 V
m:= Ereignisverwalter.zeit;
. N, X5 b% S+ A3 S5 q if m/=0 then ( i& c4 C0 r( j
y:=y+(m-n);
# u w( g2 {+ @8 E, O0 s end;' R6 t1 P" l5 B) O0 E
( H. L4 C* {% R3 [, N
end;
) Y: Z# }$ ]" f, Gm为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
6 Y- {* U" P$ w. g/ ?4 hm-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
4 z; j( X h( S4 }5 E- V1 F可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
1 T1 C% I& v/ ~4 [* S5 c请问如何解决这个问题 |