多谢,我程序
0 l1 g0 n6 z' ~; G2 f# JMethode1 Trigger调用 Trigger定义1小时出发一次0 [' l2 `3 @, k! D
(old, new : boolean )
7 n2 H7 a! i; L( Q6 d! _is. x3 F" D- G7 {/ w
do" v( M6 G8 k% s
if new = true then * P/ w' E( Q3 t$ P5 Q$ K
Tabelle1[1,1]:= time_to_num(y)/3600;( N: [6 s* S/ U
m:= 0;! A ^. z5 Z4 g0 |! I4 s6 G, ~& u+ ]9 R
n:=0;+ @9 X; @. }+ q4 o* a
y:=0;
0 P: T; ^/ x7 M, M end;6 n: p+ e4 r1 V, N/ P
end; : ]0 D ]" g& J2 F
methode2 Singleproc 输入控制调用
+ ]. i* b) t* t0 P! f5 ois
4 \/ G% Q3 K6 w; c8 z0 [* E9 l1 edo
8 X7 e- p" W) x n:=Ereignisverwalter.zeit;
4 p- p* C. Z; t4 O' `, yend;
7 V1 ]$ ]5 B7 Z$ gmethode3 singleproc输出控制调用
! l1 `" ~: b; G; t his, A% V( N ?1 V
do5 Z/ d6 ^ L/ l* d8 l
m:= Ereignisverwalter.zeit;
& _( H4 |9 C( q# } U1 f8 c if m/=0 then / R0 T" v8 x) _) O' f3 I
y:=y+(m-n);
: v2 |; w) U4 q! X end;
6 ^' o* T+ ^' F0 I0 B2 |+ F3 F. k
" f* O- S# A& V+ N6 Send;7 |9 R- Y8 t) G5 C' S
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,) `, {9 @' W6 t' u- s- M
m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
- L6 ?( g/ h7 a1 Z; s可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
1 ]) i- a9 H! R8 A* E请问如何解决这个问题 |