多谢,我程序
3 K1 E6 g7 {* @7 l1 m1 g& ~/ |1 aMethode1 Trigger调用 Trigger定义1小时出发一次
) ~$ W0 o& ~2 S$ ]# ?9 [" d0 A; e(old, new : boolean )' t$ Q) ~, ~5 v& L, ~
is, i# G" m' W- [! _; P$ I
do4 H- q; y9 r7 Q% _; y
if new = true then
( M7 u0 ~- {5 v& @" w Tabelle1[1,1]:= time_to_num(y)/3600;/ m) Q, e1 Z+ M7 s p6 F7 R
m:= 0;
9 Y# T3 D7 U7 L, }9 B* E n:=0;8 ~/ d, [/ Z3 u6 B6 C7 j# A0 M6 [
y:=0;
1 B% y6 p7 z+ ]4 W# c end;: Q4 d/ {4 B+ G/ l6 V
end; ' Y# a/ u: u6 E/ _% S% o: c, a, v
methode2 Singleproc 输入控制调用
0 D) a; w+ O3 r b2 Y: Ris
7 f! o9 B6 H& b( ddo
& l- S1 t ~+ n1 | A n:=Ereignisverwalter.zeit;4 n$ Q, ?' [ F& c. E' K! y
end;
2 N+ R* A. o( Y$ x& }4 cmethode3 singleproc输出控制调用
( n. h$ _+ t) T$ s A6 Xis) ~3 i3 i& H; e' x2 M- E
do- `8 q# n' Z) w1 Z8 m
m:= Ereignisverwalter.zeit;
/ Y$ v7 F. r. b- e if m/=0 then # J& V$ }. V4 M$ B/ \ x( [
y:=y+(m-n);# }3 d) j g! g
end;$ O+ s% k i2 x
9 ^: [# g( _4 }) f4 x8 J! aend;
* T9 H+ A) C/ Xm为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,; ?9 X( W8 u8 j w6 ^+ H0 l2 D6 G
m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。5 p: n! H+ R1 R! C9 e1 n
可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
( V( u* A2 {9 l& C3 p请问如何解决这个问题 |