多谢,我程序 s$ A8 g- H; f
Methode1 Trigger调用 Trigger定义1小时出发一次1 {# s4 a/ O3 r% @! M8 f' u9 q. X
(old, new : boolean )5 y# K% k) Y1 c" @; b# S4 o7 b
is
% o, e& }: L% K) n# Z) z Y$ G do
4 J, d; P7 S$ }% F8 V8 Y" e5 \4 g if new = true then
3 [* f+ g$ c5 N% p0 M! l9 A* e: u Tabelle1[1,1]:= time_to_num(y)/3600;% j* u! Q- J! @6 A. a
m:= 0;
4 J L; w; G% O5 F* `6 w n:=0;
# |9 x0 t# ^2 @8 j2 K8 Z y:=0;/ d4 l" O5 E( B3 F+ [! E
end;
, C6 s$ v- }& C" L2 d& o end; ; X# [3 @$ S9 x; f0 E. A
methode2 Singleproc 输入控制调用
1 j- z* V6 s+ u$ Ais. o% [& ^; ^1 m% h5 P0 q) @
do
* d4 \" H7 E" ^6 W- s n:=Ereignisverwalter.zeit;! ~6 R9 k) j: T, A$ m- N: m8 l+ H
end;
- Q& h% i! S9 N" l, [methode3 singleproc输出控制调用
1 z/ C q1 r Z$ S9 Gis: m- z5 R9 N/ Q3 g1 p3 n' f
do
; z' X3 R& x; Q7 j/ d4 H/ c m:= Ereignisverwalter.zeit;8 _, k0 a7 T, b/ b7 _5 d1 `
if m/=0 then 7 J: X" l N& P* Q
y:=y+(m-n);
& O$ Y4 r$ V3 @' e! c4 x$ y$ Q end;2 [) @. M7 e6 N
7 d* @: v0 j5 _) X
end;7 q6 v+ z* g J3 v3 w/ T, S
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,* z, h+ z2 r/ ~+ P# Y& H
m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。! u8 K4 r& q* [) q) m
可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
/ {5 R. F6 M: p& l" F请问如何解决这个问题 |