多谢,我程序
' k) X3 O4 b* x, ^Methode1 Trigger调用 Trigger定义1小时出发一次
* u1 s/ L& j% N3 G(old, new : boolean )1 t9 l! E' O0 F. _; n' z
is
- T0 S& S& m& H$ o1 _+ S4 C8 a do( ]1 w3 a1 P& S7 ^4 J3 n! E
if new = true then ( Y Y5 \3 X. q. s
Tabelle1[1,1]:= time_to_num(y)/3600;
+ z9 s4 p8 @8 P: n6 E6 c2 { m:= 0;6 m3 E) f* K% ^& Z; U
n:=0;
) k9 v, K1 V c2 z, ?+ f y:=0;
4 k7 V0 X! r1 \, G end;% s% o! C7 B w' K9 N
end;
. f; f/ ~9 U+ C2 z* W0 U, Hmethode2 Singleproc 输入控制调用
1 C1 H, ^" S. m' ?+ g: Q; r( c, Yis. k9 b6 U+ z% q7 R2 g/ L* ^
do0 F5 y. J2 [$ Z
n:=Ereignisverwalter.zeit;4 Q5 c% P6 S+ n/ M% d0 b7 C
end;$ F" _5 T: o; V* a
methode3 singleproc输出控制调用5 N+ ^$ k/ M) J( k7 w K; C
is
6 |* ^& k2 W c7 Y0 ]do
) c* x8 U% @. q m:= Ereignisverwalter.zeit;8 B4 l8 r' M5 c3 I# ^- U; U
if m/=0 then
8 f7 z# }! {; I. Y0 v y:=y+(m-n);, r& I6 ^. {, _% `
end;2 [1 ]$ w) u- h9 j
9 u1 h- i' a8 zend;0 ? i$ L; t0 {0 B
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
& [, b2 \) d% I) P. e. w/ @9 }m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。- ~- q* f; X' N& d" Q2 q! U+ @
可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
6 M# q, R) H5 s6 y6 _# y请问如何解决这个问题 |