多谢,我程序
0 y6 p0 B# c! [- w8 M! YMethode1 Trigger调用 Trigger定义1小时出发一次
9 |7 n# l0 ]1 m# R(old, new : boolean )/ d/ w" O. ~6 X
is
: e4 r% ?+ B: w3 p1 M do# T& h5 @& N* L/ O# q
if new = true then $ D; C/ z7 v: A+ {8 Y
Tabelle1[1,1]:= time_to_num(y)/3600;
, G5 D6 P, e; G5 K5 a m:= 0;. W0 W# ?# _+ k
n:=0;
1 E, U9 W9 C. P7 }. J7 m( P y:=0;
" u0 t5 K% K8 p- ?1 q7 K7 l" Z end;
* C5 q1 Z2 U+ Y7 r8 b% E, P end; , k9 E1 `+ P/ Y4 w9 c
methode2 Singleproc 输入控制调用
* g3 I/ w0 c/ e1 His
" X' s' Y% z) Q& B1 l% bdo
6 t2 q1 s0 l# b+ d8 s# G6 a n:=Ereignisverwalter.zeit;( ]) o# k+ i3 i9 w2 U- u3 b
end;
4 E: `( N* o. u: k1 k4 |methode3 singleproc输出控制调用
9 ~1 L( A! i7 N9 ]) b+ I: Sis, ^- A0 D3 O/ R6 w6 b' r
do
0 s+ v! W; w! x/ G m:= Ereignisverwalter.zeit;7 A! m! I; e, R0 {3 x9 x; C- H
if m/=0 then
, q! p3 B8 Y' Y0 ~ y:=y+(m-n);$ R, C+ N9 I9 b; |0 u
end;9 x, q2 U4 d, r" h: ]3 d7 l
* ]4 I/ _2 g0 S) n# v. ~2 Z6 Hend;: X0 s/ D0 z0 ?" f
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
" f r( q' l2 n1 y9 Sm-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
2 c( y# O& O, P+ j8 `& @9 [0 @可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。' e' d1 z/ R6 `
请问如何解决这个问题 |