多谢,我程序; N7 P1 Q! k( }
Methode1 Trigger调用 Trigger定义1小时出发一次
: V) c3 ]8 V7 x% c(old, new : boolean )
1 G P- I& S. \, ~4 Iis. v K- }& p7 `# U
do
3 J* J4 L( G0 t) V% ~ if new = true then & z8 \+ Q1 O, A+ ?( s* k
Tabelle1[1,1]:= time_to_num(y)/3600;
0 l& z, ?8 b' K r8 G- ?, r h m:= 0;% I2 n! i( L. o4 U3 ?
n:=0;& q6 b; F1 p) j: g3 f9 u) K
y:=0;
0 A' e# Y/ c4 G5 i end;* z3 E% a% E9 g' |( `* x
end;
8 p, T2 v, g2 b) a% z) j& r3 Q) \methode2 Singleproc 输入控制调用. d* H! u, k/ k/ I! U1 p2 ]
is/ ~) f( w2 H3 j4 E7 v
do3 x5 b1 n M* Y
n:=Ereignisverwalter.zeit;
& V+ [1 Z8 Y; Kend;& f3 J5 X, e/ v. Z, [: @ d
methode3 singleproc输出控制调用
2 O- V( B2 E2 |7 S6 `% w* X& wis
0 d. z8 c8 I# ndo+ m0 Z# l! s1 e
m:= Ereignisverwalter.zeit;
! h9 g* Y4 c) X3 i# M, N if m/=0 then
) z6 d* ~' E6 I+ x. Z ] y:=y+(m-n);* @2 z0 Q5 o* j# ~# v0 p
end;- q; G/ K; I4 ?- |1 C y" a3 o
# B4 l4 p7 X4 u" V) gend;
$ [# x/ H; [" ym为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,4 z; A: }5 K7 r0 S& C
m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
2 c% z: n' r N可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
, j, k" s* {& z5 v# m请问如何解决这个问题 |