多谢,我程序0 X+ p6 W" h, K* {9 |. w( ^
Methode1 Trigger调用 Trigger定义1小时出发一次
2 I& G) G1 q$ U3 @3 B(old, new : boolean )" ?8 Z; a6 C5 v: j$ O
is
" Y) U% y8 |& o3 ^8 f. {# }& n- B do
% t8 g& o! Q0 ]) [: _) C% J4 F if new = true then 5 _3 K$ \" r& s5 a. `* b+ R$ ?
Tabelle1[1,1]:= time_to_num(y)/3600;
( C, E0 W4 v# d m:= 0;
. Z* }' i9 P2 @% ?& D9 X' q n:=0; C) S; S$ V# {( R
y:=0;
; [) x, k) G( ^3 N end;
5 t$ R. n4 l, s. Y( B4 o end; 8 R' ^* L8 x% M/ v5 _
methode2 Singleproc 输入控制调用* ]5 c) A- {+ R4 ~5 \
is, m8 h0 c' i1 _2 I3 ^
do
& l" T3 z+ i7 `% ^+ u7 G n:=Ereignisverwalter.zeit;
0 r) E$ X: V0 {end;2 r6 Z6 l p3 I4 }" s7 q
methode3 singleproc输出控制调用
/ f w; X0 q- a# I; t6 ^& Gis& |9 \ e9 w4 A2 f5 S3 i
do
! o, i# P% c5 T0 d9 F+ P m:= Ereignisverwalter.zeit;1 [, n& k( X4 g4 z& O* E4 w
if m/=0 then
( S: M4 E- [+ G. f y:=y+(m-n);
' z% \+ U( p, t$ N end;( W# g+ C# E8 D2 V
2 t4 L8 t7 k: v1 ]( D, m& u- zend;
O- `0 A# F! g) Y: j* y& ?m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,9 J; G! a) F$ W. O9 a; i; S
m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
6 p$ E1 K) W9 K" G' c可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。9 V; Z9 n# j! b3 K2 Q9 E3 e
请问如何解决这个问题 |