多谢,我程序; ~7 V5 s! [$ O; U- I; g
Methode1 Trigger调用 Trigger定义1小时出发一次6 W0 v: _3 t+ ^& V0 e0 f
(old, new : boolean )' ~. T- j: p" _/ Y5 {# K0 d
is
+ F& [" p! V1 C) t; g' l do8 R& ^) v) b- ^ Q3 R: k1 a- C
if new = true then
$ ~: X7 a; A& s& ^# j# ?6 \5 a0 r Tabelle1[1,1]:= time_to_num(y)/3600;* h' s, N6 R) M2 f1 m' w; z7 R$ E
m:= 0;
i+ L! y" o/ H) w n:=0;
+ N+ h9 G: L1 i" @' ~# k$ g y:=0;
0 r' i5 |0 {3 B0 p. i4 [ end;6 u% I6 |, }. B# \. t8 f+ j6 o. c
end; ; R0 d' L! Q7 n9 w" s
methode2 Singleproc 输入控制调用
/ [3 D) G7 a u' B" y: Xis% _% n1 j2 y( n7 i2 |+ y6 I
do
: d0 s- X$ I. n2 ^3 P5 M n:=Ereignisverwalter.zeit;9 D, b+ P! U( ]; M. \ K
end;$ J6 W7 J' ?( u6 h
methode3 singleproc输出控制调用% n) G* T# y1 X8 i
is
7 |! x# }; D; a- O4 k) s- [do, d: ^4 e j9 t. }) `- m; o& J
m:= Ereignisverwalter.zeit;/ a' H- {8 N: O! e6 \ m; C
if m/=0 then
, }1 f* ^9 N* I' u: W/ t y:=y+(m-n);
2 r+ z- V- r3 T/ ^, ]$ q2 U& p, \ end;
H2 ~. a8 E! S! T: z- i) q8 `9 S
% B) k- Q# D ~. X E( B1 gend;
, q5 Z) L$ {1 {7 em为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
# e+ `9 I2 ~6 j. K0 pm-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。; g* A7 {( C0 w) r8 ?
可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
2 k5 j. b; F- L: H, j请问如何解决这个问题 |