多谢,我程序
. A) y% N: v3 L+ o, X& E3 @: DMethode1 Trigger调用 Trigger定义1小时出发一次
& }4 ]3 }0 f7 f, n(old, new : boolean )
: ~- `7 ^# @( @, l. o1 xis- S" C1 h" z1 G. y
do
0 n4 b p. }* D0 G% ` if new = true then ' m" ~# `& t5 }, m. O
Tabelle1[1,1]:= time_to_num(y)/3600; ^2 t7 f1 A0 w: ]- q i+ Z4 X
m:= 0;
2 |/ M( s# `% m6 q; q n:=0;
, A1 O: O8 L4 P6 S5 |6 K4 r; P0 t. f y:=0;& R& V: V6 j0 z
end;! y& | R3 o0 e# x! E
end;
3 ]8 Y+ \! o2 T& o+ Omethode2 Singleproc 输入控制调用7 A6 b4 v2 _ v& z7 v0 v0 e F" G0 L
is
c L- Z; C/ F7 p# J: M9 rdo
' c2 ~' I! o$ u+ L n:=Ereignisverwalter.zeit;
, |$ r: j, ~1 W) j4 pend;
; m, i! J/ |7 M& bmethode3 singleproc输出控制调用
- y; v4 _* B" I% l/ c: Jis/ ~% i M2 e: U2 @. e1 t# |- c
do
. m8 ?+ q0 _. n( O m:= Ereignisverwalter.zeit;: |3 ^( z$ f( A$ q, i$ O, w
if m/=0 then
% ]# [) a3 x$ a4 L; k y:=y+(m-n);
$ j5 M# v. J2 U- D* H) G end;
9 d2 }( B. F8 X6 B6 b t. P$ L3 I% b, v9 ^. w& Z7 W
end;, c# j# {5 P, q/ J9 }" p' e2 q
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
5 o1 `# v4 L7 z5 hm-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。' F% S. s W2 ?8 {! [
可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
+ ]. U5 q4 t( j2 L, p1 {. s5 D请问如何解决这个问题 |