多谢,我程序$ B# ~6 y' B' G5 E) m j* g D
Methode1 Trigger调用 Trigger定义1小时出发一次: K8 X8 _, @! k& ]9 y
(old, new : boolean )$ ?, @! Y' j7 g2 z7 R+ o4 }" y
is
. F/ }0 S9 j( ?, P, t. P do
& ^7 l. B7 h; p+ L if new = true then
) @, i' X3 N2 ?0 Y Tabelle1[1,1]:= time_to_num(y)/3600;# e- W" D! W) }2 q; I9 o# n) i
m:= 0;" d7 w) U. O1 q, X8 [1 ?
n:=0;3 R& X8 i& D; e* N2 ?
y:=0;; W: ~3 P0 _1 S9 r$ V. O' v
end;
2 D6 A3 e n9 z7 i5 W) v end; " v% ? b" i5 K9 [2 p
methode2 Singleproc 输入控制调用3 R- ]& p: Q0 q% |6 N6 s
is
. D ]5 }/ g2 N, c7 a7 Y1 W0 Edo
' O- ~/ r: ]: G7 r( | }* B& I n:=Ereignisverwalter.zeit;
1 r) p4 b- Y) b8 f { f3 _( vend;
s" |6 r& {* o; u* r% Xmethode3 singleproc输出控制调用
+ P t* X4 x5 K. x8 R; mis
4 _ N& ]0 N0 B7 P J" y/ D4 Cdo) v; g) G; c1 E" A' `1 w, Y
m:= Ereignisverwalter.zeit;
v9 ?$ r( K9 c( z7 N w& ?" G if m/=0 then
( |' h; U$ P0 f1 ?9 { y:=y+(m-n);
% X! Q9 E) f8 y% w' h0 Y) Z end;% k9 A* m6 M2 b% c* D' U; X
6 T" v; u. B5 m: I
end;* M4 o7 z+ V5 `9 [- M5 A3 w. {
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,& P7 M0 {2 P. J% S! E
m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
# W- }: N5 a- ]+ _& m可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。6 J" C" @/ R) ~* [0 I% W
请问如何解决这个问题 |