多谢,我程序
! M! b& l& [9 v: FMethode1 Trigger调用 Trigger定义1小时出发一次
2 ^+ z! }5 \0 v6 D w# x(old, new : boolean )
9 X2 f8 @$ | o F( N( w/ \1 ris3 u6 C) R9 b( n! ]& b' N+ O
do
. ?2 I# e/ a! Q6 Y# Q: H if new = true then
* L" k5 ]- |' U7 ~7 ^ Tabelle1[1,1]:= time_to_num(y)/3600;
- @8 P, ], q% _' m+ Z m:= 0;
+ S" _. j6 l; I9 ^4 D3 q n:=0;3 t" V7 T) q6 _ t U. ^- ], I: ~
y:=0;
9 I% Q* X/ z4 _2 \( o ]. x end;
2 r! s( K1 u/ Z( i7 @5 s$ E) B6 h end; 9 s$ ] s- T5 [
methode2 Singleproc 输入控制调用! Z; M# s* h3 h2 V$ a
is
; m$ r" x& {. |- ydo# S! V( l8 m0 h, Q2 T1 G' j
n:=Ereignisverwalter.zeit;
7 f) p5 k h5 Y, O# ?* n) i1 A* Iend;
: M5 o7 q1 W0 i6 g& e [9 C: `methode3 singleproc输出控制调用: C+ J. {- s4 \
is
" m9 J' u+ d7 Z6 c7 e+ kdo
* z K% |! y9 ~& d3 a m:= Ereignisverwalter.zeit;
& k$ ^* n; s6 b/ h6 G if m/=0 then 1 B% k1 T( K* [
y:=y+(m-n);
2 F9 R. j5 ?4 q: \3 Q2 d4 e end;
+ Z2 f+ c, T/ u
+ r( G( @+ ]" qend;
) {# i: ^9 p$ @1 Im为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,/ r0 K' p4 t$ r4 l, X% k7 p
m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
5 B( ~$ ~+ |0 {" M可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
) v+ V1 i- t" a/ @: e4 W7 ^6 z请问如何解决这个问题 |