多谢,我程序
% `, J) A5 W _+ I" C7 N- g. KMethode1 Trigger调用 Trigger定义1小时出发一次/ a b+ |$ k7 G+ s0 R$ x- d
(old, new : boolean )+ w2 q5 f, O3 z E2 Y* U) G* ^+ d7 r
is
3 X# o+ ~) H) v- {, _, w do
0 i1 e* y Y* A" P- p" p% O if new = true then ' i# [ k! U1 q. {- p5 {* S
Tabelle1[1,1]:= time_to_num(y)/3600;, o% w4 }- s3 c/ M2 B% u0 Y
m:= 0;
" ^* O% ^2 N2 d5 @ n:=0;. t; s( b; `! D) U
y:=0;
! V% z3 x7 d) L V, P4 p4 S' g end;9 A8 I$ `( a* e2 a @/ u
end; ) D7 u) {* T9 o0 ^
methode2 Singleproc 输入控制调用
) U. \- ^. |- d, g- W' x; i: D; Z$ w0 Qis
/ {2 M; D8 Q/ m! E* Ndo
- i+ q. d# _- L) w% O n:=Ereignisverwalter.zeit;
6 a( I- ]& Q0 G1 Q, ]( eend;
* t6 R+ P( J/ a% M a% Omethode3 singleproc输出控制调用( P$ D+ S& f) Z5 d' C3 ]
is
+ @" t+ v# T- [# t+ h3 ~! ldo
0 Y; ~3 T2 M2 V, G0 U2 u5 ] m:= Ereignisverwalter.zeit; P; Y; Q3 D/ j3 G7 U5 J/ {
if m/=0 then - u* Q% V M2 ?
y:=y+(m-n);
% l, B! w0 s# F( c# [: Z end;: t! L- N: i& f. ^) R( _5 V
- O6 y* w% ?5 c6 V8 d8 _
end;
( q5 ^& m& K' z7 R1 Mm为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,4 P& Q$ K* O7 |+ a1 [, |9 h
m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
) U4 |/ n2 R0 {7 V, N6 \# k0 H可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
* l3 `5 G; T( @) w. Z- e% I* D% w7 k# {请问如何解决这个问题 |