多谢,我程序
. y" @9 @8 G( g8 n" HMethode1 Trigger调用 Trigger定义1小时出发一次+ X3 F: e8 s) y @" k j
(old, new : boolean )3 Z) Z6 i/ t5 y4 S" l$ S! o
is
3 R4 D) z/ i. w9 a1 E* |) ~/ k do
, x3 K7 |* J6 l) C) i9 A( r if new = true then 1 z8 l9 Y% ?6 o w
Tabelle1[1,1]:= time_to_num(y)/3600;7 N `& {9 K( `# |9 k8 V; g/ V
m:= 0;
& v% X" c6 z/ I( O4 M0 _8 ? n:=0;3 P! ?! u3 `2 K
y:=0;5 {# L m3 K7 J/ q; l) d' @, b
end;
' {$ l$ Q. [. _/ t1 {# u7 ] end; / o# \/ A/ Q$ I* E9 q
methode2 Singleproc 输入控制调用/ p0 o& L! e3 y- O! W# v- g9 m
is" ~$ `+ O6 V: d3 D5 ]
do; f* O/ M$ H7 y: P9 i3 |- m
n:=Ereignisverwalter.zeit;
# x$ k( L, K0 a4 q5 x+ Nend;
; J( o5 }8 W ~1 A- @0 y$ Omethode3 singleproc输出控制调用
0 @# j. N c( S& s- ?) P- p1 z5 |* Tis' H l7 x, E) Y# c, M8 t$ `
do3 ~5 _$ h5 W# m& \- y' C" x
m:= Ereignisverwalter.zeit;1 P' I" G9 S# c* S: ^1 ], `
if m/=0 then
& J0 k; ^2 l0 R: }0 R y:=y+(m-n);- c0 B$ ]; T& Y/ J8 u n
end;0 N3 H- A5 D0 X0 `$ j, ?5 |1 s5 F
$ S7 a: Q7 T9 aend;. F1 W0 ]9 o" B) a9 P: R1 K! T
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,! T( E" l# m! d) I/ n( k5 a8 J
m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。! W$ ]2 S7 _) V% [/ A4 ~8 [1 R
可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。1 l' X' Q1 |/ Q; |& o# ?# K& \
请问如何解决这个问题 |