多谢,我程序
# L& C. O- `6 xMethode1 Trigger调用 Trigger定义1小时出发一次
+ D. {8 j% G6 q(old, new : boolean )
) O* p/ q1 q, {% o1 @) qis
: |& O* m. i) `% `- @. ` do
$ F8 m' M$ P) j' j if new = true then
+ u0 G# D4 C/ S% \. T Tabelle1[1,1]:= time_to_num(y)/3600;
# y8 c' C" X9 @ m:= 0;" q& m5 X/ R" B2 T% i
n:=0;) S+ j6 c; H' o D
y:=0;
% {2 P5 V6 j% R% l+ C end;4 v1 @* t" w& F5 I7 P
end;
! Q. ^* k" o% V. Dmethode2 Singleproc 输入控制调用: N1 A. H, A( Q
is
; W' H& R+ ~4 ^( [0 }6 H4 T) y6 ado
& i8 L' s6 U- p# m$ I+ a- @ n:=Ereignisverwalter.zeit;
6 l3 z* u+ j% u/ `' A& _: a4 dend;
4 V7 [& m7 f: jmethode3 singleproc输出控制调用& v8 O5 I8 D2 o, v7 n y/ z+ R
is5 \/ Y& V& a9 b+ D0 o
do9 Q2 M& B+ M& c3 h' q1 b o* ?
m:= Ereignisverwalter.zeit;& Y% g! z5 H1 y& F( O9 B% A1 I
if m/=0 then
/ H% |! U1 L; o! L) m! M ~ y:=y+(m-n);4 h) n$ p) v; l& @" c# r* }9 K7 @
end;, ~! E% T' {" a2 |, ], \. O
6 I c0 Q! j" V3 U5 P( Mend;4 a. d, f& g- g" e% `- `, W
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,5 h4 ?; G4 s6 J( O' a
m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
6 F& W8 o d3 `" P2 A4 I5 b; }可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。7 s0 T: \6 {. {8 X# C
请问如何解决这个问题 |