多谢,我程序
; Z- Y/ Q, f% j) H1 uMethode1 Trigger调用 Trigger定义1小时出发一次& r* S) Z3 n) Y
(old, new : boolean )
% F4 Z2 d; o- |9 ~5 z2 O, Pis
# `6 \& J9 g# q6 o do
, j3 s- J$ g* m" ]6 C if new = true then $ o) p9 D. H; r2 j7 K
Tabelle1[1,1]:= time_to_num(y)/3600;
. W& X: @+ t# Y m:= 0;1 W; P8 G m, k
n:=0;
9 F9 I% @9 ]2 `9 T0 I y:=0;
: z: }1 u& x9 N) j end;
1 l* y; U; |9 g0 h# x5 z end; - \7 [% ~0 ^! ^( x- `0 A9 q; T
methode2 Singleproc 输入控制调用# N4 j, V$ i: }0 K
is+ d$ Q1 Z4 m! Y: K U
do+ Z, ~8 ]$ l; o+ q
n:=Ereignisverwalter.zeit;
4 Z8 u) Q5 G& ^" b0 g& k V+ Xend;
3 r0 n5 D! I! `% T8 amethode3 singleproc输出控制调用$ K& O) Z& J8 f; G. z
is* k, V0 k+ P* a3 L" Z1 w+ N
do$ f. P% `, A: Q& \
m:= Ereignisverwalter.zeit;
" F, R ]4 c8 ?# ]" i. u% ^! U+ w if m/=0 then
1 [5 T. {+ |5 ~& J. O# U) h y:=y+(m-n);0 K" d5 H3 S( P: r- r
end;* ?$ l7 _& F2 g; u- h
3 A; d$ o, O0 ~; G$ K3 V! @2 bend;
% s* [0 W$ z! bm为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
. x6 w. p2 q$ ]! S0 Z. d- Dm-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
' z: k8 e7 y# O+ C/ _可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。- p( b# M. L1 m9 z0 E
请问如何解决这个问题 |