多谢,我程序
7 J/ g% C! u( ^# O- oMethode1 Trigger调用 Trigger定义1小时出发一次
2 U. G2 G& A7 _' n6 P(old, new : boolean )% }$ D- h2 x$ g" i' j5 r
is
& g6 m/ m0 `! t/ d& ~* a* F do9 }0 f I/ C2 D2 z, x0 c
if new = true then
% m7 @: M1 O8 X Tabelle1[1,1]:= time_to_num(y)/3600;4 C' x- ^/ {4 i% Q C
m:= 0;
& U( n; {" H+ m& P9 P7 I6 a n:=0;
+ Y) v7 V6 @% v2 _" r+ U" Z y:=0;! Q0 A, G4 N2 o/ C% W2 D" H$ M
end;" A! z! A& V, C+ R0 h! Q
end;
# G6 D$ a) e0 e- E4 V, N Jmethode2 Singleproc 输入控制调用& T* U3 V0 o2 R; n
is
7 v% c; I3 j' M5 Z6 Edo
& `3 w/ W, N+ J) S0 u n:=Ereignisverwalter.zeit;
" W* M4 [! H3 k3 o. P7 j0 Yend;. G) j- L1 x, o. e/ a) W
methode3 singleproc输出控制调用9 l- b0 O! {, [3 v4 A4 _6 b4 B7 j
is; a; T* ]# p4 K& I
do
" b' ~0 x i' i m:= Ereignisverwalter.zeit;% j$ D9 X+ c# d* Y5 F t
if m/=0 then & g- K5 ~5 ?8 t' @+ {
y:=y+(m-n);; j* I6 L% H+ Y) v2 p0 f
end;; @) t% q% ]2 w* F: U/ u- E
$ m/ C# C* b' z, ^1 x
end;
+ ]# {0 Z1 T0 J; Om为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,* o( I, G% G! k9 j$ [( {
m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。& ~& t" ]0 N: c3 C
可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。1 G. b* Q/ }% N- v! b) w# q
请问如何解决这个问题 |