多谢,我程序6 ]( M3 f* j' Y) W5 z. c8 r/ w8 T" O
Methode1 Trigger调用 Trigger定义1小时出发一次$ `% t: |2 y: w
(old, new : boolean )8 e( d' z! D3 f; W {5 u( r
is
/ t; P6 ?+ i$ \. [* d$ f: Q do! m. ]1 {+ h! \
if new = true then
$ x: f9 K0 @- f+ Y Tabelle1[1,1]:= time_to_num(y)/3600;$ Z0 N- f I" N" u# a
m:= 0;
2 C! R4 k9 ?" e# t9 N7 a+ ` n:=0;+ H9 x3 ~! J4 l( B
y:=0;5 i' l1 j/ C' r6 s! K$ A
end;
- f) g+ y: O/ |6 {9 T& ~ end;
# @. j/ A2 }( o0 e @# ~methode2 Singleproc 输入控制调用
5 m7 p+ D8 b5 ^6 lis
2 Q1 |0 }; M- l8 M, S! vdo+ {; `# d. \5 ~0 q) U, x; N! `
n:=Ereignisverwalter.zeit;
7 o' b! I! c) X) B4 h: W( i" z( Jend;9 o8 a2 j% u6 N- r8 |" A
methode3 singleproc输出控制调用9 L0 d" r1 z& f8 E9 _
is( T# \6 L6 ] u) c
do
5 u8 d K6 F8 `3 t m:= Ereignisverwalter.zeit;: M& |2 B( w1 |1 ^! |' r& A/ Q6 I- Y
if m/=0 then $ g+ k8 D% n% u
y:=y+(m-n);/ i D% A/ V. r* Q2 d0 B9 d$ B
end;2 o" T! w0 \* b7 `: G
* v# {( E: \ s$ X9 ~end;
$ C& M; @, O+ b1 o$ \# U" Km为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,7 r% y% r8 M0 C, x$ x7 V+ i @4 s
m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
$ K" W$ U' I6 u可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
" Z4 ?7 T- n1 x; v* m请问如何解决这个问题 |