多谢,我程序
6 D* }- a4 y# m: P& N9 {Methode1 Trigger调用 Trigger定义1小时出发一次1 ?- [* g) S0 @" @1 b# y
(old, new : boolean ). c9 S3 f' _/ A" F/ B* M
is
2 d& ^6 N% G1 X) x1 G$ l! i do0 o2 f: M# V: q5 V# e! s+ N K
if new = true then ) c, |! @' l1 D2 c+ h
Tabelle1[1,1]:= time_to_num(y)/3600;
! k% \$ J$ x8 B& v3 P' d9 r% ? m:= 0;
* J0 q" G; q' A+ L( @! _! g n:=0;
4 \8 e/ O* |3 C! ]6 E y:=0;
X: {9 q$ [& C end;7 m* H# J8 ]1 D0 y
end;
6 ^0 A' S, D. N2 C5 n) qmethode2 Singleproc 输入控制调用, r0 ~2 l3 n, O# H( a4 `6 }
is
+ W ~. W1 T2 I; ?9 R8 Qdo
0 `4 D2 W" ?2 V! O6 E n:=Ereignisverwalter.zeit; r1 F: p9 K* a( U
end;; f1 \4 B' q( }4 H. k$ G. U8 I* R
methode3 singleproc输出控制调用
9 [7 F1 k% s+ |3 ^9 U0 h0 j2 G- ois
, p/ J1 \: G" d0 a/ I$ C$ p: ndo
2 o% \4 e- S, y. P" n/ Q m:= Ereignisverwalter.zeit;
/ G8 ~9 o. i) S+ j3 D6 o; v, y' D if m/=0 then 5 X$ k8 t% p4 Q
y:=y+(m-n);
5 D( S8 Q1 O, G2 L5 X end;( @! o% T( e) o$ S- h
) z# [, J" Y' N. Nend;
; W' E/ x$ z9 ?- f* a1 Pm为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,1 d. a: c9 u: w* u" ?0 `8 F
m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。) U3 {* K' P1 X5 y2 H8 T
可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。8 y, P7 ^8 ^& Q7 @# U
请问如何解决这个问题 |