多谢,我程序
( s" } L8 R" |Methode1 Trigger调用 Trigger定义1小时出发一次5 T- x. m( U, Z' _: w
(old, new : boolean )9 G: v- b- [' j- {& ] h0 ~# R
is
* {+ _2 T5 u2 H# b do5 c( T* A, c7 Q% y' a
if new = true then , P5 E4 |* A7 T! |5 Y
Tabelle1[1,1]:= time_to_num(y)/3600;* n, m' A" J6 N r- q8 ?
m:= 0;' c% ^7 R" m! \/ K D
n:=0;' Q" _5 c5 j8 j# c0 Q4 V0 I+ M
y:=0;
% _( x$ n' K$ }" U2 W end;. ?/ \' n2 d$ n4 w; `" E5 ?3 L
end; , V5 k4 Q5 E/ d2 y$ ]5 Q+ ~
methode2 Singleproc 输入控制调用( V0 z3 c D4 M `
is
" b& n' m! [$ V, y ?9 _do
t/ u3 ? q5 {# z' q: C n:=Ereignisverwalter.zeit;6 g7 K' |7 b+ b
end;8 Q; s; U1 N! D& W* w
methode3 singleproc输出控制调用
' |5 q/ u: u4 J- ^is' R$ T+ @2 B9 X& J' I
do
4 c- l+ u$ x' I m:= Ereignisverwalter.zeit;
8 n7 Y2 s' Z8 K6 v4 z if m/=0 then / W5 M. T6 _! O# Y2 C# P
y:=y+(m-n);+ G3 D# S" I0 s( V% Q [
end;
# ~5 z/ J# z- f2 Q) Y
: ` V7 w @3 Lend;
3 y* w$ s! s# F7 p0 |( z3 V* hm为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
+ c6 W' M& F" M9 V: a* ]8 }m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。& m: I7 c" L: t4 [5 o# x) i& T
可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
) Z G+ g. D+ n6 Q' b请问如何解决这个问题 |