多谢,我程序
) q+ V0 F! I f1 M4 `4 xMethode1 Trigger调用 Trigger定义1小时出发一次
. y6 E/ r8 i3 K- S/ T0 c(old, new : boolean )3 _1 n) Z. R- n8 T! O7 X6 c
is/ e" Y1 T7 | O2 y' K/ Q$ H
do8 d9 F" ?. D* W' p
if new = true then
$ z6 Z) {3 L7 L% Q$ _4 C3 }; y; w Tabelle1[1,1]:= time_to_num(y)/3600;4 }3 B) N+ C7 E" B9 u
m:= 0;
! r, P- [) _5 M- M, A Q n:=0;% W' ]5 u! S. H' c: K& v& P$ E
y:=0;! D2 y, f2 H$ {9 X
end;
3 ?9 l3 _! B1 P0 \2 H3 Q" J) l end; " w6 M; s: f7 j0 T
methode2 Singleproc 输入控制调用
# S n- o& \; Tis
1 e+ ]- [! ^4 R9 }do
5 h$ \3 v/ O- B6 h4 \( e6 ` n:=Ereignisverwalter.zeit;4 v: Z0 V. m, X- D. P
end;
3 n/ o: l& l0 k6 L/ X" L! dmethode3 singleproc输出控制调用( L( ^+ s n" K
is; z, G1 L. p8 ~
do$ l4 Q0 t7 X4 h
m:= Ereignisverwalter.zeit;
- n) w8 @, q$ V( U$ v3 z if m/=0 then
4 [0 F( G9 M8 X) C' I% a* x4 c y:=y+(m-n);9 X4 Q/ K. y+ \% W' J$ q9 K' m
end;
! l, c, t* l3 |
; j- G, y; e' i4 E# Bend;
" t9 c, k: l, P! I% N4 Lm为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,- g. _# I7 d. x5 D5 S4 c
m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。% e: m( B( o# y
可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。2 }" ]# b/ ^- P( x; e. P$ R* \
请问如何解决这个问题 |