多谢,我程序
2 m' Z2 W: K2 vMethode1 Trigger调用 Trigger定义1小时出发一次2 U7 e0 ~1 D9 V! f; e0 r; J7 `
(old, new : boolean )
$ U! m/ D, {8 E2 ris
- y2 t4 e D! [ do
* D* l7 }6 _! D if new = true then : q8 {& o1 [( v2 S
Tabelle1[1,1]:= time_to_num(y)/3600;0 B+ k8 n' o1 I, M! H4 `9 U
m:= 0;
8 s/ U; O# [& z/ j3 c) W n:=0;
9 q( j3 E- _7 U' N y:=0;
1 y8 l/ ~: h6 X* J& q$ B& U end;
0 b8 ^. e3 |8 {9 {# D3 G& |2 Q end; / [( }( L% a9 V+ U9 b1 w; x
methode2 Singleproc 输入控制调用* m5 ^3 S, j$ f+ _2 k
is
( J& o/ D9 K( ^( t _0 `, cdo. x0 S( ]" u2 {" a5 a9 W; Z
n:=Ereignisverwalter.zeit;
) Y9 b5 ]" w# L9 Kend;
5 p! X D6 o" q2 dmethode3 singleproc输出控制调用
0 @& r. Z' P) G. X$ J9 y0 lis
8 b9 Y/ @( r- ado$ X( i. \' ]7 c: d& R. C
m:= Ereignisverwalter.zeit;
, p" _& `, q/ w% `4 Y, K' c if m/=0 then
# [: o3 B, l, ?( O1 L6 O2 ^ y:=y+(m-n);+ R- y: y& n* y
end;; x6 A& Y$ H- n9 A3 Y
/ S0 ^. x/ I, P) R* k
end;8 a$ g% r9 @$ ^4 I2 p- e% l
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
: v0 P( m6 g7 v2 i( @) d: bm-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。0 C; T ~# E0 E/ R. k/ Y+ o
可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。5 ^ D# e1 |$ q, M# m
请问如何解决这个问题 |