多谢,我程序
2 f* z! R& T; U3 d/ [$ CMethode1 Trigger调用 Trigger定义1小时出发一次' q4 m; l, X" ^! h. g
(old, new : boolean )4 h' A, s3 |& ]3 F; [. @4 C
is5 z. p ^$ x* C/ o% C S/ D0 H
do
% P) ?9 @7 u5 b( O if new = true then % z7 w! ~. u) j6 p' L* G7 x
Tabelle1[1,1]:= time_to_num(y)/3600;& D, W1 b; ^; E3 u) O
m:= 0;' ?0 P/ q- {( P Z& R l
n:=0;
( c5 R( e- _& q( ~ m' V4 ` y:=0;
8 }% T" }7 K: c5 b end;4 D/ D5 _8 s3 D! f8 }
end; / q6 `5 N9 f8 o! v5 _% l
methode2 Singleproc 输入控制调用* k, \' d, b$ c1 Q/ W/ w6 L8 Q
is
/ Z+ _1 P: b$ hdo
# d' l1 b' q) G* n, Z3 O4 O+ a1 r8 y n:=Ereignisverwalter.zeit;' h, Y# k. F7 w# O
end;
$ o# L. l* v! n" ], zmethode3 singleproc输出控制调用6 [$ i, [& F; X" K
is: {& x. j# s+ }, q
do5 Z1 j# I( M0 k3 r! r
m:= Ereignisverwalter.zeit;
1 m; q( R* Z) N! q1 A& _ if m/=0 then
% z3 W' L; G' N5 I1 M y:=y+(m-n);
3 R& r/ Y" ]" ]; d( Z* @7 g end;
& t% Z7 Z& Z' Y, a 6 f7 f7 m c X, y2 D
end;* u- n$ c# y( E! a
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,! W! T- b/ O+ I* Z: |6 _' J5 k
m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。/ a1 C( A: ~+ A1 ?+ ~4 `
可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
y/ n( \8 E, Q& g* t请问如何解决这个问题 |