多谢,我程序
* p9 e2 p5 \5 [Methode1 Trigger调用 Trigger定义1小时出发一次& K0 X2 p! c8 J
(old, new : boolean )8 J$ W) r( J( @( ~
is
0 ~4 v/ T. A" ~3 x do+ ^: V5 G# f* O8 [- i E
if new = true then
3 F' Z) [. e* X- }' b Tabelle1[1,1]:= time_to_num(y)/3600;
' q' B5 o" a8 w# M- m* Y m:= 0;
) k4 C5 n5 Q6 | |9 y4 s" ~: J7 Q+ E) ? n:=0;, I$ O* N6 V, ~ ]. i
y:=0;
( b* y% c5 d+ r# N1 k g% E end;4 @, @+ B5 c# s. F/ f0 z
end;
! |: K& W' @+ D' K4 f" i, u2 D4 D3 `methode2 Singleproc 输入控制调用& u, Z( F) x8 {
is
2 m1 Z% V4 r+ C! fdo7 h3 D- p9 R5 x' R, t9 @
n:=Ereignisverwalter.zeit;
3 c) e0 O$ g9 y. @end;
! z, S+ U; b6 \0 r; f) Ymethode3 singleproc输出控制调用2 [- V2 w& O) N% u3 w# E5 \
is) K L7 S& x+ _+ k" p* {
do
+ Y* j) f) D# W! X3 s m:= Ereignisverwalter.zeit;
5 Q4 \6 I# d, h+ u, O `# K if m/=0 then 6 P( y+ z3 L3 a
y:=y+(m-n); A. l. k: z/ v% W4 U
end;6 K# F% }; r) }: k' L- [, q
S" m4 c4 |' {( I9 r5 c( u
end;: r+ b5 d/ A1 \9 g" V2 v s
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
m5 k3 H$ X$ E! C6 i. i+ lm-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。2 e' E. Z- x1 d4 S' d2 X' ?- H$ J
可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。( c: }# e' h7 }2 {# L3 q! d9 o0 v3 A1 K
请问如何解决这个问题 |