多谢,我程序- K% o0 ^: j O6 O3 }
Methode1 Trigger调用 Trigger定义1小时出发一次
. |9 t1 K3 E$ l1 H, e4 O(old, new : boolean )3 o7 | W5 a% e0 d( x. M! z
is! Z' Z O/ \+ ?' r
do
# {8 ^5 r6 l6 g- E* x if new = true then
, r P$ D* x7 L) C, u Tabelle1[1,1]:= time_to_num(y)/3600;
+ e* Z4 o# v4 y9 I m:= 0;
7 ~! w: ^) ]1 {. a ` n:=0; u; Z, k8 F& l( m$ F
y:=0;6 ^# ~$ }* }/ c) `
end;
* ]; t5 M! y- G0 Y+ H9 D9 V end; # ~2 Z2 J: `& a! S0 `. o! r) z: R" r' ~
methode2 Singleproc 输入控制调用0 j( y' U$ ^7 i) V! G! J7 N( Z
is
1 h1 N' s/ n# P9 |do$ c0 o8 |$ m8 q4 B% ~
n:=Ereignisverwalter.zeit;
9 j$ r& y* c( l3 q+ gend;3 z1 O6 w/ }5 C$ b% K
methode3 singleproc输出控制调用
! j X# P# Z! g+ l7 Dis9 d' g$ \' E; F3 O- l1 T
do+ k; h0 `5 z' d) s; z' g2 P/ p
m:= Ereignisverwalter.zeit;
4 P; Z4 n: X/ c! e, m if m/=0 then
' f- W M( N7 [$ Q y:=y+(m-n);7 k. K2 x# d. `7 H: x2 H" r
end;- s" s+ @5 [4 O. i; \
6 p0 t, [8 l: f" {
end;9 a. |0 W7 ~( k1 x
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,! Z' I7 `; X& ?$ N: [. r/ t
m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
$ H* Y: S/ U: m, Z可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
9 n+ X) B/ }1 l/ j请问如何解决这个问题 |