多谢,我程序+ W, |: c3 ]3 D! l( _2 j' d* ?
Methode1 Trigger调用 Trigger定义1小时出发一次
! S6 ?6 O& v2 g, u(old, new : boolean ); q9 D. E* D* q; c
is5 `5 R( m7 {. l" C2 P
do
5 a" B2 K. e! u& b3 W1 @ if new = true then $ y' Q6 q; y& N/ j0 A( \
Tabelle1[1,1]:= time_to_num(y)/3600;% U& e( J H( _6 u7 S
m:= 0;
/ B! Y! v1 J& A/ H+ h# M n:=0;
9 w2 x8 z- D& A. u5 ?* w: D y:=0;& M7 d* T$ A( t* ], H8 ^3 J
end;) ?" | P/ x1 S/ j8 b
end; 7 [, T/ f: N5 @( N$ o
methode2 Singleproc 输入控制调用
3 `; F, R) r+ S. P- i# D$ jis
8 d% J+ C0 z; n9 S) mdo
k$ u4 n4 S' f n:=Ereignisverwalter.zeit;& X/ q$ _, L) X: \
end;
# q3 j# p1 v" |- W% \& U. G+ Rmethode3 singleproc输出控制调用8 U7 v; P# m9 w, j
is
+ ?5 L# Z1 Z# r/ }4 tdo0 k, Y& D f8 m [. e$ w
m:= Ereignisverwalter.zeit;6 r- n: e E i2 D2 W
if m/=0 then O- K" ]+ k" S: \1 a# F
y:=y+(m-n);
( o! X# ]- N1 S0 C. P end;
6 @0 y9 a$ N$ T$ K6 t 2 e$ V$ c8 J/ g3 \/ f
end;
" Z: j5 F% K$ m# Cm为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,2 U+ G5 \ O, v) m& h1 o$ j! g }7 p
m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
( n$ O* H- n7 o' Q& F# t可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
- {) w3 o: q" G& t0 C) R) t3 t1 ?请问如何解决这个问题 |