多谢,我程序
9 A! f C; A' K1 |4 g& ZMethode1 Trigger调用 Trigger定义1小时出发一次. V# V& S0 ?' E
(old, new : boolean )* ]" L3 N+ \( q6 g% s3 }% l
is9 T' |+ p2 {& N0 i5 a
do
" u, N( `: U8 e: \# f" g7 S if new = true then ) K1 A1 k; ?& M) k3 x) J, N
Tabelle1[1,1]:= time_to_num(y)/3600;
: q; a9 o/ a; D0 m m:= 0;; C* m4 _* w/ D' b/ x3 i% P' x
n:=0;
6 u) m$ z9 B+ c+ C; D* ] y:=0;
3 d0 @: f, k" Y3 z) e- q9 D% B end;/ \9 R% v7 c6 E8 }0 o, t. X# f
end; $ g! o& S6 j5 L! M( [- r4 P
methode2 Singleproc 输入控制调用7 q- F. s1 s8 b: C* ~, R1 V0 K
is' p# k9 q: {/ g+ l
do" H5 e. k/ v3 r( I+ F6 a
n:=Ereignisverwalter.zeit;. I, S& e& a* h. n
end;3 R' L3 q# G5 ?- h6 k) I
methode3 singleproc输出控制调用
; \; h; S0 b2 Y9 xis% X- c- d) `- [
do/ S: {7 p% U) Z3 V) \
m:= Ereignisverwalter.zeit;- J. f5 w) U2 `' H
if m/=0 then
& L& R0 J- c+ Y6 F7 ~) L y:=y+(m-n);
* m: ?9 A/ s6 t# B) M2 k1 \ end;
; N- q- v" }* t( }/ i, A
; A* m! t2 M0 y; s/ V9 h* kend;) [( O: E, J2 ?# o" Q
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
! y( O$ u M* l u Zm-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
: |, }* z( \) _$ L0 O可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。; ^- e1 `8 y5 E- S. e
请问如何解决这个问题 |