多谢,我程序
6 _" l. }8 H* x6 s" d+ i! U. T dMethode1 Trigger调用 Trigger定义1小时出发一次
8 F+ `) u5 ^: g( Y8 r6 o3 S(old, new : boolean ) ]. m0 p6 n0 k
is
$ V9 m! o* S2 O: I1 I3 S do n% h) Q+ T, Z
if new = true then
E0 L- M9 y2 `4 z3 {8 C Tabelle1[1,1]:= time_to_num(y)/3600;
3 K/ ^4 V3 B% Q" ]' o6 y Y B m:= 0;
! k2 n, W8 y3 W: N n:=0;
: a7 Q3 l H3 A y:=0;
- g* m7 n8 Y2 | end;
+ L7 q6 x7 V3 k' D% \+ D8 z end;
f% Q3 N+ F4 s/ d2 L# f7 U+ Ymethode2 Singleproc 输入控制调用
4 n9 d0 x# W6 m. Sis
6 ~& S% I- N6 L7 l- gdo
* A) G9 ^( e% g; o! Z n:=Ereignisverwalter.zeit;
9 p5 [+ G" j7 P# E1 T( ^end;: ~" w' Q1 a8 Y0 |' ?
methode3 singleproc输出控制调用
5 E! R' J5 h5 v( `* qis( P$ x* G# e$ ^# s& t2 v
do
& f2 h3 {7 i9 Q m:= Ereignisverwalter.zeit;
~0 G- P C% Q) {8 Z7 o. U3 m, ^ if m/=0 then
3 {$ h" ]8 k# C& Y/ ] r y:=y+(m-n);% r9 ^0 L4 u: G! f3 M9 k& p
end;
: l- Z0 T, m( v1 e
3 Y3 v& P8 r& H$ b: W4 _ w4 U" Uend;" I/ W" P" c4 Y9 i. a! ?) ?) B0 V
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,% G7 f7 E2 Z1 V* s W
m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。* G( r* V+ L7 b. W9 w" Z7 g* `) U
可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
5 h1 S1 x& m8 ?% f7 {请问如何解决这个问题 |