多谢,我程序' _, C$ M! j9 k' ]6 m
Methode1 Trigger调用 Trigger定义1小时出发一次) x8 r$ I8 w% v" @% J4 t, k/ }
(old, new : boolean )
( `; V* V, \0 m v# T! Uis
( H7 m6 v5 Y3 [/ o; ] do
" R' I& Z/ d) e& P if new = true then + |+ \( r5 c, W6 P$ a% T" n( T
Tabelle1[1,1]:= time_to_num(y)/3600;2 X! _$ P0 ]; I+ q2 G
m:= 0;/ _; M; W* s/ e- S: E5 q
n:=0;1 u! t( I/ @* k% @! H5 g, z5 X/ i
y:=0;9 K% t/ s+ y6 Z% K$ G9 ~
end;* f( n0 W- @. l0 t
end;
' o. y* u; e$ M9 V5 \, H/ imethode2 Singleproc 输入控制调用5 x7 C, L( J" j. X& A/ `
is
/ v3 _" z1 r+ L. N$ t Ido: a/ `6 Q( |0 q" K# h, ^! H
n:=Ereignisverwalter.zeit;( v( W* i! F6 {* O: R! l& {( ?
end; j1 t0 f! x$ j* @3 J. e5 X
methode3 singleproc输出控制调用+ S9 h- h7 r7 c) T7 n6 m
is
1 g( j9 I! x6 k7 J7 J3 }# D9 z' hdo
. A. v. Q8 A4 [& P" _7 A" t2 f3 ~: s m:= Ereignisverwalter.zeit;) L* M3 C1 p0 o
if m/=0 then
" F$ [, R" b. n% l+ e Q8 B- E& d y:=y+(m-n);( v2 f: I& u3 E: T
end;8 o6 p: i& i* }
* {2 _( B* I5 C6 T
end;) [7 j$ V( i6 e5 ]
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间," d! r' ~, b: b3 @7 p) h0 r
m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。* ]9 M4 `7 @( G' N4 d9 J
可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
" J( N2 h3 S! g/ }+ q& k请问如何解决这个问题 |