多谢,我程序
# U5 K) d! N7 E8 OMethode1 Trigger调用 Trigger定义1小时出发一次6 q3 v, E6 L1 Y3 U
(old, new : boolean )
( S2 [) i' v' ?* r9 V! {is
2 Z4 J3 o5 H- }. }/ N" S do
' p9 S% x3 y' M/ e1 R if new = true then " s2 L! h$ P0 k( ?2 n0 a
Tabelle1[1,1]:= time_to_num(y)/3600;: F; b- Q9 ]! l$ _% d
m:= 0;
# j8 r! ^+ {5 ?* b7 h n:=0;; Q4 d1 d# X1 L, x5 y S
y:=0;
: K7 q- D0 ]; s6 ~0 C& P* t( g8 E7 l end;& \# R8 l7 Q6 N
end; # m4 t9 L& p3 r- v. N9 x5 G
methode2 Singleproc 输入控制调用
# ?, ^( o( F3 O0 Iis* z' c! I/ s) p0 {% n$ r7 A
do, T1 z! K3 g8 [( w) o! T. p
n:=Ereignisverwalter.zeit;
3 u" E- }/ }( W Jend;+ E7 r9 V4 i& ]& D1 c" e! o# m/ }
methode3 singleproc输出控制调用
1 @ l: P; v8 Gis% _4 ]7 H8 M& H3 J: J
do6 }5 }0 r9 h$ W+ s% N1 v5 f9 ^
m:= Ereignisverwalter.zeit;! K( _0 y4 M2 G" y: `
if m/=0 then , X5 V8 T3 ^ p( |! B, K2 `2 @
y:=y+(m-n);5 S5 L, B5 x! S( i
end;
# k* q2 h* B: V8 q$ [9 ^2 K+ T: I+ n
0 ?$ \' w1 _& D. J, o* Xend;
% P1 S7 q; y9 i. ^' ~$ V5 Mm为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,, r3 `( M9 n* G
m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
$ L8 ~ S6 z1 F可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。2 P5 ?$ v/ O# G
请问如何解决这个问题 |