多谢,我程序/ U" t/ R$ D* W5 E5 K- n. y
Methode1 Trigger调用 Trigger定义1小时出发一次8 ~& E0 }* r/ l$ `2 c6 O
(old, new : boolean )
: p9 A: K7 q. e0 R9 C. Dis
( W# S, Y! ]+ _/ H do
; t% h! t; O( V. p" t0 @9 B if new = true then : Z+ b9 O% H' ]9 f
Tabelle1[1,1]:= time_to_num(y)/3600;& K7 V4 C6 }3 F
m:= 0;
/ _8 ?' Q, Q0 P n:=0;
8 _( v; i4 @. e, s* N- t y:=0;
r$ b6 q7 b3 A1 z6 [ end;; u; v/ l, |/ Y- L. {
end; ; e2 ^2 V6 ]: K$ R* U
methode2 Singleproc 输入控制调用; b* h. M+ t3 ?7 F' o" Q3 A
is4 P, }# h2 p8 Q V! A9 K9 r
do
0 Y9 Y8 P5 J/ R9 Q! n m2 S+ c1 v0 F n:=Ereignisverwalter.zeit;
% K# n' Y' V3 r/ C# l J" Hend;+ H, E6 Y- Q0 M: q: }
methode3 singleproc输出控制调用: x. o8 \1 V; e q5 U
is
! A2 j2 Y4 X, e/ v3 Ldo
+ k# e) g2 q- M* Y& W: L m:= Ereignisverwalter.zeit;* Z& ~0 s+ J7 s4 w9 y5 I' ]
if m/=0 then
. Y) |2 j: d: h `8 l4 O! C* W! f a y:=y+(m-n);3 F, o- A N4 L; E' h/ J0 ?1 V
end;) I4 M: S* P. a5 |! ]5 x& w! X
0 a- C, v* r0 l4 J2 d+ t* S
end;
' _+ E# J# ?+ e: l& Tm为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
9 ?. _5 u- O$ sm-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。8 ?# ^9 ?. a: Y7 _) k. q" C* e
可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。! n6 L! E! y8 z; |: \
请问如何解决这个问题 |