多谢,我程序
. }% c- M5 y- A, {Methode1 Trigger调用 Trigger定义1小时出发一次, d- k* I) _+ l
(old, new : boolean )
) `+ [" k, g* E7 D" x. e7 Lis2 y, ^3 F* [7 N3 Y. E
do" M6 F" b4 A) R
if new = true then
: h) S2 g* p. C/ n3 Z& E Tabelle1[1,1]:= time_to_num(y)/3600;
- U5 P b- t! R! B g) C2 ]) h! n m:= 0;
" E Q+ r: ` i* O& a n:=0;, `" j3 `0 A9 c% r0 n+ _: ^
y:=0;! [& g9 `5 E* m
end;
2 x& P# c/ f' ~3 s8 i9 Y2 D) ^, n end; $ {) G" g/ r/ \0 v+ A
methode2 Singleproc 输入控制调用
' W1 ?0 d( {% @ Iis
2 _7 Q3 D" a) b/ X5 r1 T; ^. Jdo9 [7 T( g1 G' y; C0 W/ q$ e6 T
n:=Ereignisverwalter.zeit;
. l/ ]; C: x6 v% send;; j$ B3 g% y: @1 H& \% r
methode3 singleproc输出控制调用
' l- _# @; a* M1 I- O% Jis- g7 N# J8 K# Z. L( }7 Y( ]
do
2 M- h: D4 B+ L9 t% Q! O m:= Ereignisverwalter.zeit;
$ d, W% c" D: v: e: }9 ~/ P. O if m/=0 then
4 Y3 @' t: G/ }4 x6 H y:=y+(m-n);& k6 o6 R- v( t3 b, ]
end;
i5 u7 G& b+ J
- F* R) g! h" z' U0 O" Bend;6 |& b& [) \+ }9 E/ J
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
# J: X; |# f5 N( [$ r! um-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
& H* a. V8 [. X# a- H% f可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
( l1 k; g: w( f i# r, I请问如何解决这个问题 |