多谢,我程序7 f7 A+ L! T* |, g
Methode1 Trigger调用 Trigger定义1小时出发一次& ^4 h5 V9 A" o
(old, new : boolean )
+ ?- J) W) H Dis
* Y$ U) b7 q# O* M7 T, I do
: ?! O( \) t) [# w C if new = true then 8 J8 g8 y9 V% d- a6 {8 [
Tabelle1[1,1]:= time_to_num(y)/3600;7 {0 f: n" [" T8 V& M0 c H
m:= 0;$ t! r6 [9 Z0 a! z: R1 N
n:=0;
( k6 A: K- b+ d& }7 F y:=0;
) r$ E5 k2 V% G7 F: v% O; { [ end;
# O+ Z# i ^! O# Q) y* k6 M end;
y- w$ M$ Q' \8 \0 K* Qmethode2 Singleproc 输入控制调用
7 E2 Y) r- G" h- R; ]0 jis/ K$ r" _$ v% p# R; e
do
( i5 V' F( E3 Y n:=Ereignisverwalter.zeit;
' _0 J6 i, ~8 A) \0 Yend;8 \8 X% [. t7 M8 y, X8 E$ g
methode3 singleproc输出控制调用3 W% C" @/ @# [
is2 P. ]: a/ f! ]5 b( x( Y/ c
do+ J1 x1 g H5 [
m:= Ereignisverwalter.zeit;
7 `% \$ r1 A, g: H5 s3 p M' M+ m if m/=0 then ; A0 w9 W2 p' Q; K z. F' |
y:=y+(m-n);
2 h! D* B6 _6 m end;3 U, x6 `+ M+ B2 G
7 E) ]. y% ~) D9 s' M% X Kend;: r$ T# ]( }" @. ]. ?* s
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
& y% v8 |: r' s: V, A. V# Sm-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
9 W5 J9 l+ ~$ v/ [2 Q) D可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
3 z4 p) ]" I1 ^5 {9 n9 X, f& G9 s请问如何解决这个问题 |