多谢,我程序9 U- c! D! ?% v; S/ p0 u
Methode1 Trigger调用 Trigger定义1小时出发一次2 a% w& F- N& B/ b# a$ P8 `7 ? ?
(old, new : boolean )
4 o) O/ D0 w6 [6 E, \" ]* a8 Ois
5 r. R* D5 |+ H) m+ m do
- Y2 ?' @, s; S. p* X" g if new = true then " v# ?6 l% a$ |9 Q, b' J9 e
Tabelle1[1,1]:= time_to_num(y)/3600;
1 ^8 f: ^6 P6 j6 M m:= 0;2 R$ E/ a+ s3 W3 P
n:=0;( V( z8 r2 A5 [7 Z9 s
y:=0;
( S# ~4 Q3 l4 g4 _2 Q N end;
/ \6 U& x/ C; ?. |& T x" o/ B end; 0 i, q1 Z0 D3 i! R+ {+ |3 d! N9 w; K% W
methode2 Singleproc 输入控制调用
- |7 d, A0 R2 n* y" R( N. ~7 Lis. B/ ]$ K* z/ ?
do
; A$ x2 V( e& ?4 c( r7 Y9 w9 Q n:=Ereignisverwalter.zeit;0 K( l# c9 D L5 f( g( H
end;
, i$ T0 `0 z9 `) A& }methode3 singleproc输出控制调用' q# h4 b4 \2 @9 I; B# l" ~# t7 H
is
& s2 B- |; {# I0 |3 g. _5 ado
. X7 S( T% v j6 P( w0 A/ j7 B+ d m:= Ereignisverwalter.zeit;0 s. |, v$ _' `4 B4 ^; W. s
if m/=0 then
1 o! ?6 J: l# e: } y:=y+(m-n);
5 Y6 J9 K0 J9 {9 L5 H( F- V( q4 n end;6 n( _6 z6 K0 ?/ O( F3 ]
/ Z. ?4 i4 Z4 F; J8 f
end;
7 l/ b6 J4 X3 _" ], w3 w% `m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,5 R' c3 { x3 ]
m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。0 b1 u) ?* G& l, q
可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。9 l5 z( t: I% O. |
请问如何解决这个问题 |