多谢,我程序' H% |6 N# q- j$ O6 R* {
Methode1 Trigger调用 Trigger定义1小时出发一次9 A' y/ q, z" ~3 c
(old, new : boolean )$ g1 V+ v7 g# E
is
( S9 j E f' I do7 k# Q, x: w8 l6 O
if new = true then 3 [4 b; p; Q$ i
Tabelle1[1,1]:= time_to_num(y)/3600;
7 Z* r/ ^* ]" R2 Z/ q- e) T m:= 0;/ E& l; d9 D$ {' n5 F. O* N
n:=0;
: [8 I, v$ U- i' `9 `, F3 C2 N7 R" ? y:=0;7 X- M. W) A% p' y R$ L. q
end;% [: L8 H" }+ y+ a
end;
/ v0 e& B5 b$ _1 N# b& fmethode2 Singleproc 输入控制调用
/ L0 l3 }0 u; J. Jis
; S" ], t8 o4 U3 r. h7 j* ^- e- Udo: M8 F& k1 h5 |
n:=Ereignisverwalter.zeit;( k6 d, b2 q, R; p5 O/ C$ F8 l
end;( O1 ~+ O' [+ ` I" x. c* J
methode3 singleproc输出控制调用6 y6 }2 G" J& a7 Z. J0 s
is9 L4 P! {/ s9 n& _ t3 V
do
: m8 j+ a' d1 P3 V m:= Ereignisverwalter.zeit;( O3 T) I% I8 ]' g. d
if m/=0 then $ A* {- e8 W3 g0 [
y:=y+(m-n);
6 o" M- @: n) c4 i end;
& T3 q) f5 k! h h ) A, x" b( R& y7 W" M# n* w2 s
end;5 h& y7 I2 S7 o- c" u( a
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
( t, p/ j" F/ r( M/ p! Cm-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。$ }, g! B. X' [8 z$ K" E
可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。( w# w# b$ i3 q3 o V
请问如何解决这个问题 |