多谢,我程序. A2 l/ b' O& N" G9 S7 |. f
Methode1 Trigger调用 Trigger定义1小时出发一次1 s% `: ~! W. ~0 [
(old, new : boolean )
' ]1 z- X' Q( f) C# [is
7 \' o% p1 s4 N6 V8 e& y do
5 _2 [; H0 e! R6 P$ | if new = true then 0 k( X+ w* j+ ~% \1 @; M" F
Tabelle1[1,1]:= time_to_num(y)/3600;3 b$ I! t. p$ ]( `% Y& ?9 s
m:= 0;
0 L' O' V8 `, W4 F, z/ Q n:=0;& @) r' o& h a& c8 _
y:=0;
9 \# X6 D/ H$ g3 U4 k3 u end;
+ a, x, a! i1 ^" r/ O3 m8 O n2 c$ b end; . C! v4 @4 Z) W2 R1 [
methode2 Singleproc 输入控制调用- ^3 f y4 |+ y# a! Q
is
) j( D& f0 _; M1 Y0 gdo/ \; @$ d" l! T8 H- z$ f8 @2 F
n:=Ereignisverwalter.zeit;. p9 p' @$ J! V* X
end;8 _0 p, z) W( t5 @1 d
methode3 singleproc输出控制调用
" _% v& ~6 c. jis! k7 | x" a% Z
do
, b/ g; o+ Q9 A6 e$ E j m:= Ereignisverwalter.zeit;
. N0 g: U0 G. A if m/=0 then
* l7 \) b( g3 d" H( n y:=y+(m-n);" ^% t1 {, R* {. _' y% U
end;6 ?( m- B' q' x' H
+ A% J0 ^5 g" c& C( e/ F& d
end;7 L% N/ |3 a" u
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
5 c) E. n" T" d, T/ z; g& R$ ^m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。1 L& j5 ~0 i' M5 o6 {6 u
可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
3 z% c5 L; ^% k! s) O$ D* t& M/ G) Y请问如何解决这个问题 |