多谢,我程序0 x6 @( `7 ~- j: P, i
Methode1 Trigger调用 Trigger定义1小时出发一次
+ G, q( w' c8 n- U$ B(old, new : boolean )
3 R0 H, L. q: l+ w# Fis6 u& P' y3 H2 }2 U/ c& J* d% ]
do$ U& ^1 Z+ u m! v, o
if new = true then
+ g- L' f% f* s1 v: f9 _0 i Tabelle1[1,1]:= time_to_num(y)/3600;
$ G# m7 @$ |1 Q- z3 J0 u. w4 | m:= 0;6 r+ y. d5 \3 ` h( F+ E
n:=0;
" `: g4 e" g% D2 H7 q5 T/ n y:=0;
4 D$ \3 F- |+ `" a% D6 ] end;
/ \+ n2 u" D2 q# L5 x7 t+ v/ y: V end; ' t& `9 b b! M8 ? ~* l
methode2 Singleproc 输入控制调用+ d$ C- ~0 i1 K0 ]# i" N+ s
is
6 V2 [; U2 j, ? W9 S$ s. ydo7 A: |1 w+ c* j& m. {9 [" F/ }
n:=Ereignisverwalter.zeit;
3 [3 B' P. E, zend;* ]0 F4 h' b$ ^: N X
methode3 singleproc输出控制调用7 Z- o% _, W" [3 |3 I' b+ o9 c& {' R
is
9 \# |2 y- v9 }2 k; c$ xdo2 h" h: @+ V/ G
m:= Ereignisverwalter.zeit;
5 o: i: C2 N+ R if m/=0 then
8 |& ^ f* Y8 Z" I0 c2 p6 ^+ E, t y:=y+(m-n);2 F" p9 b8 S) Z, p5 O! q+ B
end;
+ f$ @+ G) K p7 z9 F8 W
: i3 U" [6 c7 S$ R2 Iend;; h) w2 g6 o! P D) D3 O, N" X
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,* Y. J0 Q7 I6 y, g1 Y! R i
m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。- i' J9 [ [9 ]. q9 t9 m
可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。; C- w6 X6 G1 _
请问如何解决这个问题 |