多谢,我程序
. {8 I- c! g+ B L) ~Methode1 Trigger调用 Trigger定义1小时出发一次( E: G/ @2 o; K8 b; t- `
(old, new : boolean ): N4 O& B7 H0 B: G) `
is
" E0 W2 ? k2 f( [& b do8 E3 T9 q5 u9 A/ l+ j
if new = true then 0 D! H' b/ {# C
Tabelle1[1,1]:= time_to_num(y)/3600;
" O$ H A3 [( M7 u m:= 0;
' I/ ?. d5 G# U- h. a3 R5 i) [; ~ n:=0;( ?+ f! q1 @7 U7 |
y:=0;1 ~3 T$ T2 @8 {. k4 w5 N+ g
end;7 U6 n" q6 J, k
end; # z6 ] \3 S: c% ~* H
methode2 Singleproc 输入控制调用
+ M9 Q' f& i6 @; {# L: _! Q ^is
1 G( ?" Y7 n- _1 y1 _2 k& cdo* Z3 }, s' R; V% f, w( a& ^+ T
n:=Ereignisverwalter.zeit;
8 j# M2 z5 W5 ]5 z; c. n$ R5 W7 Bend;& [9 X! o0 s' E2 J( {: Z
methode3 singleproc输出控制调用
+ H, E$ [, \7 h0 @% B% gis
( F4 }$ X+ }$ A8 I3 kdo
6 k9 {, `* L& Y# ?0 o; S/ I m:= Ereignisverwalter.zeit;
, T M3 x @; ?/ E" W1 a: Y if m/=0 then
' ]; h$ ?6 D7 T7 K+ R y:=y+(m-n);
$ x0 m. i" d* n( B end;) t/ u) w. g6 G: H$ g
. ~9 a) n' [ a) k: Z, b8 J( J0 bend;
0 A4 T+ X" u4 k! ~! Um为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,. a6 G4 b) @" l/ w& P
m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。* K$ F% G# O! p% Z" J1 ]$ O0 K
可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。" @, P9 k( |- z% X
请问如何解决这个问题 |