多谢,我程序
' S! z" P+ h1 K+ S6 BMethode1 Trigger调用 Trigger定义1小时出发一次9 M5 E' ^7 G2 H4 F* B. X* m% L
(old, new : boolean )
: Y5 S' r7 e0 H! @: C; e) A7 q1 Qis
: k8 r5 ?% b$ X( e( g do2 f; Z s; j6 h; S( g" Q
if new = true then 7 F& ]9 h. H, l) n4 D, ]9 {
Tabelle1[1,1]:= time_to_num(y)/3600;
/ S6 ]- s% p' j; h m:= 0;/ j2 e+ J+ [1 _) Q2 F: G
n:=0;) e$ M7 J. [2 f* O
y:=0;9 S2 j. j( P8 T r7 M# O
end;' E! d7 R4 r4 {/ j
end;
% s$ q5 ] B* Ymethode2 Singleproc 输入控制调用
5 `' ?+ N1 W* F6 \* ^is
! U# E: C. @ }* {2 v$ c- Rdo
4 g2 \, H- R7 c' g0 n; c7 l: U3 F n:=Ereignisverwalter.zeit;$ W3 c5 m! Y+ u; w" Q
end;; Q' ]- C/ e5 |& l
methode3 singleproc输出控制调用9 [; Q5 Y) J$ I: W2 j
is
3 ]: X* I9 g. V4 H$ K8 xdo# _0 l% {# t% y I
m:= Ereignisverwalter.zeit;: e8 p4 m& m. X( l9 a; J
if m/=0 then
+ h. t# D! m% x. b y:=y+(m-n);- _! W3 `; O' f
end;
2 J6 e' |. H: w" b- o7 j7 y 0 m0 K* U, Y, [0 Y" o
end;% i# w7 T$ c! V* X
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
3 r: [7 ~7 h4 n4 Im-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。' J9 @/ A: T' v/ O$ P* u
可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
( v+ ~7 {5 k' g请问如何解决这个问题 |