多谢,我程序
" G7 Y! Y0 s3 x5 h6 r7 r. ]Methode1 Trigger调用 Trigger定义1小时出发一次
( c; A5 ], e6 r3 U \# u2 ]2 S(old, new : boolean )
# m- ^' n4 y: U: F6 V4 y$ dis
9 W5 X; T- h0 B M% c4 E' f do
7 t* c! s5 ] L" r if new = true then
) [- n' h& i6 T( Y/ }( A Tabelle1[1,1]:= time_to_num(y)/3600;! k# b/ d1 w7 h1 C$ {- @
m:= 0;
2 n: B4 i8 |) O. \- H2 M/ C1 o n:=0;- N# j" z3 |# @, \! @2 e
y:=0;3 {: G* G0 s& t* G' {
end;
/ ]8 E- T) m. X& J end; / S- T6 {! R. A9 q1 A q$ ]
methode2 Singleproc 输入控制调用1 J* T- R- X( I$ e6 C8 g
is2 i0 y0 l2 k4 D; k% O
do3 s/ @2 E# O7 U6 H
n:=Ereignisverwalter.zeit;+ ~, V0 f: W; ~" G4 \$ F# X
end;* R3 o1 |' R3 g+ p) s* R6 i
methode3 singleproc输出控制调用) u& M4 Z' P& D$ I7 j
is
4 h1 i! J( m: ndo
6 S' R/ u i5 I3 ?/ @ m:= Ereignisverwalter.zeit;- K$ c& a+ @9 j
if m/=0 then
$ F9 Q/ r% t$ \3 }5 U& n8 ? y:=y+(m-n);
8 h3 @) b7 X% }- u end;
! X. x4 v2 U/ {& y9 b' D / a/ S/ D7 \ @0 q- }
end;9 v. W' u& i2 v6 I, v2 m4 {
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
6 H: M" P" ~# L, {+ ]! H/ |m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。+ Q# g1 c, V1 X& c/ `' D3 R5 o
可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。3 R. \& b. R; `% C% ~, t
请问如何解决这个问题 |