多谢,我程序8 N8 s0 j+ C4 E1 U, B
Methode1 Trigger调用 Trigger定义1小时出发一次5 |9 E$ b& d3 c1 n/ ^: `% W% x0 E
(old, new : boolean )) e `1 t9 ?) w0 q. d
is' Q9 X- V/ p* p' | k
do
+ Z- k7 Y6 l! {; P if new = true then , v9 T3 X) K6 g5 N2 h1 U
Tabelle1[1,1]:= time_to_num(y)/3600;$ |- @% w l8 }
m:= 0;6 o# M* b; O' ~( q
n:=0;
' Q) U' W9 m/ C% L) X, Q y:=0;: A" X) o" l' y0 U' {) b
end;
, X! x+ E* A( x! M4 s end;
* }3 G; e; s! i& ?$ T8 Cmethode2 Singleproc 输入控制调用
7 N% r# b, R$ A; l7 jis* `5 I0 z, x0 N( L8 J
do
7 K( R7 u H3 p$ f z" t3 ~ n:=Ereignisverwalter.zeit;
$ a% R1 ?; Z/ ~* v gend;3 O$ M O6 y* I, x7 G2 d
methode3 singleproc输出控制调用
( r; T1 g6 {6 J! Wis
' r2 n# p8 @* X# z1 m, ]6 rdo# c; |. B' x% F
m:= Ereignisverwalter.zeit;: [3 z5 t. X! M5 i! j# N
if m/=0 then
, U! c$ |0 P9 i0 R' u0 a7 _ y:=y+(m-n);9 A2 g4 ?; m: z
end;
; k) l9 ?8 I+ a6 w ^& ^! @ " ]0 B8 {* j' {6 G( ?- r, P" p
end;
# M, m% H2 J; g2 L' B8 y6 a5 am为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
- n# m' q# |: V1 c' sm-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。. N! Q8 a+ D# h- w6 A! ?
可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。. r0 E3 @ W- J; a0 ^
请问如何解决这个问题 |