多谢,我程序7 X0 f; p+ Z+ _/ p; r8 j4 v" x
Methode1 Trigger调用 Trigger定义1小时出发一次: e# z$ w" |; g Z. z
(old, new : boolean )
8 E9 D; `: B. Uis
8 C( q; S8 x3 l: @, | do' d. q: t* w3 \/ W8 ^
if new = true then ! F: D$ e; _$ k+ Y! c; U
Tabelle1[1,1]:= time_to_num(y)/3600;& k+ d- C1 o4 @+ N S8 v* X) o
m:= 0;1 Y, U# h. |6 H5 t; K+ |
n:=0;( g; N$ J* M+ B/ B3 ^
y:=0;
! Y' ^ h$ p, P5 E# S0 F' {% z end;
: t1 M4 ~9 F7 R6 T end;
* N: Z" P) @/ `" |methode2 Singleproc 输入控制调用
4 i5 b* O: f- @8 B6 ?( D$ t) eis
; ^7 @) ?! P) E( tdo
9 m x. b8 N5 q% d n:=Ereignisverwalter.zeit;
7 z. L5 _ E! \4 p) R" _2 [& yend;/ u$ U6 T) x% I" o6 q/ g
methode3 singleproc输出控制调用
; Q& w8 P+ C0 n" i6 z7 e2 [) Fis
0 N6 o) k* q% _- ~9 cdo
5 K+ C3 X0 m3 a x4 p: J m:= Ereignisverwalter.zeit;
! a% N" ?4 ^( V- a if m/=0 then
- h3 z" }6 W+ {5 P' a+ o1 U, i y:=y+(m-n);# y4 K! A s5 H1 Q
end;
7 L7 r" T' K; F# D: q % P9 \# |3 _! j. U. \
end;
4 W) }; m& |, V$ E- ?- W U+ jm为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
2 E3 w4 ~+ Q, x6 N ?7 O: Bm-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
4 T- _9 S9 t- z ^, E: n可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
# V( D8 r* B) c/ E; r1 p" S请问如何解决这个问题 |