多谢,我程序4 X: ], c; e$ m; _, A
Methode1 Trigger调用 Trigger定义1小时出发一次
' ], T! S& D/ ^(old, new : boolean )' Q2 @+ x; k6 K( d
is
4 |. n b: s( n. z% | do z2 c3 w' I2 o- C" c' r
if new = true then / s+ a! g' d1 v" ?2 r0 }/ u3 j
Tabelle1[1,1]:= time_to_num(y)/3600;
6 D. N% W+ O6 R7 ]+ t+ u4 V m:= 0;
9 f& R1 R- J) h6 E" \; o n:=0;. C J t' b; G2 R, X
y:=0;) [% E; a9 Y* c" Y# b6 E7 T
end;" X0 R/ @% l) H2 K# @2 J3 U/ M
end; 4 H( H6 n6 W4 @) b& b
methode2 Singleproc 输入控制调用
9 g+ H5 B7 P; M" n' Yis
3 C; y' K- p* k4 wdo
9 D6 q' ^/ t1 Y( q8 _ n:=Ereignisverwalter.zeit;
( L% C- p) T0 {( X+ Send;1 W# U% [: a5 f* z+ X
methode3 singleproc输出控制调用6 F/ X }9 p( n# ~1 s
is
6 @- M2 h7 B5 |% g4 a6 |do7 F0 ~0 u' ?# f0 l
m:= Ereignisverwalter.zeit;) ~- H& q2 `, P r- r
if m/=0 then
. a% Q$ K6 N/ t* q y:=y+(m-n);
: W( X4 S H2 l! F& `/ K* s6 X; F end;
, ?; v# l& y# P4 p( J9 n
: M9 L: K& }/ D% Q& N& ?end;
+ M7 F# t0 m& v! \: bm为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
& Z- C6 G! O- B9 I/ J$ zm-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
1 l# b5 l' v- O7 f) a* a% I% E可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。5 C8 h& ^( S+ ]4 D0 ~- O
请问如何解决这个问题 |