多谢,我程序: s! C% q& v5 }( ~3 U% _8 v, U
Methode1 Trigger调用 Trigger定义1小时出发一次3 z% t/ l# ~ {7 W5 n* h% e- w
(old, new : boolean )% M! z2 L) d( v1 y Q
is, ^% k4 @" G0 N- j7 |
do
) R) P# u3 y: d Y1 C9 H0 z if new = true then
# G. O2 k! p0 q; @2 Q8 T- h. b Tabelle1[1,1]:= time_to_num(y)/3600;
- r- z" t# {5 ?& R4 y m:= 0;
: r- d9 b) l# V, p1 N n:=0;7 y; I2 D. W) O9 |
y:=0;
6 h" Q4 e3 W L1 Z) ? end;
! [+ H2 C" B. y, ~; c; K3 j% s end;
9 H6 f2 i( B# Y U) t# wmethode2 Singleproc 输入控制调用
: x4 Y8 J; D2 ]1 dis
5 n: K: y9 H4 @8 i7 t7 G" hdo
7 L/ [) ?) t5 }4 l# ~! G n:=Ereignisverwalter.zeit;. b0 |# w& L6 ?! b; k. I% e3 R
end;
% W! S) [& @6 s9 C% F0 K2 Z; J5 G Jmethode3 singleproc输出控制调用: x2 ?8 @5 z4 r1 f5 c. F
is
8 Y! T8 e% Z0 Vdo
& o- n# g1 H5 s* F m:= Ereignisverwalter.zeit;. }+ |( V# x: p+ o' h9 T, f, T" M, h
if m/=0 then
, M5 x2 u$ f# G/ Y# r" |, i8 [ y:=y+(m-n);
! y9 |6 j6 r: D* J end;, R. ^ ^& w8 f; X% G
% P& X) D' y+ X, G0 G' B' yend;
: u5 f" o; j1 i5 B7 O" Q! n/ {m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
& x9 x% {2 J+ c xm-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。# y$ Y5 {% `1 o. p! W: o5 U, y
可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。+ _7 V/ F q5 F2 D1 t
请问如何解决这个问题 |