多谢,我程序
$ X3 w- K* j, a- J2 d- B/ i- sMethode1 Trigger调用 Trigger定义1小时出发一次
1 L6 \1 L3 ^$ r. Q( z(old, new : boolean )2 B) O# m) V4 y: M
is0 c2 |+ T$ }. N1 }/ h& r- @
do
8 Z& S: X+ o' ?" x; H2 G if new = true then
7 }2 ?# F3 N3 D# E; x Tabelle1[1,1]:= time_to_num(y)/3600;8 B9 f* l+ q% f
m:= 0;: o! H4 c" N X
n:=0;
3 A) @5 M4 B& N/ {9 b) s' ? y:=0;) W- B( U: r; x" U
end;
' M. q! @" i4 o' y+ \9 ? q end;
m6 x; x+ v% Z: d% m7 Zmethode2 Singleproc 输入控制调用- t; X$ g6 q4 r2 `. q5 {) w% ?+ g, `
is
9 @9 p# X; ~) D, gdo, k3 g( e6 m. y) ^
n:=Ereignisverwalter.zeit;
( O( B( P% I/ i1 U& D$ s# pend;
v4 o3 G; N& B: Kmethode3 singleproc输出控制调用
2 C7 }$ A% h/ C. l# His
$ y, ?. r$ `6 M1 I9 W( O1 ~do
; m# X4 T7 S9 Z, \5 { m:= Ereignisverwalter.zeit;7 d& U: N' s+ H7 x
if m/=0 then # s; C9 I2 R+ g0 q2 G- \
y:=y+(m-n);( _1 ^6 s: z& p1 i0 Q/ p8 O* u. [
end;
# Y1 \5 i- e* m" h7 O! G& Y6 z 4 j6 H+ u) w3 [/ J
end;
( N$ f) W# W$ \0 d) e! {m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,! z" G* z+ O1 ^) h' |: H
m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
, p, z1 T& a( y可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。0 ~6 O5 H* P4 Y5 J* z# y
请问如何解决这个问题 |