多谢,我程序7 a' n0 X" k- h( U, S* b
Methode1 Trigger调用 Trigger定义1小时出发一次6 m6 y0 z' L) F# `
(old, new : boolean )
( ~/ [# |. l/ J) F3 ?7 zis
* _3 W% ~# j0 K( a( j: h do
6 i% k/ n0 y0 L Z! M' X if new = true then
7 ]$ z, c% ^' e) f* T Tabelle1[1,1]:= time_to_num(y)/3600;/ J% x O3 ~3 o4 T, k- J
m:= 0;
$ L6 M- g& N; k o" L n:=0;
2 [7 N7 k! n! l( E8 F4 K& G y:=0;! S; @# R( g& l- {; m
end;
; z# U( S0 c$ D# Q0 g# ?( v end; ( [ q. k" j& O* o
methode2 Singleproc 输入控制调用
$ @# g# ^ O# o, u' }1 t9 P! Eis
% j' ^: d6 z8 q3 s0 ndo5 m1 l# ^$ k$ h
n:=Ereignisverwalter.zeit;
2 v" z9 M# ?" E2 F/ O" C' qend;
& R& B- O& z. R- s# p) H# I4 _! r# fmethode3 singleproc输出控制调用: E8 E+ ?" @: N5 t& c: z5 L5 U3 ]; f
is: e" b( N* `: I& F
do: \7 M q) L2 a$ H8 Z# V! Y5 `+ U
m:= Ereignisverwalter.zeit;
+ m$ _* t1 V' I5 B if m/=0 then
3 V5 @" g( U0 t+ e, g% V- M. Z y:=y+(m-n);1 b% D2 J' J0 K; J- M
end;
. w1 d& C6 b3 ]7 n
' k$ A- I% L0 K8 send;
# H8 E) }& C+ v @m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
1 ?( }' x; S3 \+ C7 |m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
6 G! G! j6 D8 Y8 N( K( }可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
: Y |: r0 {# N5 i$ N" \请问如何解决这个问题 |