多谢,我程序 _) ~0 m, S" t; f; R
Methode1 Trigger调用 Trigger定义1小时出发一次/ L7 }- U# q) Q8 ^( ]( f& o
(old, new : boolean )* ]2 Y$ ~$ C6 T) X. S
is
# z1 c1 ^$ e8 B* J4 a7 q do
0 ~, _7 R9 I& @ if new = true then
/ L! [8 i. e$ J: p9 V Tabelle1[1,1]:= time_to_num(y)/3600;$ q. [# ^# i, }2 F4 n+ @8 |: t
m:= 0;1 ^- R8 I6 u K% b0 Z
n:=0;8 r. U! T, [- G# ? \( ]: P
y:=0;% T# j8 K! O0 U7 q% S( Z
end;9 R0 q8 ~; f" \1 e+ h6 d7 X% u- W. u
end;
, `, Y+ ]8 S2 O4 M% xmethode2 Singleproc 输入控制调用" O; d% ~( Q6 g/ H" {5 I, Q
is
- v: g g7 e4 M' Y) Hdo
4 N3 q5 r8 F; U; p% X" v n:=Ereignisverwalter.zeit;
" u% Q( }2 B4 E) cend;
9 Y8 F; y' M' K' W8 S: g+ Mmethode3 singleproc输出控制调用7 B6 p* t0 s: P$ i
is- `" l7 \$ ]7 x( i( A6 |3 N$ l1 ?
do
_( r+ K2 g/ d: o' u8 I, p m:= Ereignisverwalter.zeit;/ Y: N7 G( D q/ f* i
if m/=0 then
, f4 U) H8 C/ m; A' Z3 J( `, a! a9 Z y:=y+(m-n);/ } e; S, J% X# f
end;
3 U, D1 X0 W' o: R: X. r
: g2 h, Z5 ?, \0 c1 |9 @2 aend;
6 Z5 K q# X% Z O( sm为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
e; f0 T0 b( |- ?m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。( d, ~' G0 U0 i+ ?7 C7 y0 M" ~/ h
可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
/ M7 Z9 d, n8 P% j; A请问如何解决这个问题 |