多谢,我程序
1 W6 i- K7 ^3 b7 R. r* u2 }Methode1 Trigger调用 Trigger定义1小时出发一次' E. @3 {0 G/ c I. `
(old, new : boolean )
& k/ n9 [; w: y- x1 [ Y0 }is& H/ n. O Y7 p) ~
do5 S3 A# e/ [$ ?6 v6 k( O) R
if new = true then
! n- c9 r1 F' `! _: K$ ~ Tabelle1[1,1]:= time_to_num(y)/3600;7 I, x6 W+ d: t5 i, e
m:= 0;# Y3 j7 {# a4 N M
n:=0;) }# ~$ C9 ~3 r' ~7 T- a& D3 i: Q! y
y:=0;! G @9 O! z8 Z: h7 Z4 F
end;
" D/ R4 h+ x. n5 r2 ?+ O5 o end; + W( g1 s, I2 A4 z4 }
methode2 Singleproc 输入控制调用9 f! E! `! c/ R& A; ]! ?0 \" t
is# ?7 J. i1 l7 q q/ ^
do
6 G( a) E, i5 e* L# o1 f8 f( P5 g n:=Ereignisverwalter.zeit;
( ~7 X3 \% a1 Q. Q: Zend;6 N* J6 m) @) G3 d
methode3 singleproc输出控制调用8 ~* s P2 I% n! }
is) A) s7 Q. T2 x
do
% C% P- M: [4 F! |& K1 `* ~0 i9 B m:= Ereignisverwalter.zeit;9 O* i! |6 v) {+ K, R1 U/ {
if m/=0 then
- }7 v0 r. i4 e y:=y+(m-n);
2 t5 _7 y% k' J) C& |9 G/ m6 z% Y6 N end;
0 p% [6 @0 R( m% m, T. h( `$ t% G
( p; T; J, c( C, d; ~end;* i2 \9 B2 x0 Y4 f3 B
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,, t: I# B$ ?+ ^
m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。! H: H7 C+ Y7 E
可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。4 g2 e# P/ ]9 M: R* K/ b; I( S' Y1 B
请问如何解决这个问题 |