多谢,我程序) s9 L- N4 e" ]' B8 r
Methode1 Trigger调用 Trigger定义1小时出发一次$ E7 e2 i9 G9 ^; G/ Z0 P. {9 R
(old, new : boolean )4 f! q& e8 W- Z! n# a4 O W; [1 r+ ]
is
0 H+ L, c7 p7 Z% A do3 |* M* }3 a! v! a% G3 `/ g
if new = true then ) f/ r& [' ~- L0 d* [+ d5 J
Tabelle1[1,1]:= time_to_num(y)/3600;
, ]- f6 X& O$ J! L& L# q2 U6 n m:= 0;) F$ K& L0 B2 A% v. y
n:=0;
8 q' E5 d8 c& q3 W y:=0;& z( G8 H. H1 l/ K& _
end;
7 z( z2 D2 R3 Y" L( n0 S end;
8 q; h t. U+ |( J1 f: hmethode2 Singleproc 输入控制调用+ e' ?$ B; ~8 q; x+ h8 X5 d
is
/ e, F5 ^. \6 [9 |do7 J& k) F6 x) _2 }4 I
n:=Ereignisverwalter.zeit;
u: s$ c5 R9 s& s; oend;
( T Z, k D) T1 imethode3 singleproc输出控制调用
9 T# L6 d& `4 V1 I) S' o! Wis( `6 _5 N, |0 X1 [
do
# \0 [& S, F5 @7 z9 H" f# y- o3 a m:= Ereignisverwalter.zeit;
2 g7 h0 T/ E$ V6 @* }) ?! i% O if m/=0 then
( W" B" y- m, G. f y:=y+(m-n);; ?9 ` {7 G9 ?% S$ Z8 k
end;* I# C7 e# {8 ?3 T1 h7 T
; ~4 E' b d2 mend;) C7 N, L* L# \: p
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
' J; M0 i3 }+ um-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
* O; _8 ]2 h$ @7 \- N" C可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
' l' @ @6 E1 K* n' c, z请问如何解决这个问题 |