多谢,我程序6 \% {+ j2 T8 [, A- S) |
Methode1 Trigger调用 Trigger定义1小时出发一次- I( V1 u" `/ {1 k! ?" _- U5 W& j
(old, new : boolean )
/ h: F: E# p" F' j6 His
1 G9 ~/ L4 b" y5 Z. R# d do( u+ V( ?5 Q! E3 P; d% H$ M h
if new = true then
; v0 F% i2 G' J( j Tabelle1[1,1]:= time_to_num(y)/3600;
$ L0 U! \- s3 B m:= 0;
+ H' D2 ^9 s% L: s n:=0;
& a$ n3 p. }& B2 Y, D% D1 R8 a1 _ y:=0;
4 ^. J+ Y* g) {% P9 S, _" X4 L8 D end;
. k# k2 K1 F ? end;
. i0 h4 d1 k7 b( _4 Cmethode2 Singleproc 输入控制调用
: a3 W4 G, r% R. |. Dis* Z9 S( E9 b {3 K. C0 E
do( L g% P8 q/ N2 {
n:=Ereignisverwalter.zeit;
& S& ]9 v$ i- E! E$ f- nend;7 }$ ~* m& n' z3 F C3 e8 F% Y
methode3 singleproc输出控制调用' s9 j* V% Y B6 z2 [* _+ w
is
* t6 [4 \; M8 K6 W9 ddo7 l( v7 m" Z+ a5 U) S J
m:= Ereignisverwalter.zeit;/ C7 _' G( a% E0 z1 W
if m/=0 then q, \4 u! H4 ?
y:=y+(m-n);
, c8 ]& u; c' o, F) z end;
0 q. Q% K; z, \ ! a1 ~0 O8 c* Z5 `5 c G- l
end;
, X, Z0 k- Y+ A4 ^9 Q$ V6 cm为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
( i" k3 H6 [4 v2 E% N, S5 j7 Bm-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。 U& T1 Z o* \5 q
可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。! J1 i- {: s2 d( P- S: Q" g8 O
请问如何解决这个问题 |