多谢,我程序) m, d6 E2 b; [
Methode1 Trigger调用 Trigger定义1小时出发一次8 g/ f: g% r, Y$ h/ \- T+ }
(old, new : boolean )0 }+ ^; |% y' k7 W0 S$ L' {/ _
is: |7 N( u6 a* q( j+ i5 o3 A
do$ u' w& c+ v2 N5 e9 K0 q- S
if new = true then
9 s8 ?0 [, r! f1 g# | Tabelle1[1,1]:= time_to_num(y)/3600;3 y1 E- S+ h: d* v8 _
m:= 0;
! c3 C$ Z' m% w* m7 h' v n:=0;0 ], B Y/ e3 O# j6 r4 j
y:=0;" p0 I1 J! d( B1 y c
end;, U" K% q/ q: D* `
end; 1 f" `6 q V) M
methode2 Singleproc 输入控制调用
- |5 w# D$ O9 B1 s8 tis
5 V7 J5 o/ R: zdo. r4 _$ n. u5 X
n:=Ereignisverwalter.zeit;
7 v' ` Y) s% T" R4 E1 ~. c) m5 Dend;
9 ^0 d J# Y1 g* \" M) j! ~9 _methode3 singleproc输出控制调用; f0 m) p" T" v4 [/ @) Q
is
' z7 c+ V2 k/ b- ]/ g+ ?do1 ?; z H+ h- l0 K! E Y
m:= Ereignisverwalter.zeit;
' d4 x2 ]! L) L if m/=0 then
6 h- A0 G, B3 p4 G& ` y:=y+(m-n);
; T4 z, v1 U4 }! p( Z$ j end;7 X. P( k; Q) X% u
) A& J7 C/ J) N6 ?! o0 Z
end;% n. @1 h. G- q1 D+ k
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
* q1 U$ C, c% ]6 Sm-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。( ~# X) T E- s: {, Y+ l4 q
可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
# H6 m0 o3 q5 f, e7 v2 T; |& _请问如何解决这个问题 |