多谢,我程序
; I+ J3 {% |, ZMethode1 Trigger调用 Trigger定义1小时出发一次0 B$ v4 U- Q6 e0 e
(old, new : boolean )
5 b$ T7 |' h9 W1 c8 q6 R# D5 ?is
1 Y+ S2 y% f' ~5 v7 j do
! I) ]! {# r9 O% i if new = true then
5 d1 [& @2 M4 C Tabelle1[1,1]:= time_to_num(y)/3600;: j& U9 U" `6 `0 ]: q- C
m:= 0;
4 F& p7 x v q' U: w# C4 G n:=0;
' ~8 h1 w' \- V: E, C R y:=0;! |4 Y' n0 I- g* y% c% Q \4 C4 }
end;/ J$ _! f; X: p; e I
end; 0 [* I" `3 }: d! N
methode2 Singleproc 输入控制调用8 O; U; b, o; W d6 r
is9 R/ p# O* d. c2 M
do: `$ x4 g- G) o3 L
n:=Ereignisverwalter.zeit;9 f, n' A8 u; M- M0 K4 i! E
end;
) N$ e/ V) I' x {methode3 singleproc输出控制调用
/ O" @. n& O6 G2 M& X, {is. R1 W. s/ h4 ]3 d
do
4 L3 i1 V, k) M8 t, ^& K* Q2 s m:= Ereignisverwalter.zeit;* K2 r ~0 \( d# S% v' |1 |& O0 O; G
if m/=0 then # O, R0 G% S8 G" X' i! Z
y:=y+(m-n);
8 |8 u8 \, V1 M! s9 K end;+ F% F! i- |2 R/ Q9 A$ k" ^5 E
5 H7 k2 e. N; J, R" Xend;
+ n% N+ i! y3 H3 x5 h& um为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,& i; M8 u% a1 n6 N9 ^/ n
m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
% b: A& }" D# r4 k! J: O可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
) _+ }5 u( q+ h$ C* V! R6 t, m请问如何解决这个问题 |