多谢,我程序
8 T1 b9 ^ K1 Y; s' x0 S5 `( _Methode1 Trigger调用 Trigger定义1小时出发一次
* f* w$ m/ D5 n( _& C(old, new : boolean )3 {7 O, R. N2 M6 u
is) F% L( K$ N* Z0 z
do, U) o% p7 u( D z4 i
if new = true then 9 h# p X' F2 F) p* L
Tabelle1[1,1]:= time_to_num(y)/3600;# J' ]3 R2 y7 C& U- u
m:= 0;. |/ v0 U: \. }6 M
n:=0;! [6 \8 A* n4 I+ ?6 Z$ V/ c! B# ?
y:=0;4 V( t. l0 I* C7 n
end;
' x' E/ p/ l6 f* V S5 M0 _$ e end;
& D# z# Q1 l- ^4 b5 y8 p/ A: r9 jmethode2 Singleproc 输入控制调用
. ~+ X) r6 z. o$ f9 o: kis5 r3 a& M" x7 e5 c; s' K6 Y
do! Z$ c6 y' f2 S
n:=Ereignisverwalter.zeit;, e$ E+ D' t% [
end;9 j: J2 ^ e7 D8 G9 ]
methode3 singleproc输出控制调用* z$ A! R; s, @3 }, v
is
+ J6 y1 @: F" h. n3 h4 I# O" |+ Ido
" m' k' G+ v& I m:= Ereignisverwalter.zeit;
+ |4 d* W, o6 n if m/=0 then
1 R1 v2 M8 v% ^7 X3 ~# m y:=y+(m-n);
Q1 U7 A8 {- c! ~6 C: { end;
5 G: l" V1 D: S" N- w
0 t' d2 O3 f$ v9 Z K' v7 ]! eend;0 L% Y, M$ |8 k2 P
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,0 j$ S# G& f! u7 o* ^( w m
m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
# @; {% j- r+ J% J1 b, [, W9 R) D可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
- }3 i+ h/ E3 \! D) ]* Q; J/ }! N请问如何解决这个问题 |