多谢,我程序2 x" T+ z1 C, I: a5 x
Methode1 Trigger调用 Trigger定义1小时出发一次
9 C3 {- x, t1 v: M" f(old, new : boolean )8 A2 E- ?! l$ Q ^
is$ F N8 s* {6 o% N! u7 U6 H3 m: i6 m
do9 L( G5 o# A0 N2 E: Z+ b" v! r
if new = true then - G7 ^+ u5 W; I# a
Tabelle1[1,1]:= time_to_num(y)/3600;
0 b, ^" S$ N/ Q9 a3 O+ Y m:= 0;
2 ]+ [" G% R: Q" E4 E n:=0;
$ g) P) }* x- Z5 t y:=0;4 k H, l! [' E6 j( r
end;
4 T b2 g; J. |9 L, l3 X/ h6 \ end;
7 |9 g j* ` i$ g2 D8 m2 ` n/ }methode2 Singleproc 输入控制调用
, L# ]% [3 {. c: B# M7 i" wis4 d: U1 g( R A. K. }
do
8 E. w1 x9 V1 \( D* B3 ~8 |1 e n:=Ereignisverwalter.zeit; _+ N. k% z! w& n s3 _$ V% j
end;
8 Z3 G, A: J" i: O1 y. s; k3 ]methode3 singleproc输出控制调用
% f/ O% {& }0 W6 I1 Lis& Z6 E* @. X6 E0 R0 ~( @
do
3 V( i' B' J- e n# ` m:= Ereignisverwalter.zeit;
! i3 a6 d6 d( V' {" W if m/=0 then % q0 T! n0 _( v0 H, m
y:=y+(m-n);! _8 F) a, x4 ` `+ M) u
end;6 I7 w/ C3 [# Y1 V: W
+ e3 G- o' C$ @4 |7 vend;
+ i# B9 X9 |5 i. W$ A* ?6 vm为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,6 S; X' D+ R2 Z3 `5 i$ j% V+ W; p
m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
- v6 Q! V+ M3 |1 U# ~可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。! D7 }% m/ [% @: P5 i
请问如何解决这个问题 |