多谢,我程序+ T$ {7 \+ z+ r8 q9 M" D4 L2 w
Methode1 Trigger调用 Trigger定义1小时出发一次& t( V# O7 X8 d( Z d d
(old, new : boolean )
$ X& S# |- E( R! bis
# @5 V2 f) y7 k* L$ Y do1 l {) R2 N1 B' a$ O% g: W
if new = true then
* n, Q& }# ]; C1 P! I Tabelle1[1,1]:= time_to_num(y)/3600;
' c% s6 I ~. k m:= 0;
9 x3 W9 o8 a6 i) ~) y% G n:=0; p- ~) H2 X1 H& u3 [+ i5 p
y:=0;5 [7 R, m j1 F! L% \
end;) w6 V$ ?" ^ i3 \. t5 G8 q2 Y
end;
) m, N. \$ i* M1 o z# P$ Z4 Emethode2 Singleproc 输入控制调用# k* y4 u3 k9 Z' N. O
is3 i& n( e2 G- [" ~' H
do
7 _& e2 q' |( I, ^) T n:=Ereignisverwalter.zeit;
, t/ t3 I- q% I# S1 R ^end;) C' S1 q* A8 h* w+ e& \! K
methode3 singleproc输出控制调用& e4 B6 Z- a. e( t4 A
is
) u [! f0 J! Y) X6 Qdo
+ L' D3 u5 {+ ?! ^2 i m:= Ereignisverwalter.zeit;
- v* l {3 G* r0 K+ k if m/=0 then " ~; H8 n- X* d6 f+ A
y:=y+(m-n);
5 ]; U; M, N3 T# {. r$ ~ end;
0 S2 V4 e S4 B, g: }" ~- }7 Q: R1 e* b 0 P$ d/ c3 Q2 ^! l( Z: z) h( d
end;
* Z3 @8 _& K+ c4 L/ r0 H4 _m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
, |9 U) q4 n5 |/ r0 lm-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
# T O" g# H$ h. y2 F0 ?6 O8 b" Z可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
: v4 I. A8 Y) x/ i; M请问如何解决这个问题 |