多谢,我程序
; `/ o1 L1 ?% i. r" m x3 e& WMethode1 Trigger调用 Trigger定义1小时出发一次
. T6 }0 ]. V5 a2 f' C(old, new : boolean )
, J+ |! E$ t% z& m D! {5 Wis
$ `4 v+ g( w3 W do0 b! N. s" j2 y
if new = true then
; H! D3 F- \4 r0 @( [+ R& V Tabelle1[1,1]:= time_to_num(y)/3600;
& A: h6 `- W! [ m:= 0;3 C3 y! e; Y. R6 p% d9 r0 j9 h
n:=0;
4 x5 z. c" K. K! R5 a y:=0;( S3 V, K: S( [
end;
& T5 ^: d2 h; e$ _# v; W* S N8 y end;
, d) H- _( S: u1 R3 M0 S$ ?* Pmethode2 Singleproc 输入控制调用
$ j! ~ q. u2 _9 o' C3 j7 B2 Z; f, K3 iis
) T$ g1 I; ?7 Q5 s0 Jdo
7 f4 u$ S% C8 T5 c. r7 E% L8 ] n:=Ereignisverwalter.zeit;
' i9 ?% _- r' [" j8 gend;7 |6 |! }/ r! J
methode3 singleproc输出控制调用
$ {. J% ?) x- W% kis2 H( Q8 v- t: z9 `
do
6 ?, R) ?0 M, N( v* z: m5 ~& ` m:= Ereignisverwalter.zeit;
+ ~- e$ `; E1 j5 n* E7 h8 Z if m/=0 then ( k' U3 A8 e0 q7 J
y:=y+(m-n);
4 X+ Z4 F- @7 ]7 @% n% @ end;$ }* h# g% t: {
2 t' x U6 j$ K V# y2 B
end;' z3 @ _$ T' T/ }
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
" x0 i7 f/ ^, z x( C9 Om-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。# X" @6 g8 T$ k2 \) T, G
可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。: _) Q* i! X5 v3 F ?( G& ^
请问如何解决这个问题 |