多谢,我程序
! e/ Q+ ?. @3 b: v, _: ~ \# tMethode1 Trigger调用 Trigger定义1小时出发一次2 v* Y2 j2 L; l9 U
(old, new : boolean )
6 C `. P# c/ `6 }is4 @2 A; S" K0 P, z
do
% g; y1 t/ D" H& v if new = true then 8 _. o5 }- b2 _) F1 K9 \0 c
Tabelle1[1,1]:= time_to_num(y)/3600;
6 ~' O5 O# M E! Q2 f! V5 p8 p m:= 0;
, q4 i1 o7 b: j4 F& n6 W* [ n:=0;
" ~/ Q% l4 K% f. f% k" r. s y:=0;
6 x3 y g) M: H# } end;8 N, e& F. ^- x3 }
end;
8 ~( G/ J. X2 }/ y! [methode2 Singleproc 输入控制调用0 Z4 u1 }2 Z1 m4 M/ R$ V, O, {9 }
is2 j" D9 \# ^ A
do! g3 U6 O/ F4 v1 I: ~, f2 A8 j$ T0 n7 N- K
n:=Ereignisverwalter.zeit;
1 f- D: e+ @% @9 x1 l, J" aend;
4 l) W# [$ u% ~' d6 N) M4 lmethode3 singleproc输出控制调用5 H$ x$ E e( H2 |4 H
is. z( D* a8 A6 O0 y4 y; d% E, I
do1 x' i' f6 f6 e4 [: C
m:= Ereignisverwalter.zeit;. E8 f, y2 z5 k+ Z. X
if m/=0 then 2 ~. D6 J* |" I6 {
y:=y+(m-n);
1 ]* G6 j: ^) c! @ end;
8 @7 o% `6 j4 S
. u' F" x0 S4 {7 zend;, w0 J5 j$ y5 Z. A" e" h5 w) m; Y
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,- j( S6 e: S6 O' z% Y3 u/ } A6 t
m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
& t4 g2 q" X2 N' ^& s6 ^可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
& f' V9 X- H. |+ {; `请问如何解决这个问题 |