多谢,我程序
1 W$ ~9 U4 i9 `! d# a; ]: ZMethode1 Trigger调用 Trigger定义1小时出发一次
0 j: F" N4 @( Q# N8 a7 G(old, new : boolean )/ X5 F* Q! f1 c
is8 T) P$ @+ F; K
do
* T4 v$ v* h* N7 y- b if new = true then
6 N2 l2 ]1 H" i# a8 Z! L5 \4 @ Tabelle1[1,1]:= time_to_num(y)/3600;7 d7 [' u, h- s5 C: U# O
m:= 0;
; W+ G3 F, o9 e' o/ K) x n:=0;
6 W) s- y& N% g1 D* k1 }- J6 y& j y:=0;
2 ] [) j1 v; } end;
5 E) F$ v8 F7 I. G+ z R end;
1 `- K7 f( N; U7 nmethode2 Singleproc 输入控制调用/ O4 i! Y; g* F8 `- g4 \0 ^
is
; N: \4 q5 Z/ k, g1 Ddo* I7 I/ Q6 p g/ s- R- k0 S( p$ h8 c
n:=Ereignisverwalter.zeit;
8 g& {. u) b6 N. e' }; W$ oend;
0 a8 i/ @* @% g: S: Jmethode3 singleproc输出控制调用
+ ?8 p, m; |; T$ q" J/ u; p$ q7 _is
% l/ G9 L6 M: |- Xdo
) L9 z# ?/ e0 c9 L* M m:= Ereignisverwalter.zeit;, j; Y( h9 F* d9 @
if m/=0 then
% i3 W/ P* ?( @: [1 V8 A2 L y:=y+(m-n);
* P Z" O# `7 v4 m8 l end;
( f! {+ v9 G2 C
$ O8 l# i4 D# ?end;
& k# l( Z) m+ p6 Q# O. F! Cm为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,2 Z9 t, t6 c% \
m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
- y( L) g3 V! }% H) M9 c1 M! u可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
6 p# Q. k7 J( j) c# D" l2 b请问如何解决这个问题 |