多谢,我程序
0 Q+ [& n1 c' i! T1 B$ g7 |Methode1 Trigger调用 Trigger定义1小时出发一次) I( U. [" N& W+ E" X, w# y
(old, new : boolean ) v: w. u8 z$ ^2 s5 V0 C
is
3 o! l& N. m! o$ H$ j: |3 g do- x1 l" h& C2 B1 h8 c
if new = true then s1 j5 N. T' W' s
Tabelle1[1,1]:= time_to_num(y)/3600;
" i& {5 z7 G: V m:= 0;
5 C( C2 Q9 c h% g9 I: e n:=0;7 \' {0 ] B: S# w% v6 X
y:=0;
6 E8 n* m% ^& J+ c1 N$ b end;; N) ^7 \: d% K H* ^3 K: S8 `- M
end; * R t7 h. x8 `9 `, o/ z/ M
methode2 Singleproc 输入控制调用) \3 S9 v$ P3 C" L
is5 X4 f/ x7 W @# N7 d. b: Z
do( A0 R5 A3 W) ?7 \1 S! E
n:=Ereignisverwalter.zeit;' A; g# v5 }: l$ f4 U
end;
* U7 V* r \: p; J; i6 L0 hmethode3 singleproc输出控制调用) B& i' | j* B$ A& W
is
- f* N5 S0 B+ Sdo4 T# V. f0 {- T4 P
m:= Ereignisverwalter.zeit;2 Q+ q2 X; ~9 D& g
if m/=0 then 9 B7 V6 l t4 e5 q
y:=y+(m-n);, Y; K$ Z# z2 {, v( ~6 g$ }* X
end;0 d. e& d; b2 B1 g( z9 E
* J- ~! Q! J. @
end;
# r4 t5 g" U9 J2 \0 G6 G/ Ym为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,% ]0 i# Z ^5 n
m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
- z3 S W+ B7 G, \可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。5 Q& `+ O' D) w* b3 b! G: d
请问如何解决这个问题 |