多谢,我程序- y9 h( P6 n7 C# i6 Z) C
Methode1 Trigger调用 Trigger定义1小时出发一次# g: y- C+ _/ Q: o$ O6 r
(old, new : boolean )
$ I6 K( A& n/ b" y9 |. o* fis
& I( Z' p7 \1 s7 z; p do
4 }) U! K( ~; ?2 c6 W. m if new = true then
8 h& o) L8 a1 B# v8 V J8 o Tabelle1[1,1]:= time_to_num(y)/3600;0 k3 W) `2 _, ^; G# v. F
m:= 0;1 e+ L+ U' S3 L( P. s2 j$ x% l6 {
n:=0;
3 G+ R" a3 u0 |$ x6 S6 d y:=0;
* m9 z- L f- @ end;+ D0 b% B/ p5 v# \0 T" W$ O
end; 2 v& J/ |8 M: d- C) L
methode2 Singleproc 输入控制调用
. U5 I' Y' ~% L# gis
5 T8 g6 A9 j/ U5 Ado
w8 I$ F P7 b$ X9 j7 M8 E n:=Ereignisverwalter.zeit;
/ ^9 U( n! l5 S: @# Send;' ]4 A1 H- i) f6 S& A5 y h
methode3 singleproc输出控制调用1 A+ W4 Y E7 u" @6 _
is! f% G1 `6 p- c2 d& H
do
8 P; K8 S5 L3 I X/ l m:= Ereignisverwalter.zeit;) A2 s$ J6 p E3 H5 ~; M
if m/=0 then
) t _) a/ Y5 H y:=y+(m-n);
]9 i$ y# h. f1 H* u' | end;/ p8 y; s1 `& g3 M6 I1 i
# u3 a+ Q2 ~* L% |9 D8 {) {$ f9 ]1 b$ Tend;" d. X% V" T6 g
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
2 l u$ G: y" ?# qm-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。$ C" ~6 [9 b6 \3 h% ?
可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。. Q s2 K* o: U, m4 @
请问如何解决这个问题 |