多谢,我程序6 U5 C& X" p: L+ z
Methode1 Trigger调用 Trigger定义1小时出发一次
3 p( Z- D) J7 [0 l: h- S2 r* w(old, new : boolean )
$ a. k/ \, ], N1 N+ lis. @& X+ A' Z8 R5 Y# I4 u: c
do
1 v1 W9 `9 I( G { if new = true then " L& c D8 c+ f: D
Tabelle1[1,1]:= time_to_num(y)/3600;
% B. X' Q6 J# O6 h* {( D X7 I m:= 0;2 \* M) y6 e, J3 j# J/ n
n:=0;
5 {- ] g4 e5 f: }) K! P y:=0;" U2 g/ V3 M* u0 x1 @; c. P& B/ R. N( p
end;9 V0 Z, P7 f* h5 N: n# G8 T5 d
end; 3 [; c+ M! T; Y8 b. ]' \6 M
methode2 Singleproc 输入控制调用
) t. J4 ~( e/ H- X2 z8 ]is
/ a3 ?* f( D; T8 Z% T; f# vdo) z# V+ U$ Q z. B5 b8 Y$ ? ~
n:=Ereignisverwalter.zeit;
5 v) j8 @1 W8 nend;
v8 M. S" j' {, O5 hmethode3 singleproc输出控制调用. G# e: L4 U# F1 ?% c" T# b
is3 N4 z# Q. o* n. K: r' Y# u) B- {
do
% t+ e3 ?6 ~* y' z. F m:= Ereignisverwalter.zeit;" I- o1 H$ |6 @& x
if m/=0 then
3 B% u$ \- _' i$ o* g y:=y+(m-n); c. t3 W9 b H
end;7 ~& q* Y! ^0 u4 j- A. O2 q" P
$ c; y2 u2 R( P# d% d/ q: e! f& H, q
end;0 k0 b% D$ ~! `# k( y/ H5 P
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
+ u/ _' ~+ n1 ?: v* d4 Hm-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。9 S ~+ x" v6 w! M- f
可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
1 P+ ~ B1 n+ h8 M3 Q请问如何解决这个问题 |