多谢,我程序6 F" G2 g8 m8 Z, K& W! q
Methode1 Trigger调用 Trigger定义1小时出发一次
! k7 {' v( q. B(old, new : boolean )
; B: P v: ?- S( [! X; Jis3 ]9 Z3 H2 J5 \+ Q0 y8 M1 c
do
# l j0 \8 I* Y. O, U if new = true then , U# Q V V( d: }
Tabelle1[1,1]:= time_to_num(y)/3600;
! Q3 `3 P# P- q* e! {* R( L m:= 0;# W# H# X) P7 {
n:=0;5 x$ h& \" w3 n$ ]$ t F' `
y:=0;0 J$ ^& A2 G: ]* z
end;" g& l! x7 {0 a- z+ Q
end;
2 s! |3 S. `% i6 Fmethode2 Singleproc 输入控制调用
4 Z% Y. i' N! x3 z0 ^& ^1 r% s1 }is
" Q+ ?8 [) S/ c& L- ?. o5 Ado
1 V# E2 a2 Z" ~8 u6 _ n:=Ereignisverwalter.zeit;% j$ |2 m( E, l! t7 u% B; R
end;
0 Q* ~% c5 a; `3 k6 Bmethode3 singleproc输出控制调用; O2 I# x+ e0 ]
is
. ?5 M4 P; n$ h D9 o3 p; d& E* tdo
$ l* r, [* K, t# f: v% l m:= Ereignisverwalter.zeit;
7 a" w7 x: N& t5 X; p9 T2 Y6 C if m/=0 then
# Y5 V4 e9 S" a! L2 A& x, i7 E y y:=y+(m-n);6 l7 A5 U; |2 f/ K* C
end;1 e- h6 ^: h% f9 f8 R" e0 }" u& M
$ E; S2 a* L# {end;1 F# G) c) ?( i& {0 w2 t
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
, X5 y. F. n& n( J4 M' w7 U3 o, Em-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
% W4 Q& }" d$ G T" S可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。) n1 Y5 H2 Z' |+ |! F( T
请问如何解决这个问题 |