多谢,我程序
/ l3 U* b0 d0 F4 T, ~4 gMethode1 Trigger调用 Trigger定义1小时出发一次% s1 Z2 v4 P, `, q
(old, new : boolean ). D. M, Q* w E, a1 G/ w* g
is
6 Z7 @9 D& t$ v. p do
% u$ W/ {2 a5 s4 y if new = true then
8 K/ O' ^5 S3 \# z Tabelle1[1,1]:= time_to_num(y)/3600;
# t4 q5 M* J$ I8 o2 @ m:= 0;
) d: {+ c% T. ?. b8 i n:=0;
( @4 S' _! I E8 l3 \ y:=0;
; L! w3 [" w. d6 X end;
5 c4 @& }7 Z' t8 v end;
5 R# r6 J/ h$ G3 a$ o5 Emethode2 Singleproc 输入控制调用
# Y! m# o8 l3 M6 `is
R* D/ P0 w1 S* m2 [' Bdo1 X6 H$ O! ] X7 B
n:=Ereignisverwalter.zeit;: ^ o; W6 p& t# B% D3 _( J" w
end;
2 l* S' n- G( \1 j, r* e! Zmethode3 singleproc输出控制调用' M1 K$ C0 |- P6 g; _: ?
is# i- \+ B" R' ~
do
* K1 {- S: e% \' m1 z m:= Ereignisverwalter.zeit;0 Z9 n( Z9 y* r. n9 z0 A4 w
if m/=0 then - q" q1 X. s* L6 b4 l) `
y:=y+(m-n);
, J6 s+ Z; T7 t8 l& v6 P end;* n5 j: H+ g9 Q2 C
0 @# X- b2 u! P- ?5 f& r
end;2 I0 U/ x+ N# G& u+ X' x
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,3 s7 _/ m6 O7 O4 C1 z
m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。" p4 t9 r6 W' b# E4 ]: w
可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
. f* R# l r6 q* h3 E) B请问如何解决这个问题 |