多谢,我程序2 \0 ?/ f1 w! t( _7 h
Methode1 Trigger调用 Trigger定义1小时出发一次
; Y, V* t& O' U. _3 W1 ~- V(old, new : boolean ). j4 _. s' F# Y4 g
is3 E# e0 g2 T% O( j! }
do
# g/ {7 T3 z' L& U3 F$ | if new = true then 8 i: l+ z6 R* n, ?
Tabelle1[1,1]:= time_to_num(y)/3600;1 L4 h( i$ t$ m6 b/ X$ P- P
m:= 0;0 x, [ |, c S$ U- q: @
n:=0;
! Z2 s' T2 Q# s: d, V4 Q2 s y:=0;) v1 i! _% Z3 D* |) p# q" W4 K x
end;
* l' o* R1 r( ^' y9 N i; _ end; " Q) B$ L' `- }1 \" f9 _8 `* z
methode2 Singleproc 输入控制调用
% e+ A# Z8 ]6 L! E& G0 b1 sis+ F( c3 ?" J3 w1 h, h( m2 ^) |
do
0 o7 o+ @8 \ M' D n:=Ereignisverwalter.zeit;
! V' V# V% O0 |8 ^end;# Y0 N; x2 T8 s6 w
methode3 singleproc输出控制调用7 T" h& e# {0 { H) A& X* N% r |
is. I8 z8 H6 A. i7 I" Q0 W
do3 {3 E9 x- n) D) d# L, r3 |! T! ]
m:= Ereignisverwalter.zeit;
& A7 |* }! v" X- b2 ~ if m/=0 then
+ J9 C7 r6 h+ n y:=y+(m-n);+ S# E" _: `" L0 l. Y4 L5 b
end;
! @, c; |0 q) S4 c: ~, r 5 K! ` t6 u1 ^; `: I
end;
5 z5 Z1 L, e# om为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
# S& @2 ~) }; S, T! A, |m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。5 t8 y( w, b5 d7 v9 `
可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。3 v9 }; C: ]# }1 M8 a4 h7 V
请问如何解决这个问题 |