多谢,我程序
9 R7 X6 m$ V2 x/ G5 \4 D; n. L- eMethode1 Trigger调用 Trigger定义1小时出发一次
, |+ ^; T* }; `- m(old, new : boolean )
% e8 a' h( a6 b7 W4 `) D6 d& Mis
) x8 [2 l& l! o, k4 U! H5 J do
' j, l U% W, f M- P& u6 b$ u if new = true then
1 B! Q' f4 O% Y8 @ Tabelle1[1,1]:= time_to_num(y)/3600;
/ A! s$ ^7 t7 [$ K5 @7 }4 Q/ N m:= 0; s5 h. _# ]3 v" u, Y/ R! i
n:=0;
5 ]& [8 O& x" A! w+ [/ U4 Y) O y:=0;+ k, `: h M4 J) B4 ^- }/ C
end;" k2 h! [0 _. Z) @" Q
end; ! _1 o& a6 x/ ]; W# s
methode2 Singleproc 输入控制调用
& k' T& t: p! R: p7 ?- zis, N) Q/ N5 A; B5 c& O; A1 O
do: @9 `3 s% X2 G: `
n:=Ereignisverwalter.zeit;1 D! X9 r) O& M1 R8 i0 I
end;
( B K8 P+ L, @/ E! k( emethode3 singleproc输出控制调用7 t) {% u' T/ J8 I6 D7 E- P
is
* b I- z5 k% t7 I: ldo
/ ^8 t2 D6 s: ~ m:= Ereignisverwalter.zeit;
8 G6 w! y/ j8 `& j if m/=0 then ' E5 |% m K# c; d4 z
y:=y+(m-n);
4 N! J, Z- q' p+ n end;
, O. ^5 M+ J- t* [5 D " n5 {. n/ S+ |
end;: C* A- M3 \. M* ~" _( K
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,4 u" I2 g+ A# p. @( D Q
m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
* C) F# k" H. q0 O7 G可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。" }) Q/ r( w6 x$ ^6 R6 r! u
请问如何解决这个问题 |