多谢,我程序8 x8 n: l; v6 m5 [* B* c: c, O% ?, D2 @
Methode1 Trigger调用 Trigger定义1小时出发一次+ O" h- q3 O5 M# u( I% E/ h3 B
(old, new : boolean )
7 R+ {# Y4 Q1 his
4 `, |7 v; A* W* m% f5 k do. ]* D! A0 j& c5 z- X
if new = true then
' U5 W" [1 Z! |9 w0 c Tabelle1[1,1]:= time_to_num(y)/3600;- @' |1 n5 e# h* Z9 V7 e I, r
m:= 0; s4 |5 g4 j) a% q( a! U6 X
n:=0;9 j: Y- k5 U1 F, c' L% c+ e
y:=0;4 F: Z. T7 Z5 K3 f. J, Y) O3 b
end;
- e5 Y# f1 ?$ J. f end; - N, o2 j) N: M! F* ?; ~; a/ @
methode2 Singleproc 输入控制调用
- D% j( k! f+ u& L5 |. Cis1 j$ y' @2 i; j0 m. X$ \$ J
do, J6 k; L$ [1 O( A$ E9 K3 Z. r
n:=Ereignisverwalter.zeit;: @; a J- S% b/ G1 L4 Z
end;2 z: f% Y) p1 r U3 ~0 _
methode3 singleproc输出控制调用
+ p3 [4 B4 [# J6 v) ois
N/ ~; J' G8 a1 wdo9 q! R$ P. N& [0 o
m:= Ereignisverwalter.zeit;
! Q1 [; A/ H2 K if m/=0 then 7 A$ v+ `6 u+ H
y:=y+(m-n);. j5 x' f) Q5 V8 `' e) F3 Y
end;$ t2 }' O/ a6 ?! l, S# w3 S: \
9 i% A* Q" b) p1 V4 w P5 j! Lend;' v/ c! Y8 B: y
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
3 D+ ~2 d, a/ am-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。$ [% b7 R* @6 `5 q
可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。5 n! X6 B h# m/ Z1 @* m
请问如何解决这个问题 |