多谢,我程序
0 ?6 d; @, j! o; tMethode1 Trigger调用 Trigger定义1小时出发一次- ?6 m* p/ D( N, P' a4 j3 _
(old, new : boolean )
( f2 y1 Z" ?6 U- V, W5 W! h. His
' y; T# C1 r- r5 `# y. n do9 C6 i, I% d# j c" I- {9 Z
if new = true then
1 c5 r% H) k2 w7 ]! m Tabelle1[1,1]:= time_to_num(y)/3600;! _& a( w# l( q1 ^
m:= 0;3 s8 \( R' M: n) t
n:=0;) }" W" E) a4 g- } E. Z+ M
y:=0;* a2 |2 b. ^: W# A
end;6 q z4 \/ {% p4 M9 v8 _* Y
end; ! m6 ^8 D1 W1 J1 q! {
methode2 Singleproc 输入控制调用
7 W+ D! u" b0 `/ c, l$ sis
9 p1 }; Q' U7 P. C7 N- U6 H- Ado
5 [/ Z4 T5 Y* W5 i" s( o n:=Ereignisverwalter.zeit;
- u* A; Y2 R( v+ F% dend;
6 v. `+ |# q7 O# rmethode3 singleproc输出控制调用
. Z. C5 T8 _$ i+ z( p7 t- [is2 l" g+ m# i# p/ R+ u0 _) G/ o4 H
do# z& N7 L _, K) Y
m:= Ereignisverwalter.zeit;( ]; ?( O" s% O0 p6 R" h ?
if m/=0 then 1 y/ l1 g, c% c: Z0 \& F
y:=y+(m-n);
6 O1 F; r5 d3 q L# B end;
2 p; F: t% F) X! u
5 m1 R; W K M& t1 D' ] oend;% K- v0 k. w! e( m
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,; t9 Q8 g+ }* J2 p/ U
m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
$ D# Z# E [& v8 R4 U可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
, ]/ A* D E7 Q! c% }请问如何解决这个问题 |