多谢,我程序$ o+ C/ r- _. H5 F( n5 }& f
Methode1 Trigger调用 Trigger定义1小时出发一次4 }9 O+ D* b- b L) Z0 P0 A% y! P
(old, new : boolean )4 T& F9 q- }! C7 L) Z1 ~
is
* d/ X& c+ q% ]1 F2 I, Q do; N Z/ A* O8 d$ A
if new = true then % K+ H! m5 S! Q
Tabelle1[1,1]:= time_to_num(y)/3600;6 n, n' S% K& C% _* M; j
m:= 0;1 L# \. T( G4 f" H* X
n:=0;
4 k+ E+ @/ L$ W1 k' y y:=0;6 \: [7 \. q% F" P. \5 N% _( x
end;
% N7 V/ @7 g, |- t end; , ?! e; t1 J$ O2 s4 Q8 T0 o* a3 O1 ~
methode2 Singleproc 输入控制调用
# F; C9 Z z/ k7 O" k1 Z1 X3 Iis
" p/ g7 P, ~5 I% O% f3 fdo8 S' d0 v! S3 o% }, p5 T& e% J
n:=Ereignisverwalter.zeit;- N( D9 m$ p" Z
end;) ~6 y+ V- k8 }0 S* u4 q/ _
methode3 singleproc输出控制调用+ w5 C) |2 N8 r4 Q$ G7 a4 h
is
' F$ c+ K9 y5 I& _. I: M! ido
# E' |, Y" t1 }2 R7 k0 f6 [ m:= Ereignisverwalter.zeit;
% F+ u( \4 D- \/ y$ P5 z9 W0 J3 O6 ` if m/=0 then
4 p0 b4 \* g" Q x/ `- D8 p y:=y+(m-n);3 B* Q+ _8 e/ j" A$ O( @
end;9 I) a9 g, M% h1 ^# ?: t
% ^- j# {3 F" `+ Zend;
9 D6 x! C' k' f ~7 j. Um为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,2 `! b) x' p! d3 ]8 A! h% s$ Q
m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。0 C) J* Y- k' u3 a, b
可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
) w: @3 |8 P2 t; H0 v ]请问如何解决这个问题 |