多谢,我程序
* r2 P; t* V2 e/ ^3 IMethode1 Trigger调用 Trigger定义1小时出发一次$ T$ w- I! s+ j& K0 w. ]6 [
(old, new : boolean )
( w' d2 I! o/ B J$ mis
' q1 }, |( \8 F. F4 a( c7 l do* u2 l+ z1 M% m Y! J8 q5 r
if new = true then
: N# c y$ I( G) X Tabelle1[1,1]:= time_to_num(y)/3600;6 F# E, o2 {4 e4 ]8 Y
m:= 0;
4 w) q) m" m. r) W4 [5 h# D+ i n:=0;
7 q* m; [7 ^' ?+ } y:=0;
' T4 D& H$ p4 [6 R" C9 U, ?7 w end;
% i y$ I. D7 z ]7 V/ Q c7 i end; % l0 M- p7 p( A4 R' s
methode2 Singleproc 输入控制调用
& m4 L' T9 \, A0 x) ]6 tis3 L6 Y1 q6 Q6 b# R/ l7 O
do" P. b i7 x" H+ A: G5 ?! U) g
n:=Ereignisverwalter.zeit;9 Q. l" w5 [% z0 I- n
end;
0 ^- B( F/ C6 f! I9 l. y+ Xmethode3 singleproc输出控制调用7 Q7 ?8 C8 s' H8 \& ?2 i
is
; g5 b+ S6 ]+ I' k, hdo; M1 _; }+ H/ i( z3 m* J9 C
m:= Ereignisverwalter.zeit;
2 P8 D u2 ]& @5 E# Y if m/=0 then 4 I1 P( `, H. Z/ H+ w
y:=y+(m-n);/ J0 f. E% ?) \8 {5 f* n/ E4 l
end;
: I1 c) \, J; L
/ `, a5 Z, e2 E6 a. q) ?end;4 h- B4 ~! U2 z1 x$ s+ q! i. j! }. ]; y
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
6 t- x' X# Y: |" v1 c6 R+ D- km-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
+ o! b, Z* U5 `1 i( M# h; \' Z可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。3 @& a# D: f3 J# |2 Z7 j4 H) I
请问如何解决这个问题 |