多谢,我程序
5 I( |4 v! C$ V8 _$ sMethode1 Trigger调用 Trigger定义1小时出发一次
1 J% k* k$ z9 |' ?6 B% Y) Q(old, new : boolean )6 ^# T8 N, H: C9 E7 o" U8 @3 D0 h
is: u* K3 y3 J+ o7 V+ i) r2 ^
do
. V7 w! w8 j4 Z3 c1 p2 l3 C if new = true then ' E6 I; R- P7 w: B, n- L
Tabelle1[1,1]:= time_to_num(y)/3600;
: U! b' T2 Z/ V m:= 0;, v6 I; P' K6 s1 ?& p( |
n:=0;# [& a8 V4 X z) O! f" S/ E" H' R5 O
y:=0;7 }1 K8 V1 ~8 ?, t
end;
' ~1 j7 l6 o: P) _: |6 S2 j end;
& V9 I& F; s- ?methode2 Singleproc 输入控制调用
. s+ g) o* I4 kis
, K. p+ k5 C- T/ Y+ W, Jdo. D/ p" k, E8 M2 E! c" b
n:=Ereignisverwalter.zeit;8 v- F$ P( h5 K) U, {
end;% v0 z" ^0 v+ D7 n; s, G4 u/ r6 v
methode3 singleproc输出控制调用
' L1 G) Y" ]( w o U7 Gis! R% {% H7 F$ O8 F4 v
do: I. a, m/ [1 f, w( M+ g s5 B
m:= Ereignisverwalter.zeit;( s% O$ \& V4 c4 ]3 B: ~
if m/=0 then
5 W' R- F2 W: y. G! L y:=y+(m-n);
. C4 V+ k" g8 I6 n end;
B. ]5 L' f9 _3 N4 m
, @- {* k6 M$ Z, ^9 q' `% ^end;8 m- v0 c: e, E1 q
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间," E) i' e6 V) A) U; e
m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
9 P4 [5 J5 Z1 Z0 T e可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
* X/ L4 z: i. f) D5 q' g l( N6 ?, l请问如何解决这个问题 |