多谢,我程序7 H* W" m: H7 l2 i; T6 v
Methode1 Trigger调用 Trigger定义1小时出发一次
/ n8 C+ s$ I: `6 s& e. b$ K6 |(old, new : boolean )6 F+ c0 v5 G4 n6 h
is
4 E) f3 @) r g/ u# i- i do
+ M4 J& [: B" b if new = true then # N5 V. e* v5 m" ~3 [6 ^4 Y! |; Y
Tabelle1[1,1]:= time_to_num(y)/3600;
1 A: O! v$ J, }: K4 d m:= 0;, f( Y% N7 J8 }3 V# F0 d
n:=0;8 C# g* ?" u# |5 p
y:=0;& ~! H P+ q. N v
end;% a2 ]0 ^5 l7 F0 O# B& \3 m
end; 4 j# r% t3 _6 w5 [6 N5 m6 g
methode2 Singleproc 输入控制调用
9 L+ G& G3 K$ h! _$ mis
! z, m [$ v, ^" `/ pdo# b: t2 G6 P; M
n:=Ereignisverwalter.zeit;
2 L9 ~" \" n$ `3 r- w/ _end;
) |" U4 z7 \# H' ^6 ~7 f3 t& cmethode3 singleproc输出控制调用' y6 S1 A/ _: ^( S. w
is# C# H% M/ f: I; t6 J3 }& r* a: l% y
do( S" g5 s {5 p- z" B2 L
m:= Ereignisverwalter.zeit;7 v/ b' Q3 Q5 I) N/ ?( } `
if m/=0 then ~: y; \5 _* t
y:=y+(m-n);
1 Y6 M0 ]0 S+ O! U J" z ^ end;" S' J) h' E+ }4 g* s5 i
; J( A6 D, a- D3 d% ^end;
( T4 D# k0 P' N0 Y, F" f. t+ C( Hm为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
0 o+ u% W& U/ w V: Im-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。& x2 N% u( t$ y
可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
/ x- q5 i( m& ~请问如何解决这个问题 |