多谢,我程序
3 m' a. u5 q4 T- ^0 N9 f9 q% }. U( fMethode1 Trigger调用 Trigger定义1小时出发一次
7 P1 z6 v4 L! j' ~3 @3 `' Z. z(old, new : boolean )
& [: S, |8 l. }; N0 h. |is
( p. O% Z3 U" m$ Q' o1 N1 ~* R do
4 a; x/ F, m5 d o& a if new = true then 1 T4 j, y$ H$ G( F7 G
Tabelle1[1,1]:= time_to_num(y)/3600;( j h, P4 }- ~8 y6 M
m:= 0;
2 S' Z$ t/ O4 V3 r# G n:=0;( y6 c' R) r# d$ S7 e; ~8 D, A
y:=0;" c; d( C- f% b
end;& V8 s7 Q3 s ^ a& d% O2 ?: V* C
end; h- q, |. h, @+ G( H
methode2 Singleproc 输入控制调用
/ \# Q% u$ d- m: p- Y3 ]# `( } [is; q# b# d( E5 M9 ]6 I
do8 Y/ T0 {4 e( d# D$ K2 h ?( B
n:=Ereignisverwalter.zeit;( G# R' F7 g: B
end;2 k" \& z6 `1 h: A* c, }! Q
methode3 singleproc输出控制调用
4 T9 y% I, m1 T5 [/ a7 mis+ Q3 q" T( r0 A
do5 m6 b9 r G6 {: T0 ]5 m$ k% k
m:= Ereignisverwalter.zeit;
2 Z# R3 F+ u, m0 C if m/=0 then
: m' M2 z% j; x y:=y+(m-n);2 q% { a7 ^, | k3 h4 n' s* e
end;
7 T, L: S8 {' I/ i$ t! w: o
4 t n4 q' ]( V% e. Pend;
! Q* ~) | m' _7 u) w( u: Qm为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,6 b7 t5 \5 v% w$ b
m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。( A8 J- Y+ a$ K( b- h
可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。: o- V+ _/ H* |, o0 S
请问如何解决这个问题 |