多谢,我程序
0 l" D! n0 X: o5 d" g) tMethode1 Trigger调用 Trigger定义1小时出发一次8 [. ?2 u/ i8 |2 ?. b9 E p
(old, new : boolean )
4 l5 r' e: m1 [: E' L( I8 Cis- p" L! E2 q6 ~8 ^; R3 o
do: q& k: d! Y+ T2 W1 q8 ]1 b6 l
if new = true then
. H6 p* M0 Q; s$ S Tabelle1[1,1]:= time_to_num(y)/3600;
. R6 H m& X$ _6 i& c& e6 d" [, f m:= 0;6 }; C4 U) W& n. V2 I5 T8 O( Y
n:=0;# u t/ k$ A, E! U! d% r. O
y:=0;
8 `" B; Z, H2 \ end;- `1 ^: |" {, P- G" x& N# [
end; : @, x, }; a- b* W* t
methode2 Singleproc 输入控制调用
9 c4 e" I/ Z" K* jis
$ N$ z2 K, ]' L7 e! zdo
2 M- A7 i: G. [3 K: g. Q. v n:=Ereignisverwalter.zeit;; `( p5 w7 r! _0 [: M/ q0 n& B6 S6 h J
end;4 U' A: z1 b$ O4 ]) ?
methode3 singleproc输出控制调用
@" q7 |" N9 x' l- [ k: xis# I% i4 u6 q* a
do
4 G" H! X- N6 b! H' g1 u m:= Ereignisverwalter.zeit;$ B5 P$ {% ^0 C; h- e1 H
if m/=0 then , c9 u: T( L* N
y:=y+(m-n);
5 K( {6 o# m! o% i2 t. V' z end;5 L. I- E( ?/ W
- C% o, c0 ]# X( ~5 Q+ S Z. `end;
& p7 D+ s' |6 f& Z9 am为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,: X$ w& T4 s+ r7 X" d; J& z
m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。- `; K& z: V$ h3 w: Y% j" S
可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。 A8 d5 W2 v) b! R' s
请问如何解决这个问题 |