多谢,我程序
. a2 Q( I+ b: C% A4 P3 F% _Methode1 Trigger调用 Trigger定义1小时出发一次
) f5 D1 Q" v$ z(old, new : boolean )/ {& q3 P' J9 x) {
is
" A8 S7 T' O- B8 l6 U do& S; a1 `6 y0 X
if new = true then
4 i5 `4 ~5 K: z, @- | Tabelle1[1,1]:= time_to_num(y)/3600;
0 n p% v2 a9 h m:= 0;
( J( E' E0 N* \2 O, w n:=0;
& s _% V1 g, a- @ y:=0;
0 w1 N7 g" z, d4 z end;
6 @5 x. b, R8 f' U6 ? end;
( j) N0 y( _5 _$ F: d0 }+ e# Smethode2 Singleproc 输入控制调用/ u5 u" l: @' E) g, h/ [1 ~
is
" v( Z F/ r: B2 U3 Pdo, T% p) G3 L. W! B9 F/ i
n:=Ereignisverwalter.zeit;
; g5 e! N& a( Yend;
0 l7 ^/ A2 v7 O) ]methode3 singleproc输出控制调用
# U0 E+ Z4 e3 q: y# |is
# x- I0 `( _7 J, F* K: qdo
) S2 r ?/ K) c: j/ g2 m, N m:= Ereignisverwalter.zeit;. e9 n/ N4 B& K
if m/=0 then 5 ^5 R% K1 K h$ W1 U' f/ y6 P+ K
y:=y+(m-n);
9 B$ K* ^4 \6 \, S/ D end;) p, w/ B {8 p' X2 X- F
7 I0 ]& R8 B( b6 T- a( [& jend;4 \6 v4 X1 l& ]: n: u& [9 @
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,3 C) C q; k' d
m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
8 y% C4 z5 _- F% u# R( o% q可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
* c4 p2 d4 w/ Q2 O' r# }4 ~2 {请问如何解决这个问题 |