多谢,我程序$ y& N0 K* d; _) `
Methode1 Trigger调用 Trigger定义1小时出发一次4 Q: T' s8 J8 S) R, Z# {2 {5 [2 `
(old, new : boolean )- K6 a; m- V6 o, u& j, `4 W3 ], I
is2 F& O) F5 e- q. i4 r% O
do; R- g. C7 \: p* B" ~2 x- W) V/ T# W
if new = true then
) I% q2 T. N5 b! g/ o1 `- x Tabelle1[1,1]:= time_to_num(y)/3600;" ?7 L% ?" @; t
m:= 0;" `1 y% ]& c: s6 g8 r" X( |
n:=0;. i4 T9 t6 f5 ~: L: k
y:=0;
* `) m5 k' t8 ? end;& M, F, A% d! j! a" G
end; 7 M" B7 _; N! H0 g: h+ D0 ~
methode2 Singleproc 输入控制调用
& b% W; p1 k" F+ ~0 h8 Yis
; m: N3 ~- r4 ?* s& x: Ido
$ a" X6 }/ ?& `9 |* A n:=Ereignisverwalter.zeit;
" }2 M8 r2 E5 A* A/ Pend;6 k, x4 S/ g! _; O+ i2 g% y5 @
methode3 singleproc输出控制调用
7 l/ y# o* i1 o% _) ^7 `- |is
4 ]8 u, b9 h" O8 }" Odo
& t& X5 ^! U( \' e m:= Ereignisverwalter.zeit;
4 O2 v1 V4 j) ^5 m! h4 a6 O if m/=0 then
* t2 T; B" N! P/ h& ~; l; o y:=y+(m-n);
% a* j/ }' J' L end;9 T3 c& b6 j0 z3 R1 E# q" r& x# Q
/ k' P* q" L( P
end;
: d/ I( |) s# N8 z9 vm为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
, T1 R4 K5 e6 @( Q& _5 J J# _m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
# f: _: v+ c L; A5 F0 @* u可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。& Q& L9 A0 I- ^8 F6 }+ A
请问如何解决这个问题 |