多谢,我程序
2 q) } Q& A2 s* q7 E* `Methode1 Trigger调用 Trigger定义1小时出发一次 C! O" h, p5 G3 ^" _6 ]: W
(old, new : boolean )6 D5 m6 K8 L3 m; Q1 M: h9 a
is8 u q+ d. L& M. r4 w5 e8 W% H
do7 X% `6 P- |3 T3 |/ B# ~1 v, [( y
if new = true then : Y' V' Y. k* `+ H
Tabelle1[1,1]:= time_to_num(y)/3600;
1 c$ S) ?5 F( e1 L0 d% x m:= 0;0 L4 f f/ M3 P6 {
n:=0;* c4 q! @' R! Z6 f- ]3 P7 o! K
y:=0;+ P& k5 e6 I' Y8 q
end;
! A8 L- C& K7 U1 f" s end; 5 f# ]7 V& w" j4 x
methode2 Singleproc 输入控制调用
; W. Z. _- J' a1 D4 r9 M1 Y3 qis5 E% N5 x% G" x* }
do
7 h' z6 r0 F. s1 u3 ?# t n:=Ereignisverwalter.zeit;" U4 E- `- a5 M: ~4 d& x0 g* I
end;# M$ I1 C2 J* j
methode3 singleproc输出控制调用4 R9 E b) B9 G7 S8 X2 r6 b, ]2 d$ B; M' g
is
- W% F! O+ Q7 [do
m3 r. `& ?" H% h# K6 o m:= Ereignisverwalter.zeit;2 e, h. W9 a( F4 p0 }) d
if m/=0 then
# |7 O. \" I( f& b4 B+ Q' V y:=y+(m-n);
% U6 F6 }4 Q) k8 N0 M1 _ end;
& R5 d, v2 T$ a. d! C9 G9 ?( Z( o
8 S) n! F* \6 F4 jend;' S( {: V# F4 l, \
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
5 W( m& \& v0 X7 v7 o; v; S- i1 Lm-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
1 P+ B/ ~1 q; P! D* v可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。" c2 S/ S' z4 b1 A8 w. y, L
请问如何解决这个问题 |