多谢,我程序
- J- q$ G; b5 b% Z: n8 KMethode1 Trigger调用 Trigger定义1小时出发一次
4 Y5 g' R. o8 A, A(old, new : boolean )
1 I; y- @' {" J* |$ nis: x# T2 h( g; Q2 V, h/ i3 M. p
do6 J% {# Y6 j1 U5 {. I- v. ~
if new = true then
7 W7 D/ K* W4 X* H/ c# ]( t Tabelle1[1,1]:= time_to_num(y)/3600;: |/ W& ~' s2 B
m:= 0; k( h2 G9 K' y+ S$ c8 H
n:=0;# |: c# v2 a% W# B! s7 G2 F+ }
y:=0;0 q/ |1 W ^" W0 s+ d$ _
end;' l. p9 {( ~" W8 Q! n
end; D, f+ ]$ @7 s$ c
methode2 Singleproc 输入控制调用3 b5 H. `3 e4 h6 Z. x, p0 B
is5 l6 U9 I* H- r
do" r4 w& y/ `# O! H2 V5 M
n:=Ereignisverwalter.zeit;: D( M. U" F) f3 n3 V
end;: M# D, _7 H* L+ i8 Z, B3 ~
methode3 singleproc输出控制调用+ I0 a L+ M9 U" D9 \
is
/ G, m) X3 {* Ndo# p% Z; z+ a+ g Z& N/ z: v/ y* y8 |
m:= Ereignisverwalter.zeit;3 G- \6 u$ f, g6 l9 a6 V0 m+ R+ T: Z
if m/=0 then
. {( g$ i3 X$ E3 @8 E y:=y+(m-n);# R% s/ g- ]0 U, G0 }! ]
end;; m1 k V `' ^4 n/ V. C" C
1 I7 T1 e2 d& _9 y
end;& Q! X5 O4 A4 L# g( n1 X5 B
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
* i0 q y: Z5 O; S: Um-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
( D/ {( \2 f* x' S. ?* C可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
+ W3 u+ c$ V% X9 K请问如何解决这个问题 |