多谢,我程序- `& }2 F8 O9 X& y2 O9 |9 y; w
Methode1 Trigger调用 Trigger定义1小时出发一次
: H& j) |% j2 |8 f(old, new : boolean )
* m, ?: C; \! L4 ~is
& g4 i( Q0 O! v+ [ do2 r' W; m1 ~$ f9 u
if new = true then
; w7 O# W7 W, b3 O Tabelle1[1,1]:= time_to_num(y)/3600;7 E0 w0 D; l' V+ d+ C9 }) i
m:= 0;
; E, b2 N9 f" ~& P n:=0;3 k( L2 d! U$ D5 ?
y:=0;' S ~$ A2 e; }( E
end;, Q, c; Q* b7 Q1 o a$ ^
end;
: a; z: L3 E$ zmethode2 Singleproc 输入控制调用, o: e* I6 S' I& m9 Z: ]
is
0 ~6 E" F$ n$ e: t! H' ]* z( Cdo
# f: H3 t' K8 F8 {& ~4 w# @# D5 C n:=Ereignisverwalter.zeit;
M9 Q% k2 h4 y/ tend;1 }% H6 A% Q+ k" W
methode3 singleproc输出控制调用. a" H5 ~* n; p/ R, M' f
is
( p% h0 R- ]5 A8 I+ A- J/ Cdo1 e% ?6 G( r) G
m:= Ereignisverwalter.zeit; t2 n6 K# e% \( F+ v/ ]/ d
if m/=0 then
4 B6 \( L5 a+ \ y:=y+(m-n);
. f3 R. I/ u F; _9 T9 h" l. P1 r end; V/ A: @: J. ^1 X
& C5 N# |3 j9 a( p" b9 c
end;4 y9 s& J4 Y% P: `! P% [) G7 J
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
* \) q* p: t# ]1 p q# O- H) @m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。5 b2 ~+ s1 C- D$ ^
可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
1 f+ k& p4 S/ ]" m请问如何解决这个问题 |