多谢,我程序
$ f. Z/ G; \# p/ |1 PMethode1 Trigger调用 Trigger定义1小时出发一次0 _. E/ ^, k. ?* u7 A3 j
(old, new : boolean )- h' R8 s, n, n
is3 J6 Z& M" @2 ^% m% T3 t% }
do1 F5 c. m- U3 X$ N$ R5 T- E
if new = true then
; {( f7 r" O! E Tabelle1[1,1]:= time_to_num(y)/3600;
+ G5 h1 w$ F* C5 V4 n' k6 p m:= 0;
. c* w) K9 n0 C( C0 t" h n:=0;
& ]% ?: [2 g4 \ y:=0;
]8 C2 f: }" f( ~0 m end;
) L- y- r' ?* N end;
* p9 j7 g. A/ g$ G' b: Dmethode2 Singleproc 输入控制调用
" |. a- V: T/ S8 k/ dis5 G0 z4 {8 Q0 O
do; m+ F7 a7 ^% k8 V9 Q
n:=Ereignisverwalter.zeit;7 A- P2 B3 S y: Q2 w$ p+ B9 i* _9 [
end;
2 X- B8 n( \( h) u( ~; {methode3 singleproc输出控制调用4 `1 B$ {# H; ~' O; F" z8 R
is
7 K; y# u+ |. h1 v' M* Gdo
5 m" ]7 m* z$ W: t" s9 Y m:= Ereignisverwalter.zeit;8 Q+ h' b9 h3 R! A2 ~, ^
if m/=0 then 7 \2 M) t4 d8 u) _. J$ ?5 E* }
y:=y+(m-n);
\: x- w1 H% @ end;
- q: ~ r- c, C7 N t $ K/ E ^( F, Z& a. I
end;3 {+ N9 l8 z/ ]: B2 s/ T) S
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
8 B; C3 h3 d) Zm-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
4 _4 p* m# R i9 Q可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。0 a" I9 V7 P+ a
请问如何解决这个问题 |