多谢,我程序
9 i/ y5 h2 S' o, G1 m" q' K" vMethode1 Trigger调用 Trigger定义1小时出发一次5 ^ T. T2 t- H6 t; ]5 j
(old, new : boolean )
! @0 t0 C0 |. h; xis
+ O( [" p3 _! h do
2 F+ x$ r. u9 Q/ } if new = true then 1 U, |$ f, {% B1 C$ }3 |+ S
Tabelle1[1,1]:= time_to_num(y)/3600;
" Y# b# q; p* \- a* n m:= 0;; v) C) ]" ]% q- v$ G ?0 D3 W! F
n:=0;6 c i8 k0 |2 g, L, l. h
y:=0;
& U* X* h" {6 ?4 T4 y4 }7 z' J end;
5 M- y6 M( U6 i) v end; , Z! Q+ Q/ C) H+ p1 n& X5 a
methode2 Singleproc 输入控制调用' j s s& C7 I- _3 w* L; a s
is
( V- B- a+ E7 x9 D0 F2 Zdo5 t5 U) ?1 i# L9 a! N& s$ _! r2 ]
n:=Ereignisverwalter.zeit;
7 H$ c$ u9 L. o& q4 M+ c! ]end;
! W( u8 l: P- ~+ Umethode3 singleproc输出控制调用
$ c3 K1 E6 O' Fis7 z8 d' l- A4 g3 |! |
do
}- ?$ h3 W( I& c+ v m:= Ereignisverwalter.zeit;" f* e% I/ x+ P" P
if m/=0 then
: } U! s( ]: _1 Y' C y:=y+(m-n);4 [& V' h2 W. t! R* V
end;
; H8 ]# a; X3 i. |# W: T3 F
l( a" o" G2 w( [end;8 [$ |; e9 \( @3 _
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
3 w+ m4 a) F1 G, A# K8 h1 b0 p# Rm-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
! \7 k, x, e+ v. x- D' t可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
8 v5 @* A7 A2 G7 v+ p o/ U请问如何解决这个问题 |