多谢,我程序
% Q% ?- @5 u& ?2 nMethode1 Trigger调用 Trigger定义1小时出发一次
$ q8 @& h% H; s9 g" H(old, new : boolean )* f9 _1 }' y, r4 V, w
is7 a$ m" n% [* }# w, E4 x
do
6 W* y7 s5 s1 f% F K' a if new = true then
! @/ k% Y7 a' _9 T9 U/ p Tabelle1[1,1]:= time_to_num(y)/3600;
5 o# n: K! M! n% a4 G1 v* F1 R m:= 0;' C' h0 A9 k( o" P
n:=0;
* y8 h( M& c4 e4 F/ j3 q9 h y:=0;
4 V" ?- P. M- J+ s0 L' a end;
* y0 S+ V- T3 j- K5 ? end; # D4 |5 F: |- p
methode2 Singleproc 输入控制调用9 l7 d3 \+ A7 W6 L# X6 t0 `
is: d( j# X' @& j7 ?1 H3 M. D" C
do
0 L) |0 S: A: O n:=Ereignisverwalter.zeit;! e' A8 W) i! _% @7 U; e
end;
: S- W( o$ k: x$ H; Cmethode3 singleproc输出控制调用3 ]6 M% l2 d2 `# \3 E
is
: t/ S5 w# ]) H/ f( I: |0 S( x odo3 u! N# r7 E7 _8 \/ _
m:= Ereignisverwalter.zeit;
* b+ {; Q. t4 i, L4 {" W if m/=0 then
- A. `- U2 P( X. K' ~ y:=y+(m-n);! \' Z: U5 b: _7 r( K
end;* z% J& b( [! ]$ `
& _5 z* [0 V+ l0 V9 S6 h
end;
" N! Q6 G/ J n' {( M4 s. ~5 em为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
9 N2 H+ C1 _' d: ]+ H0 ]8 Nm-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
2 ]5 G8 O3 W+ y( V; @" f# K可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。/ e R* m3 p& L+ \
请问如何解决这个问题 |