多谢,我程序- ~, z9 T$ x r- N
Methode1 Trigger调用 Trigger定义1小时出发一次, H1 q" ?, W# M4 }: D1 ?+ |( q
(old, new : boolean ), [- D; R; Q2 _& y1 y( t
is
7 Z2 g$ ]6 p ^2 D5 @$ h1 [* o4 G do2 A# t" T' P E$ _! E
if new = true then
3 ?! c* o" u! y* x" Y9 Q p" H Tabelle1[1,1]:= time_to_num(y)/3600;/ V5 z- d; ~3 y
m:= 0;
. ?; z; b7 k. V- a, z$ W n:=0;
2 a! _+ Q1 b. Y h8 T y:=0;
7 { u9 ]( w! r end;
: n% C7 r5 }- B( Z end;
3 D0 ]7 b/ z2 V0 ~methode2 Singleproc 输入控制调用
) [$ b- H9 p$ D: x8 Eis U! _" P' W5 C2 V" ]) r
do
' b- C, Y$ m/ f n:=Ereignisverwalter.zeit;
% b1 T9 C* y I; P0 {1 A$ cend;5 L4 U: @) A, I
methode3 singleproc输出控制调用
2 I1 Q1 {' c* ]" g- l$ tis
K2 O: _) H' `: G7 u0 T- fdo
% `2 ` G% r/ u8 s0 ^2 b$ C m:= Ereignisverwalter.zeit;
( O! F$ \4 z6 s r: h+ h if m/=0 then 9 ~# ^# E, E9 V5 ]/ |
y:=y+(m-n);5 P. G# m; l8 b% p" K0 P/ v
end;
' Z" B3 D# l: M2 f
- b" R- j" F Y% X6 A$ }end;
, ?$ s7 e: k3 m! }9 M) }" ]4 S% Ym为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,) a. o" b) a) D ?# Z& m3 y
m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
. h7 C4 o' B0 T, K可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
& H" l; l9 h* \( @请问如何解决这个问题 |