多谢,我程序5 L' T% s% e9 j, H U4 ^
Methode1 Trigger调用 Trigger定义1小时出发一次/ d, _7 }1 r; ?, q K% E
(old, new : boolean ), Y1 ^, t$ F$ b& b! S& G
is
* L4 ?5 I& B: J4 o @4 W do
7 Y9 N. l. ^7 {! a3 z* s if new = true then 1 K3 G$ z7 O5 O1 D
Tabelle1[1,1]:= time_to_num(y)/3600;; J: X$ J: u) G6 m" \4 d: E% Y
m:= 0;; q4 J5 E0 y4 i
n:=0;
+ w, s4 U: d2 q+ Q y:=0;
0 J% D, n7 S( ?0 t* Q" U( g end;
: {( `/ l; s; K) c( w! Q end; & Y9 o4 c9 B& y5 T
methode2 Singleproc 输入控制调用* _+ x9 Y! ` d8 S) C
is
5 D' v$ h4 h9 _- K6 \ w1 Cdo
$ R, x* i- Q1 A' A. I2 U n:=Ereignisverwalter.zeit;
* G% {; j6 r6 E1 U' g9 b& y' z- w" e% ]end;
1 ~( ?: h) h# _6 M! Fmethode3 singleproc输出控制调用
: H5 x" q/ T% Xis! X5 F$ g* s8 H9 w( y( d
do
& W3 ^5 a$ m2 X m:= Ereignisverwalter.zeit;% i8 E0 p8 M) z5 z- |; b |
if m/=0 then
9 J3 ]' z0 L$ n y:=y+(m-n);! u- R- j5 i9 W/ Z. h a
end;
" k# C7 T b3 |- E5 N5 J3 e1 _2 c
1 K8 N L- |% {" ~' Tend;& K" w2 b ?1 x) j
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
" ?' a. y$ R3 S" f) J8 Z, [m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
) ?$ R- J4 @% x/ W/ L; m可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。) r8 y7 v8 Z# n/ P6 q
请问如何解决这个问题 |