多谢,我程序
, j( p2 w8 }9 ]/ I5 Y0 gMethode1 Trigger调用 Trigger定义1小时出发一次
0 e: m7 D: |. G, `. z(old, new : boolean )
# r( @( \$ ~/ p% ^3 j7 ]6 D' Ris. s; [" n; ]1 X! {6 R% C$ w% K
do) Y" e7 M p& e6 }# | @4 i
if new = true then ! r% t: q4 I* j1 }
Tabelle1[1,1]:= time_to_num(y)/3600;" g6 B; o6 B4 {
m:= 0;! Q+ y+ n& N. r/ |6 M3 y A6 N
n:=0;
8 c6 B) O4 z: v5 @+ k* g1 w y:=0;+ Y: G3 Z1 V5 X$ `
end;1 v/ D3 Q# S' Q
end;
# d7 _8 X: i( pmethode2 Singleproc 输入控制调用) |. W, j9 y4 o# j9 Q- |
is
l8 ^& z5 r' I1 }/ @! \do
6 \* e& l P5 k! @: {5 J n:=Ereignisverwalter.zeit;
3 ^: E; S: N, U7 P" e+ `- zend;
4 ?; b, B7 _4 e$ K1 V8 Ymethode3 singleproc输出控制调用. s1 D& C# P+ `0 _8 N( u0 x1 c
is- L" g3 Y D' T8 ?. G
do* D, v# ]; {4 J( b9 X4 e' T
m:= Ereignisverwalter.zeit;
. ?9 \+ a5 w/ s2 P; M- _ if m/=0 then
/ S4 d2 I2 u3 o5 s2 b- M y:=y+(m-n);5 T# ~# O9 _! J `7 C; s$ W# s$ f. J
end;
v0 ], F# d7 q i! I
- m8 Q" y. S5 J/ U) i$ A' \' f: j9 Bend;) p' L6 h6 R t+ M5 v' n# T" z
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,8 A0 Q5 m0 `) D' T
m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
# R" r R- J5 _% {可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
' o1 n- t8 G2 e* P) J4 w7 K Z$ O# A请问如何解决这个问题 |