多谢,我程序6 V w% J- [% L- S
Methode1 Trigger调用 Trigger定义1小时出发一次
. F3 w% Z1 U' K& ^* @(old, new : boolean )- b' n% d/ u+ O
is
. G# r: s0 m, [4 e: ]: j! i, X do; a% A) H8 \% Y
if new = true then
: s7 D' s6 S8 u9 g0 i$ l( b# u" x. y Tabelle1[1,1]:= time_to_num(y)/3600;8 d( _1 V: U" B) q- }
m:= 0;
& X* N$ T& q! t# u' \ n:=0;7 x( r6 }2 j9 x/ A+ C9 p. _
y:=0;' ~3 z X! D, `0 P8 P$ Y8 m% T
end;4 J8 G# Z2 J& r+ }
end;
5 ~7 B3 n+ j, S: e5 Z# P2 C5 |7 N& Amethode2 Singleproc 输入控制调用
* U3 _# d0 w; E( Q1 S- Ois
/ |) Y: R# t5 S, ^do. X4 I3 [7 a9 F. r
n:=Ereignisverwalter.zeit;
) P% B3 }' Y' C t* jend;* a9 a* o3 c. Y4 S6 y
methode3 singleproc输出控制调用
; Z. Q, g1 P' v, L! P) ?3 ~is
7 U$ m5 {! N# T) Zdo& a! [0 Z: }& }) a
m:= Ereignisverwalter.zeit;
% i6 n7 K% K* g! i/ u+ n! B if m/=0 then % V6 W2 N# x8 ?5 b$ D
y:=y+(m-n);0 N2 b0 ^4 }! R* Z3 }
end;
( R' z! V$ C* `4 u8 L) Z
- k6 x8 L/ H7 ?2 @* Yend;! T# E* R8 \$ T
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
1 C0 h: Y4 g7 w: J. q$ T/ Pm-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
% w1 i; ^& _$ ?1 p+ _* N可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
`9 Z8 {' X) L请问如何解决这个问题 |