多谢,我程序
1 J' u8 z" v' s+ Q: HMethode1 Trigger调用 Trigger定义1小时出发一次' Y( I3 ~* j! O- p6 }; ? w# a
(old, new : boolean ), u1 J# L" d" _2 h3 `1 U
is) O, F9 O, u" c
do* m& H: z% C( D
if new = true then 9 L9 G% Y3 m) K" I. ]
Tabelle1[1,1]:= time_to_num(y)/3600;
0 I* S B6 E6 D$ }. k m:= 0;
4 y0 f0 b7 k3 c- J5 a- s8 U n:=0;
L' X" [6 i q y:=0;" h+ e; q$ A% w
end;
) c" ?2 N& [6 d' F" V3 v end;
6 z- S2 ?7 K5 |+ r7 rmethode2 Singleproc 输入控制调用
" T8 x9 y$ t7 A: i, i$ @4 Ris
4 |' J# {& z' |2 Q, Z1 b, ]do% n0 _% w# ]+ w f1 n
n:=Ereignisverwalter.zeit;- u" i9 s3 Z3 t0 w' p
end;
( Q+ t$ {; {/ I4 Q/ [. z9 Kmethode3 singleproc输出控制调用# M" B" N$ S, W" t% m
is0 d. o7 E9 i4 c: g$ e' ]! i
do
& t' s, Q, H0 E/ C3 h m:= Ereignisverwalter.zeit;
+ \' ^2 R/ C0 Z$ k/ d7 M3 Z9 D if m/=0 then
# k1 H# X& P3 j- a6 A y:=y+(m-n);
, u% b( n1 v+ C end;
' z# z! l/ g: ?+ s# q C 0 z$ Z9 D/ ^; a! F/ R* {
end;
3 R6 F/ n6 D x* K3 A: ~m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
4 g& w2 _0 H2 r- K6 |" C1 wm-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。, J/ w9 Q+ p3 c- x# `* X; S* r
可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
% o$ N0 n$ f; m4 x: \请问如何解决这个问题 |