多谢,我程序& O. H2 v) N% H" Z- S5 y6 J6 q" {" W
Methode1 Trigger调用 Trigger定义1小时出发一次
# t, q6 @3 D# v* ~(old, new : boolean )
: N3 ], L0 p; ~, A& y- t" r7 nis
1 ?& A7 E L0 _ z B) s1 B do
$ T: n( d- |5 s' X# M% c) n if new = true then ) v" f0 n$ Y7 d) v. h( Q( x
Tabelle1[1,1]:= time_to_num(y)/3600;! u, D9 C {* K; X I+ g
m:= 0;
3 |0 T Q; |- B n:=0;
4 _" |5 m$ Z3 Z D( k" k y:=0;5 {1 R3 Y+ \7 a. E/ R$ y
end;
/ B' ]/ }% b- x5 I$ M+ H1 c- m end;
& R4 r0 L5 u8 Z/ ?! Jmethode2 Singleproc 输入控制调用1 y9 y/ V4 z/ v7 t3 N6 i
is2 n. b: R1 A9 x+ O( T
do
; s4 E- V9 A/ S n:=Ereignisverwalter.zeit;
2 J% l% B2 x& t+ T' h- J% bend;
1 \; S2 }) c! k/ {; D( C" \$ ?2 nmethode3 singleproc输出控制调用; W& u7 s" ~* y
is# s/ p$ x; h8 _$ O4 v' c
do
& D) [) o# s/ X m:= Ereignisverwalter.zeit;$ f/ f& h' o6 g v6 @
if m/=0 then
! U2 p3 O8 c# d) @" g y:=y+(m-n);% L* s& Y8 b( I" S7 _
end;
9 Q! f. F, \" R6 l( L$ o" `- m
, j/ u) W& d9 Fend;
* ~: n+ V* `3 d* Z f. b; @m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,! p9 s& Y3 e# ]" s
m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
# G& u; N, b! q, Q( t# g. V0 D可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。- e9 I4 W4 J; H9 E
请问如何解决这个问题 |