多谢,我程序' D- |4 H$ j$ d/ T v
Methode1 Trigger调用 Trigger定义1小时出发一次
' B* f9 f* U5 o1 N) y+ N, \(old, new : boolean )) R, J% ^/ a0 R! ~! H- S r, p- m
is; Y+ Q6 o# D. i* W3 E: j; z# B: u
do3 c. w" ~$ j* g, ~! m( N; o
if new = true then 9 Z- {5 b" i4 W7 v7 A0 R
Tabelle1[1,1]:= time_to_num(y)/3600;7 C; F8 `' T' `' O& K+ `
m:= 0;. m* f" D1 X9 B$ y* q7 x ?2 n
n:=0;
% z, h# k! E! I0 R3 p. E y:=0;" B# i6 p$ D1 W4 V+ h9 _- X
end;% N$ U" f- w! i7 P X q
end; ( d* W$ E/ X4 A( w
methode2 Singleproc 输入控制调用
+ w2 V& l S, H) N* E2 d* d( ?is
/ P: D. o1 u5 g8 Y( _. p0 n# mdo
5 G9 N" C. p7 [" y5 u/ i n:=Ereignisverwalter.zeit;
* J+ K2 A4 x9 p$ X' Mend;" c* _. G3 M! l' W9 v/ B9 N9 [
methode3 singleproc输出控制调用
$ ]1 V: ]& M! x4 _# S$ }1 K# \is$ D( |, h! T7 A1 |4 a
do, l, j* G7 o r1 ?; ~& h
m:= Ereignisverwalter.zeit;
# ], O- F S3 ^6 X8 R4 I w if m/=0 then ! ]) W3 G ?3 y4 f: R& d4 z# l
y:=y+(m-n);
& ^4 e; ^" g/ W3 M end;. }7 f/ Z# n6 l/ e: e
7 g) k! R+ c- m2 h$ B) W. K- {
end;
7 {" `" }3 i4 @. t' }( V1 [m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,' M1 \; y2 K T0 W8 n, c
m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
! K+ w6 ?4 P' o: G ]4 v可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。% |5 `, W/ D% J6 K1 ~ W7 E& J
请问如何解决这个问题 |