多谢,我程序
* I- d, J1 S% L" i9 [Methode1 Trigger调用 Trigger定义1小时出发一次
5 L+ b* s8 x4 X7 k; @(old, new : boolean )
2 d8 V- m9 b& J' E0 [' ]1 ris2 L! a) B0 w4 u6 v0 M) O
do# j% e" ]- D! M+ k1 w/ N
if new = true then 1 w, `! J* V' e2 k
Tabelle1[1,1]:= time_to_num(y)/3600;
2 _3 g0 ~2 G! @ z/ y8 ]# x4 } m:= 0;+ o) n4 n4 ~! ^# Y7 o- d
n:=0;/ T1 z6 h6 i& E- Q# f
y:=0; e: ^* l* x: E, a
end;% E4 C$ G. {( V }
end;
7 y4 O2 x) g' a; M$ D9 W+ Nmethode2 Singleproc 输入控制调用+ W1 K0 e( D; G; O8 v. F4 S' r
is
( c6 w" U+ t* P! S+ ?do0 H2 \+ p: b: O6 k1 U% R4 q
n:=Ereignisverwalter.zeit;$ F2 M. N9 n% K$ S
end;/ `/ }6 Y5 s& f
methode3 singleproc输出控制调用
5 ^% h6 B9 a- L* V2 c0 c; y7 Mis
E: r9 o1 Q( p( W, l J+ Hdo1 M3 q8 j1 }! ]
m:= Ereignisverwalter.zeit;
7 _; R+ a6 c8 ~" `. u4 N" I0 \ if m/=0 then
& O/ x4 e& V+ k7 y3 ?* X y:=y+(m-n);) `- C" [4 W4 |1 `/ |/ x
end;
; i4 Z9 u9 l& [( [4 s; U) q; H
* H; {2 C- X, w( T2 oend;$ s% Q( w# y8 `1 g& q. Z G
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间," ? q" `( [/ t: C) x- Y
m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。6 I( a `& Y5 p" S# ?3 L$ ?
可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
8 g9 _ C5 m/ N3 K* `+ l' ~请问如何解决这个问题 |