多谢,我程序
3 x5 m. g# x4 KMethode1 Trigger调用 Trigger定义1小时出发一次
# n( O: m* G" z. z4 p2 \4 R0 K" K( g) Z(old, new : boolean )
0 B7 d/ ?1 [& @" Q7 [( V& `$ Fis3 w% a% U9 W, u% ?, K
do
" W& M+ E2 w$ Z! A6 C7 F if new = true then " F! k* [1 m% S7 H
Tabelle1[1,1]:= time_to_num(y)/3600;- R/ J+ V9 P4 _* k w3 K$ j) M
m:= 0;2 X- E& [$ J7 g8 U& L
n:=0;
& K0 t. v& h8 W. f y:=0;5 X C+ q3 G& D% @+ i, g# k
end;$ H! ^2 ~! i9 _8 d( J7 S- o. ~
end;
1 B/ j) b( ^; }# m2 Z2 fmethode2 Singleproc 输入控制调用
+ r M& P+ D4 U) q& Bis
( ~: i" N8 W# cdo* B. ^) ~) v$ K% F3 d
n:=Ereignisverwalter.zeit;
0 e8 t# n5 o) L7 W" R) t9 }- c! Hend;. M. a8 c- ]; S- L8 O* r
methode3 singleproc输出控制调用/ m f. v- \' L F- t P4 L
is
( u5 q$ f, B' J% Tdo) W. Y# y- n' P- J
m:= Ereignisverwalter.zeit;* e5 E" p+ { C" W6 P# \" h- ^- v/ p8 C
if m/=0 then 5 U- M- q' m; p
y:=y+(m-n);
3 R- p# x0 Y9 |: T* g/ r* S0 c: ^ Y end;- _. `* I' u4 e
- P. d4 w0 |" ?1 Cend;
6 \$ H/ i$ F& Um为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
9 d& u. s) z. m# g& S9 \) ?7 E3 Im-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
1 v9 ~5 Y: w5 ~' @, {, v% M. ?/ X5 A可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。6 ?; }! l8 G0 b" |, s! Q' u
请问如何解决这个问题 |