多谢,我程序
# e2 ~, m& Q% q! X. t' z# eMethode1 Trigger调用 Trigger定义1小时出发一次; Y) {4 V3 O8 Y7 W' |
(old, new : boolean )
! q$ m4 U$ e0 W8 P; W3 wis2 G# Q& R9 J: {* s6 k0 D
do4 k7 p; j& Q9 j
if new = true then / L; c' W! U) u
Tabelle1[1,1]:= time_to_num(y)/3600;
9 S% r1 n |, ?7 s( {& M3 X m:= 0;
3 r6 h( O& ?0 C$ }9 P0 C n:=0;: v- d1 f! S' L
y:=0;
0 @& |5 u+ u3 M3 Z end;
' M, i9 B5 O( ?$ u2 @' V6 j; C end; # ~! g0 M6 U, `( C4 P
methode2 Singleproc 输入控制调用
4 C9 c9 N0 X$ C8 ?6 zis
$ N* r+ o4 x1 }' ndo
- P' X6 h$ T! _, K n:=Ereignisverwalter.zeit;! E$ c: o ~* }
end;& `# v5 G( c/ |1 \1 v
methode3 singleproc输出控制调用
, @ c' x) w# u3 S* x5 ois
, m9 C1 p* `: B' i, z# Udo
^) b: q% g% \, s$ w m:= Ereignisverwalter.zeit;
$ f e. T6 P0 o" `. P3 @ if m/=0 then 8 u7 c6 ~) m1 o% U" a0 w8 H
y:=y+(m-n);
) n$ L& L5 c# p* t% l end;$ |4 o' M0 ~* H* p) w" a
/ W. v! A! h1 a
end;
8 }8 k. F, e% @- @* O( lm为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
" Y2 M2 C j9 l: I/ Em-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
- m7 j. g* z6 V; \( z; I可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
% L9 z4 D3 R% n( c) U1 ]请问如何解决这个问题 |