多谢,我程序
2 T* G$ Q5 S: E& Z+ ?7 E5 iMethode1 Trigger调用 Trigger定义1小时出发一次3 S! i3 f& y& o/ y( N
(old, new : boolean )
1 f! _- e a) X0 ?is; b5 O6 i% P; c
do% q: h/ V7 o" s0 I! [
if new = true then . |5 ~' f* e9 Y7 G% C. d
Tabelle1[1,1]:= time_to_num(y)/3600; j6 W" N, u T% B" S5 h+ U
m:= 0;
! [% M7 D6 [! e: P n:=0;$ {' f$ O, H9 ]% d4 L9 ^
y:=0;
. X8 c9 v2 s: m* K end;
* p( M! q1 N) _7 J/ w, c end; 1 O9 u# L* L- i( i c+ Q$ Q
methode2 Singleproc 输入控制调用- z- c+ z( U! Z2 |2 V* ~ i
is$ F; r/ C' T% O
do/ g6 P% o. J7 @+ I' P
n:=Ereignisverwalter.zeit;0 E) U& |4 r. }- ]
end;. K" D' G8 A- n8 o4 Y) h$ y
methode3 singleproc输出控制调用- \/ l: {& N1 Z# }
is
6 |% R, X( J1 ~6 U2 h' I5 kdo9 j; j* C* C' D( @) f
m:= Ereignisverwalter.zeit;
- }0 r* V3 f- ^7 Q; [3 d+ y0 ^ if m/=0 then
+ s; }. g0 Y4 g7 {5 n! ? y:=y+(m-n);) h: p, @6 [" ]4 i
end;
6 q6 @/ d7 M- U% k8 F
3 r5 Z, z! x# U2 c- _! \ Wend;
$ T- X( o# `4 d) t9 L) ^* N8 ?m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
/ S4 e4 A, O1 m( nm-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。) z2 G- E5 R4 s: Y$ e& z0 U
可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。! i; {& S2 R. [- i; a+ W2 a0 I+ y5 M2 Z
请问如何解决这个问题 |