多谢,我程序- j5 r1 C6 y& b& o
Methode1 Trigger调用 Trigger定义1小时出发一次) |) E/ M: Z* E% ^; g
(old, new : boolean )
5 }6 S x5 }* x$ l- M) ris! d' {+ ?" L& E4 e4 K1 ~- F: p* S
do( P5 E5 A; e* V" {
if new = true then
: W7 W I* x' l7 m% k( O Tabelle1[1,1]:= time_to_num(y)/3600;/ g# `. H4 P" P/ U( V) x
m:= 0;" c$ q2 i' c; y$ J
n:=0;
' B& a5 v9 j8 ?+ T: [; S5 C2 t, b y:=0;
4 g; @3 v! N" r" @ end;% P1 Z3 m9 B/ J6 E* R; W. b" y6 B
end; 4 O0 s- L0 q+ ~. g1 B! V( b
methode2 Singleproc 输入控制调用
$ | g7 E2 Z2 ]is: X+ J- R, t* e
do& W" w' W/ c* [, W/ m
n:=Ereignisverwalter.zeit;
1 ^* m) C! |) q: n h- ^% b& P9 Tend;# t+ g2 `" p% N: O4 L
methode3 singleproc输出控制调用/ O7 T; e8 c E" q/ a
is
; O% P) U% l. T, t {do
2 u' p9 @3 q6 r m:= Ereignisverwalter.zeit;1 ?) e! m9 q2 A9 X9 m
if m/=0 then
+ d- g0 K* ]( E) J* t y:=y+(m-n);
/ {8 c7 t. d& S- O( I4 k end;' p) X( ?$ z( @! h$ X- o, S- u+ \
% v$ G( |! l/ @' x# X ~+ Uend;. G4 Y, W8 I; D. X
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,% X3 d+ d: k- M; p, f" Z+ ~7 `+ b
m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。2 J: w0 o5 c7 C$ h$ C& c: Q
可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。# Z/ E( J* Z2 T9 L0 s$ C& p
请问如何解决这个问题 |