多谢,我程序
5 ]; @% I4 D4 a9 N2 A3 E+ FMethode1 Trigger调用 Trigger定义1小时出发一次- b9 [& {+ C9 m
(old, new : boolean )1 q2 G2 d7 x% Q) i3 A1 q/ y: m! }1 U
is
$ D5 o' t v" o% z5 m# H do
7 y% j" z8 r: e" v" m' y if new = true then ( g/ K/ [4 g& x1 e0 [2 ]
Tabelle1[1,1]:= time_to_num(y)/3600;2 x2 R) l! z) D* s9 f9 N. i% j
m:= 0;) i/ E. x+ L( S' q
n:=0;& c+ `8 E, \0 a% T% y& k' P
y:=0;
8 @7 Q3 h5 e! D X7 r end;9 v% A+ G* J6 S
end; 4 i& q( f* p: _. g9 [8 Y
methode2 Singleproc 输入控制调用
/ D' O. ?$ Y. g% k+ }2 {is4 M4 o8 n* [! J
do
* W D( e; R7 @2 W n:=Ereignisverwalter.zeit;
L5 @4 L& P- s9 {end;
& M5 S1 t. b7 W; {9 o3 U8 nmethode3 singleproc输出控制调用" a5 h- T" ~! e/ Q0 ]
is
$ [: j% j% W7 K4 P; {, sdo
; x' {# L6 v; [5 l& S1 x0 [ m:= Ereignisverwalter.zeit;
) b& l9 U- N2 E: H9 o0 n( z5 u/ l if m/=0 then ( e' V q; W6 Y
y:=y+(m-n);- S& {- N; I! y8 F+ c' }8 m
end;
% e D; `$ q! G; g ) `' C; R. _- P( _8 t
end;" e8 C5 H8 k) W1 I( M, R
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,$ T" n0 i3 m3 v! W0 `; P1 p
m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。" z1 x; H8 f3 P; r% C! r2 n, z
可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。# U) d. |" T" j; i4 q
请问如何解决这个问题 |