多谢,我程序. {9 j0 @9 @& t1 P# W+ g4 ~
Methode1 Trigger调用 Trigger定义1小时出发一次9 l& w6 `! [, V" c- o1 i l
(old, new : boolean )
1 e" ~# s5 J$ p. W' F. Sis3 W# y2 M, g, m2 l
do* v: x/ P8 N8 v6 m
if new = true then - K. v# O e- f) g4 T
Tabelle1[1,1]:= time_to_num(y)/3600;
: T7 }* Y- Y% A N+ B m:= 0;8 X: X' a; z- ]! p. }4 d: H: E% n
n:=0;9 J$ J+ ?( V2 u; {: k7 h/ ]
y:=0;; Y# o, p3 H4 g: p6 i7 o7 _
end;: f$ g' U7 @- R% Z
end; ; O8 ?7 Z! @7 `. C
methode2 Singleproc 输入控制调用
( |* Q6 n0 c+ Q3 kis
- z( ]7 E! D8 w# ^do5 _! h$ {: v* U
n:=Ereignisverwalter.zeit;
+ H0 b! `4 n0 T% Y5 y% Dend;% P; B1 n9 N, _+ n. e, Z
methode3 singleproc输出控制调用
0 ^, } h. u; c! ]6 Jis
7 f& [: u k& g4 m" Y! p/ n! S% Hdo
$ i( p" ?" u% Y m:= Ereignisverwalter.zeit;5 Z7 A( x) b% u& p9 @, R& D
if m/=0 then 6 h |+ N; }2 M- E" V! D/ h
y:=y+(m-n);
3 o( J5 F2 B5 Q" H end;
5 R# | t. \3 j ^* o2 w) W" a
+ q; L7 l9 R& H7 f) d U- @& r9 Pend;& c2 v, H% e. m0 T' g- W
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
9 ^ C: B% ~8 }& Z5 ~m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
6 D$ t, x3 C: U' E- I9 p9 e可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。8 u; h( z7 U# H# E+ y1 V+ j
请问如何解决这个问题 |