多谢,我程序$ S. l2 s$ x- B2 G9 i4 _. i i
Methode1 Trigger调用 Trigger定义1小时出发一次: i0 J: b+ e2 J) e8 R( v" U0 U
(old, new : boolean )
6 V' n* h! D) K* @- }4 Y% _" F' cis: {9 B1 O( z4 N
do
3 ]6 n4 i; ]2 \/ \ if new = true then : j- j/ J5 t) [4 O
Tabelle1[1,1]:= time_to_num(y)/3600;
: ^/ |1 ^+ ^( k0 Y m:= 0;& Q& I0 N! A* y9 C& [: c; m
n:=0;
; Q. O- G( M: y* i3 A4 n" \ y:=0;3 I* S: `+ l. a! i1 p4 r
end;
( n; q9 p$ X0 h' H d( V/ {/ s end; 1 {3 E6 N" K; V. }% r
methode2 Singleproc 输入控制调用6 {4 p5 P, S/ ^* S1 H
is
+ E) A# L* P7 o) p8 rdo5 {. O0 Q0 H6 d' z- _; ?2 i5 F
n:=Ereignisverwalter.zeit;
5 `& v" g6 t6 t* ]1 N) Tend;
6 ^4 e, E, f! z( `9 ?. Ymethode3 singleproc输出控制调用
: ^, e; y/ u/ b3 N, a* @is0 F A" Z4 d7 ~
do
: B* a) X8 M3 a: V! G0 t+ h m:= Ereignisverwalter.zeit;
1 U% d& D9 J+ h' [) c6 k$ v/ t( d' R if m/=0 then $ x! C( h; f# W. I* L$ W* a4 ~1 v X
y:=y+(m-n);
+ c0 M, `+ s. `- o. D* g# f end;; e6 k. p) [6 o @7 t& b; L
: F, d2 h) d- m* o: Aend;
) B' ?% s1 o/ ~5 @. s- S+ Qm为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,, R: U. e* p( \- [
m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
5 Y( ~- E1 [. W: E5 _9 C可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
" }6 _5 r+ v6 v4 q请问如何解决这个问题 |