多谢,我程序
: e: B% T: d2 yMethode1 Trigger调用 Trigger定义1小时出发一次: q, ^ R9 U5 _% a! q# G
(old, new : boolean )
$ I( \; ?4 u5 F/ W$ Vis, b6 ^1 ~* Z+ v( I) r3 H: ^
do, m# \9 o7 l) n
if new = true then
2 F, S; ]1 `3 X* { Tabelle1[1,1]:= time_to_num(y)/3600;/ c$ @1 ?9 f. ^4 R6 m
m:= 0;! O, X: A# F8 B; h/ w9 K- e
n:=0;% e* p. T' n E7 u
y:=0;
+ y3 P3 m( E9 v) V' x! o! D- s end;( C+ _6 U+ A9 f# Z- }$ x5 E! I
end;
7 C# o) a3 [! `# y. umethode2 Singleproc 输入控制调用
. k/ Y+ N- U9 ^) yis( I/ V. T8 ?. X# t
do' M, X6 ]3 T% f9 e7 ?
n:=Ereignisverwalter.zeit;
) \; b' T$ r2 e4 }; T! xend;
& l- q+ w6 s d8 @# Qmethode3 singleproc输出控制调用
/ Z J5 e1 z& iis' i8 O( w$ U. D' O0 a
do
! a: i% w9 i8 o. B/ v; M5 X m:= Ereignisverwalter.zeit;
. G& w* K+ |/ J) i, X' S9 r if m/=0 then 1 C" u# ^+ g" ?. q
y:=y+(m-n);
9 n3 }& b0 j6 f end;# |3 f- y5 L2 P$ \
. s' e/ e" a! f z
end;' P2 h( ]% l/ {% I9 O* z
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
3 h/ M: e' Q6 P0 E# r' Ym-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。2 O: M9 O3 P; h5 e+ v |& K4 U
可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
9 Y& }2 ?' e& E6 ]8 I9 ]( W请问如何解决这个问题 |