多谢,我程序 l- o1 _, y# z
Methode1 Trigger调用 Trigger定义1小时出发一次2 |1 ^6 `3 e4 c- A
(old, new : boolean )$ F5 o4 u/ b8 m% L
is( z7 d; h% R5 D, U; _
do
4 \; g; s9 h9 r+ R& V1 X7 q( D if new = true then $ r7 \, b+ Q6 i8 t
Tabelle1[1,1]:= time_to_num(y)/3600;
5 P" `/ t( o) ] m:= 0;
6 f$ ~' F- T& p$ \% R; w n:=0;
5 A; [2 ^+ w$ [ y:=0;" B& C6 A8 p$ V7 ~
end;
& l1 A! E/ c* o5 C, P3 |8 j# j- t end;
/ p0 D7 D$ H8 d& X9 _/ f# Zmethode2 Singleproc 输入控制调用) c& U, n( t# K" A/ |
is) v; G1 S9 B. h6 w
do: V3 Q* K5 ]+ x7 E6 I9 ^% o
n:=Ereignisverwalter.zeit;
w# R% z) ?& X4 _end;$ ]" L0 [7 {4 M( l% W4 |& Y
methode3 singleproc输出控制调用
' x" h6 T7 ]" C L/ K7 t& zis
: j. q* \# R2 g. @do. x! \0 A6 k I; {7 E/ x: W
m:= Ereignisverwalter.zeit;
+ L6 O5 [4 A) [$ J* ?3 y if m/=0 then
$ M i+ b2 G7 W y:=y+(m-n);
* F# Z8 ]* t/ r# k- p6 o end;4 h. h6 x9 }8 ~. k C6 p" d: ]( E
$ ^7 m& t! i6 ]# J7 i, e7 ?8 c
end;8 S2 w4 B5 H8 m
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
. F0 U/ H0 w% s$ R9 y1 G: ?m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
5 \1 h( r. H* [' S( I0 _8 m可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。( ^5 r7 S" a# L
请问如何解决这个问题 |