多谢,我程序
7 {: o; W% V4 c" a4 gMethode1 Trigger调用 Trigger定义1小时出发一次
9 ]' z3 k1 |2 p% x2 a; q3 [(old, new : boolean )
' a3 W: S& B( J/ U1 Vis# R9 ~5 D; a4 F4 f# ]3 ?
do$ ]6 o3 G/ F9 c. U
if new = true then # ~" W* u& [; v$ N7 A
Tabelle1[1,1]:= time_to_num(y)/3600;
# ]0 E0 F/ j1 ]$ P8 k/ i m:= 0;0 H S5 t+ A/ U: [
n:=0;$ F/ C$ \; s6 f4 B8 `( c
y:=0;
7 G% x# \, o/ p" ~ d! ` end;, g$ s0 g. E+ l1 `
end;
+ j+ u! r# g0 M2 s a$ F) U( a4 Imethode2 Singleproc 输入控制调用
J7 W/ S& z' {/ s+ q9 jis
7 I' n/ A6 R) }1 q, Qdo
# k! t" @6 V- u& t) |0 E5 x n:=Ereignisverwalter.zeit;! N+ a% Y! H+ \4 j% W( D! z: t
end;& N# X" Z7 B4 D& Y m1 A) i
methode3 singleproc输出控制调用
3 |0 k4 l6 u- X! Bis5 I/ H( b& _8 L0 f! M: O: Z
do7 ?9 m6 g" p) @9 r6 {7 Y7 m* Z
m:= Ereignisverwalter.zeit;6 T- z% Z/ P# ^
if m/=0 then 8 J* C6 V, ?) M) S2 Z3 E% E5 z
y:=y+(m-n);! v/ c$ M; H6 f
end;
, Y3 A2 u7 E) M8 y2 q 9 c: f; f" M$ [$ f
end;
8 G% ]% c6 D$ }m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,/ c) O. L1 P+ u0 p- }- n7 [
m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
; ]5 D5 k( G l$ X( Q$ t" n1 J, P可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
: e* P* y/ `* }4 D9 J请问如何解决这个问题 |