多谢,我程序
5 D# D. N0 K; VMethode1 Trigger调用 Trigger定义1小时出发一次. u2 @$ @* c2 _' a3 N, L. R
(old, new : boolean )
+ j# n! i" q) l" eis2 A, p$ R# V& M) {5 f7 Y8 I; D
do
2 t4 j6 E" j5 d4 Y4 ^2 U if new = true then
0 {; I" P3 S, {1 C Tabelle1[1,1]:= time_to_num(y)/3600;; h$ W- u7 D2 t! V
m:= 0;' m6 @. K) U% D
n:=0;
) @" b# u( d* P5 u/ T y:=0;& h3 o$ A# A$ W, j- V$ W
end;& N9 F6 [' i3 Y$ U; m, x
end; ( v0 T- x; Z6 C6 K6 H' i
methode2 Singleproc 输入控制调用* x) Y, s! n& ?7 R. s8 G) o
is5 S V: V0 g1 f5 E% Q$ p3 F
do) ^/ e; _% M+ ]
n:=Ereignisverwalter.zeit;: |3 H' y# ]# f7 Y6 \5 w
end;4 V6 s# z4 [) |; V1 X( l% C& _
methode3 singleproc输出控制调用
$ s% M! r( j; s0 ?# m) H8 ]is
2 R) @* [! K9 Ndo
3 D; e G0 B; K m:= Ereignisverwalter.zeit;& A/ \7 x. I4 h; V2 B g6 @9 O, S
if m/=0 then 3 @2 v9 J- z; H; N$ z
y:=y+(m-n);$ F( g* [5 l( F& N, R7 i7 D3 C( }
end;
' J, Y, y ~. W' i6 B* ]/ }* J2 e7 j2 t , e; L" _& [/ G1 f
end;
/ L, h6 F6 y: N- Ym为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,& m* `( l- z( g9 |" M/ A) ~
m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
3 F( F2 L/ L! J5 c; V1 j可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。3 ~2 Q* R0 A2 U0 x
请问如何解决这个问题 |