多谢,我程序
6 Q( o$ s, t% y( X {- rMethode1 Trigger调用 Trigger定义1小时出发一次3 D/ c6 C0 G, N* r* `3 `
(old, new : boolean ), _1 E9 f9 T3 Q! D1 A; s5 j
is2 w u$ N8 [2 o8 k
do
* m: p" e: x" }2 F/ v3 s$ U+ L if new = true then
! M+ ^) G( C8 X. K4 I2 \ Tabelle1[1,1]:= time_to_num(y)/3600;! H/ U; o- o5 `9 _+ t- ~1 ^
m:= 0;
6 i5 E a8 c; @1 e8 G5 d" v8 a n:=0;
* [$ y9 Y. l8 |, B6 ?# o y:=0;
c! X: f7 p' Z1 v( b! E/ `# V, m end;* p& h% h8 C" W% U+ @ h& M" j, Z# {5 v9 M
end;
9 x% b7 i! B b* h2 `7 \- v- `methode2 Singleproc 输入控制调用. `: ^' N9 C8 y, x8 @ D
is' |/ q7 w# W7 V' `2 f7 e: K
do
) h5 Z7 S! W$ i% T6 B n:=Ereignisverwalter.zeit;9 }1 l- a2 h( F# b
end;/ A1 H0 Q4 L3 J8 x0 q9 T9 k
methode3 singleproc输出控制调用% r* g( Z7 p2 h; ?# d2 Z
is
4 q3 l# D) N0 E% Q6 V: Gdo* E9 K; j3 e' F+ h+ @6 U
m:= Ereignisverwalter.zeit;: \6 t7 x z- ^& m3 J: f
if m/=0 then
* K }) ~/ B% l9 H5 K- L' m. p y:=y+(m-n);
: x: g$ J2 u4 s g: ^4 x2 l end;
( i# p+ ~( _2 k & o3 Q6 }9 K# O, h: G5 ]1 e a0 L
end;
4 \! y2 N R! D" Y- p: r2 Ym为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,3 E" m2 Q/ ~0 q7 a% `+ E
m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。( P6 r% E1 F9 M7 |
可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。; d( S" s% {6 u- D4 p
请问如何解决这个问题 |