多谢,我程序
7 }3 s+ r, @# Y7 S" k& SMethode1 Trigger调用 Trigger定义1小时出发一次
s' @% w# w/ U( f4 q" U( j5 ](old, new : boolean )- Y- U9 @4 ~' f. \' y+ a w
is$ ?) s8 x. Q1 k9 p$ x: ^
do% E0 d& s7 g2 K6 M
if new = true then ) Y, ]& |- W: e: y4 \
Tabelle1[1,1]:= time_to_num(y)/3600;
; w. \; q/ @0 @- E m:= 0;6 l/ u0 ?8 d/ W
n:=0;7 z+ B: P1 {( q! w
y:=0;
- N2 L' D! ^$ p! X! b end;
+ k5 M: Q% E: ~. k end; . f. U% F+ Z6 `# H9 @& v/ [
methode2 Singleproc 输入控制调用
* R1 S' d- d6 A5 ~is
- _. S7 J, ^1 \& M3 [do
! E; x* Q% T6 `' t2 q/ @1 o5 x n:=Ereignisverwalter.zeit;+ o0 b. ^( V8 v" @: G. i0 b" P
end;% a5 R* p$ d4 q
methode3 singleproc输出控制调用
# B1 U* L3 l5 |/ bis1 H: X. d& m, V( E5 y' {
do
/ \+ P# Y7 i! q m:= Ereignisverwalter.zeit;
7 m; Q. J9 l! m, n+ Q8 G if m/=0 then 5 {$ T; t: g1 W4 I7 ]
y:=y+(m-n);* X" i2 ]0 Q( V; R M" E6 U9 l4 _
end;
5 w# p( n1 V2 g- Z1 {& C7 H% \4 a- i
* V4 B4 s% @9 w% N, Vend;: @4 v9 d5 T( i
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间, d( j% ]- A* O8 P
m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。 r, L9 v+ @$ N6 _5 E/ \
可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
/ g! ]# F/ x# H2 @6 {: I5 n请问如何解决这个问题 |