多谢,我程序# I! v% ^0 X$ g, s
Methode1 Trigger调用 Trigger定义1小时出发一次- L/ B9 d* U/ M- d: v
(old, new : boolean ); T0 Z0 N8 ?, j9 P
is
1 [/ c: N5 g* a% C9 [$ j( E do3 w, x+ [0 N q4 U1 E. N
if new = true then 2 \: {0 B8 i$ o0 F8 D
Tabelle1[1,1]:= time_to_num(y)/3600;
/ d) C E' n9 X ^% n( g m:= 0;+ c+ Y. B8 a/ Z, \ @0 R
n:=0;
3 k+ S- K3 g Q y:=0;
$ v1 }" ]4 w( ~* I% n- H5 T8 Y# | end;% X1 j0 ]3 S3 X3 f! ]1 @
end;
! d& q% z- d+ P. x& L! cmethode2 Singleproc 输入控制调用
5 y" g$ v( i/ a9 T! }# B! Nis1 ^5 o; d0 M& V
do- z* l P b3 k' v8 b5 n+ A' o
n:=Ereignisverwalter.zeit;
' k& I o2 P. lend;6 p5 u7 R0 t2 p/ |0 i
methode3 singleproc输出控制调用
: O2 L9 O. s; F( `: P' ois/ v( Z( t! v+ l. i* A
do
; i9 a8 M+ K3 \ t% u) x: D' e3 T) C m:= Ereignisverwalter.zeit;
; X8 T3 K* o8 h( a: S* {- | if m/=0 then - Y4 I+ h4 U* R% q" @0 }$ G! k
y:=y+(m-n);: }0 [/ P2 D/ r
end;- _% R, H$ _: J# e
% a; w3 Q" \* L# e1 \7 s1 ^end;# [* ^% r7 f6 z5 T& V5 [
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
2 u, i" s' j5 Om-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
# G& G' ^: n2 H# K1 A可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。, y1 n2 \" q: [" P' m* t# G
请问如何解决这个问题 |