多谢,我程序
# Q4 \ p( c, S0 [0 _Methode1 Trigger调用 Trigger定义1小时出发一次' R; v3 _$ `/ `5 d6 K5 H5 H
(old, new : boolean )3 W( u0 I- N0 x# h1 S. M
is
% s1 R4 E$ i) x) O* B9 f/ t do. f d' ?6 i" j+ v
if new = true then r) l6 u t( {
Tabelle1[1,1]:= time_to_num(y)/3600;! r- R2 n3 g& l: i! {9 N& O
m:= 0;
# O" v( ?& h, ~6 Y2 b7 ~ n:=0;
0 P- b0 B8 E: r5 k/ H y:=0; C6 h6 _- m3 u' u, x! \ x& M2 N, V
end;
' c/ ~- ]0 n# ~ F; l- |( M end; # j; D. G8 ~. V
methode2 Singleproc 输入控制调用: |* f$ a9 y0 Z+ k& I" ^
is! }+ K9 n9 U9 F3 M) t- p; J
do5 W1 ^. T' B& G
n:=Ereignisverwalter.zeit;
& S2 K3 i$ o _7 h# X! uend;
0 _6 x" W# D9 [' U) jmethode3 singleproc输出控制调用
1 z+ L# e; w. n& X' ~is
# P8 \( I& l' Z4 jdo- D; f/ O* Y! F @- Z: n$ M3 @6 l; x( y
m:= Ereignisverwalter.zeit;
+ b0 i- K, e0 R( P if m/=0 then
' x- B6 H- z- i, \2 C6 \% o9 m1 e5 V' t y:=y+(m-n);
q- z1 F5 i8 B* O7 e end;
( m3 R$ V6 N0 a
/ K) C/ b3 Z3 }" |& k2 U* kend;
, L9 L) l$ Z- V. t% I! im为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,3 @. A( N# x7 f' ^, t; l
m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。- c4 [$ c$ o' H0 h% U" j0 L
可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
) j* T$ H6 E" o' x" k; T: w |8 a请问如何解决这个问题 |