多谢,我程序
, y3 c3 L" O# j( g6 V& uMethode1 Trigger调用 Trigger定义1小时出发一次0 n8 x( t: u. V( _
(old, new : boolean )# g" B" T" {+ ~: I4 e/ j9 S% }5 |' p+ \
is" e& n/ z( R. b) A
do
# q5 Y1 {" t! Q- i! D9 q+ l: A U6 ` if new = true then " w2 P# T% |& H. r; G; ^4 C! j2 h+ T
Tabelle1[1,1]:= time_to_num(y)/3600;0 i+ G! H/ P* ?" t5 F% u E
m:= 0;7 q ?; b8 J7 \/ g* q. K2 A. v
n:=0;
5 T" n- }' `' v& v5 S y:=0; }1 K+ v! z# L+ d, i
end;
0 F9 z6 r3 ]& S# T) y7 h end;
& N* B& N' B" n' D% u! Z& W2 T" k" Jmethode2 Singleproc 输入控制调用( T' x6 h( ]0 r5 {( O
is
; P6 [) `! v# m1 fdo
# ~$ r+ n: e6 V$ {' \9 t: l n:=Ereignisverwalter.zeit;/ v: V0 `! t6 H+ W5 x, W" d
end;; {1 h+ ?) l: _( P0 W0 P' P
methode3 singleproc输出控制调用
9 ~0 l/ }9 F1 t1 x0 ris& a! F. M4 n4 [3 c4 w! g
do
4 c3 r1 X, }$ Y2 r0 n8 C m:= Ereignisverwalter.zeit;3 ?9 @# J- Q3 l0 o$ @, X
if m/=0 then 4 N2 H1 l1 R" ^$ z8 t0 P( l
y:=y+(m-n);
, y+ G0 c$ p: {5 _; Y: c end;
/ J$ ^8 u% \& D0 I! I1 }" u& m' [
3 ~) U: ~" f# U! I7 rend;9 b7 ], C+ L: e* {+ J. o4 C
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
( K L! Q! x7 m1 L- ^m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。+ v( U5 `! z5 k, E
可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。0 ~8 }/ @0 y, u
请问如何解决这个问题 |