多谢,我程序* B) L5 c# W' Q8 ~5 ~- f* H! k
Methode1 Trigger调用 Trigger定义1小时出发一次- i7 z0 Z3 f3 |2 R0 e
(old, new : boolean )
9 Z M5 O4 I5 F Fis
7 d/ v2 c" o5 O+ R7 t3 e. k do
X" y- ^8 c, I if new = true then 3 K d7 R! A: y: R! T+ S
Tabelle1[1,1]:= time_to_num(y)/3600;
! o# [; K" U- }& c$ f+ e6 Q m:= 0;# e9 H) [% M# V' s- \
n:=0;
; `9 l, o% A0 H0 i6 x7 S0 p y:=0;* x9 w% @6 Y3 f9 X9 r
end;
* B# z5 R* G0 z: r7 d0 g+ N end; , ?, K/ H& M# b- [( _ @
methode2 Singleproc 输入控制调用
5 z% G- c( b1 c" |0 mis h& l; N& K8 I0 b' {8 f M- L/ C; R
do
; H4 a+ n' j* i) t" t. D- g n:=Ereignisverwalter.zeit;' V9 I y& s/ D3 U) \
end;
3 X0 f5 |# k5 umethode3 singleproc输出控制调用
7 }6 ^" e, g2 y. D; R! ~- E* |9 Wis [ Y; O0 `* E7 A8 ?$ |! C
do! ]- h" S, j# t* X! _4 B
m:= Ereignisverwalter.zeit;
; y N: M6 S# o1 i8 f; P2 k2 B6 d if m/=0 then
. h- _9 m* t9 b2 m y:=y+(m-n);; b: t) C" q# r s% o+ ?
end;
( p7 |! W/ ~7 ]1 y% v6 m% n# O
3 X3 d4 B4 Q; s7 e( Gend;
- _+ X4 j6 c2 O8 d: s2 {m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,# c: W: P$ @& @- H
m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
! a) f% x4 r( u; F可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
3 F; y) x3 F8 `2 ?0 K请问如何解决这个问题 |