多谢,我程序/ z+ l7 W) w+ Q: b. i# G: s
Methode1 Trigger调用 Trigger定义1小时出发一次
: B8 M/ [* o0 b! o(old, new : boolean )2 f, b8 ^$ m# {9 Y5 ]3 `
is Q- f/ u. |$ W1 L
do6 _& h6 C0 G3 B! {: r2 L
if new = true then 4 C: w. u* `7 g2 T! ^) }
Tabelle1[1,1]:= time_to_num(y)/3600;
, z/ Q5 G5 u7 q! k" h* O m:= 0;5 h* w3 ? @: n6 ?$ Q& c1 C& v6 w
n:=0;5 n, p( f# R3 ?, y& o, Y
y:=0;
3 D' q. H' j4 R5 c5 E) J8 X end;
4 C; w$ p) Z$ A, K9 D end; ! ] T+ {6 s9 v! Z7 y* e; r
methode2 Singleproc 输入控制调用
# F, @6 ^) W- |& a) b- L" pis
6 X! \# f7 k% V! t7 n: ?2 k3 }do7 B3 [$ m1 c% ~0 t# L
n:=Ereignisverwalter.zeit;
9 h+ ]- ^/ z5 y+ jend;2 b, B X, o- r' X3 i! _
methode3 singleproc输出控制调用% ~$ \' q% o$ x2 ?$ q" I
is
8 |" P. \2 ~7 a# Jdo
4 J. h5 I! q3 g% w) A) ?( G m:= Ereignisverwalter.zeit;
" `, Q( b9 {8 B$ t4 \ if m/=0 then 2 u! _; q& g% Y! z% M0 p% q+ B
y:=y+(m-n);
/ w# o l: \; a4 d end;% Y1 Z! V6 p& F( L) n: v7 a! I, |: @
! y2 o, x9 f! x3 A- u5 Q
end;
2 l3 ?. d( Q1 j5 j& {! xm为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
5 f' b+ b# M2 E& Q% ^$ @m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。 }6 h4 e6 ^% E4 ]( X
可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。 ~6 n7 N# f& N; V8 k& U2 S
请问如何解决这个问题 |