多谢,我程序
* I, P# S* t& o/ k1 n6 q- G1 [8 mMethode1 Trigger调用 Trigger定义1小时出发一次
1 [- r( w' Z) X3 Q(old, new : boolean )
0 ~+ M/ u# L& I/ H; Iis
& Z4 o4 W6 ^% Y do
b+ ^8 C4 N. \ if new = true then
1 A3 z2 p8 F2 _9 W Tabelle1[1,1]:= time_to_num(y)/3600;
' h7 H7 L! d# I+ e m:= 0;" A1 \* [5 _7 l+ Y5 v
n:=0;: y) {* s- Y+ |! ]' D- Y% S% y% ?
y:=0;( j5 I X* ?5 s4 c. M' O
end;
' P9 l( U. Q, O/ P& H! l$ \! r end;
/ S" O. o$ L2 a( O+ X' xmethode2 Singleproc 输入控制调用
% L5 s0 j3 }7 e! a9 _is0 E) k; ^) @9 S! m" p
do$ F% }! ?# }# k2 d# N3 j. T; q2 P
n:=Ereignisverwalter.zeit;& G+ t7 n( M. s! S
end;
# y" f7 c( [! H9 cmethode3 singleproc输出控制调用, R E$ H5 w, [4 m
is
- u' a/ h7 F4 ?; J! Ido8 e F, x y! b* c- a8 d2 c# \
m:= Ereignisverwalter.zeit;
2 q* w: @/ v9 i5 G7 E if m/=0 then
: U9 f8 M# U' e& o6 b$ S y:=y+(m-n);
0 t8 A2 E9 O; \. |8 X end;
: T1 v6 F9 w" ^3 @3 x 8 z" J0 `6 ^4 `2 i6 x
end;
2 n U% C+ g, \9 Y u! \# f0 V( Sm为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
( g4 U) ]" O! N6 d. ym-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。6 t) I7 @5 k: f" Y
可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。( h0 n5 x7 W# R" k' W, ^
请问如何解决这个问题 |