多谢,我程序3 g( y* I: O% P& I
Methode1 Trigger调用 Trigger定义1小时出发一次
2 y/ m! M. S3 K) @. p' [(old, new : boolean )" T# W$ {+ R- A# x( ^
is5 n7 s/ m4 c1 j5 w
do. I; W E9 x% E' x( v ~
if new = true then
+ Q5 T5 f m$ _ Tabelle1[1,1]:= time_to_num(y)/3600;% a1 i2 I: ~ q/ s
m:= 0;
# \/ p: S9 P- k n:=0;6 _- W7 |! e+ f% }2 E" U$ `+ `
y:=0;# L0 Q2 s3 w# ?& T2 y
end;! t U* o8 K9 X. T6 f
end; , X2 Q0 n% o/ e f% f* v
methode2 Singleproc 输入控制调用& u5 v! {" w3 C% c1 k) g4 ]) [
is1 P5 f; v/ B5 a" y
do& |7 y( N9 l4 W }& E
n:=Ereignisverwalter.zeit;
; I7 y1 k* o# w8 A s$ E7 e$ E% f! fend;2 g& }( |) s) w) Z- x' P7 O( Y
methode3 singleproc输出控制调用
4 {1 R0 {1 s8 ]' V# @is
- t. I, _4 _) Edo
9 i# O+ g. e) R. F0 q5 C$ ^, s6 S m:= Ereignisverwalter.zeit;: Q1 D6 b/ t' W
if m/=0 then
- i5 a2 ?; W) b2 I8 F y:=y+(m-n);
. b0 F0 ]. Y8 a, y end;: `/ ]0 d/ a5 }8 ?
* z, Q" g, o+ R- u( G r" Yend;& r$ @4 w- v& F2 x2 I" q
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
/ j0 k2 _1 s. |. r9 W% U8 ~m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
8 K1 _3 s( X- J' b" G可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
/ _: m$ v/ @ {6 d: O \请问如何解决这个问题 |