多谢,我程序8 k# I( I" C0 a4 \9 D! _# {
Methode1 Trigger调用 Trigger定义1小时出发一次( r- g# l( s0 ^' _( }2 K
(old, new : boolean ): d" ^: b- N- c; n- _9 [
is
* M3 Z8 a! H s( U' M! ^ do. [! U# a! n0 t) r, J# }0 D' U
if new = true then
+ H& ^7 y, \. c) o Tabelle1[1,1]:= time_to_num(y)/3600;
1 P* D# S- e7 c. W) v4 J m:= 0;$ Y. E) V) i- x$ V' F
n:=0;
( S8 f9 v7 O# [6 }; Q y:=0;6 ? ?) F5 ^$ }8 p" s
end;, i% h" C4 W/ R& ^/ m- ^
end; : e5 I. E+ g5 r6 `7 l f2 V. L8 p2 T
methode2 Singleproc 输入控制调用
' L- M- p& ^& k ^, vis
3 o# c) R- B' x! g8 N( Y ?! jdo
! ?0 f1 P9 `1 V v( W* ]* h8 D& y: B0 x n:=Ereignisverwalter.zeit;9 O7 f" e" s P w! ?
end;# _% N2 U2 n! z
methode3 singleproc输出控制调用6 t+ ~) \4 z$ ]+ v9 ]0 O$ d
is
O: O8 W! c- h) i7 l, qdo
! Z* s" k0 S4 S* W! m- a, p m:= Ereignisverwalter.zeit;
' b: B; S* F7 G2 t5 D' _4 V if m/=0 then / Y7 M4 ` A% n' R1 U
y:=y+(m-n);2 ?& S: U3 ]+ r
end;
5 `& y( s3 F0 @7 @2 b" Y3 U- T 3 i. h( r6 f |/ {/ D
end;
/ ]# q& N. K0 h% b0 e5 K8 Fm为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
7 P \! B z* S1 B/ B' n; P& G$ Xm-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
- [. \% e8 @8 a4 }" \( t, O可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。8 o; F& a7 U0 _: k/ R* P
请问如何解决这个问题 |