多谢,我程序4 s3 E3 C% h* V6 j& P
Methode1 Trigger调用 Trigger定义1小时出发一次
7 F. S: i4 h8 n" Y4 G(old, new : boolean )
2 O, y- l4 f- o) nis" w. P5 J1 I2 L* V) s. T: e
do; U. o; G& W+ p2 F1 |/ r! |5 W3 F8 N
if new = true then
% r8 P7 F" k3 H6 N/ c' h Tabelle1[1,1]:= time_to_num(y)/3600;* `+ g P2 U- Z* A# t
m:= 0;
; |# m5 |" }8 S. }9 c n:=0;
" H3 G7 k) G' x# F y:=0;; `/ Y( a# d1 D5 m5 z0 O
end;
, ?* N: q9 {0 `9 ]2 k' o% t6 D end; ' D2 N! S' z$ |4 q3 R* m) V
methode2 Singleproc 输入控制调用
2 _. a0 K% c9 D' qis& |- I6 k* o$ b0 J
do5 E. t+ w; {& Z8 U5 _& m
n:=Ereignisverwalter.zeit;
& {5 _+ F0 F0 q: pend;
8 w$ J P8 ?$ ^, E% i4 f6 xmethode3 singleproc输出控制调用
( b& M, E; m4 k: _' f/ iis
# I& U P' b; g1 F/ udo
% Q2 z) }( D8 ` r: A# d% e& x m:= Ereignisverwalter.zeit;
/ G9 `/ B; L* X+ _ if m/=0 then $ ~5 i' Q3 q) `" v
y:=y+(m-n);3 H- h2 E/ g6 k* o4 T7 S
end;* M2 @; R! o* P
" q+ h( u- \' d
end;
7 X# K8 Z/ E/ a2 W2 w3 um为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
$ G/ R; l3 ?3 [1 V4 a3 [m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。% |, d4 Z9 ]1 J$ y! ?+ p+ X
可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
- f( ~& \9 v2 X+ P请问如何解决这个问题 |