多谢,我程序
% A M U& K" r6 y4 S/ wMethode1 Trigger调用 Trigger定义1小时出发一次
% c: P" |+ _: ]1 t(old, new : boolean )
0 U: _% J. g& }/ e$ Nis6 g* p5 x$ p9 Q
do7 S" k; q/ V* N' e7 p8 r+ N
if new = true then 6 R* J1 ?% S2 q
Tabelle1[1,1]:= time_to_num(y)/3600;
+ C6 x9 {4 E* y; y' E m:= 0;9 T- t. q# m& k( h/ ]$ S R
n:=0;$ W0 [$ _% H& W
y:=0;0 _. Z- A& d7 r. T, Z$ Q/ I% w8 s
end;2 [; Q0 u/ ^; k" @6 j( r# X
end; , n* d0 ^) _- v' t
methode2 Singleproc 输入控制调用* l0 R- l" ?% s: p, O: Q
is8 ?5 V9 H+ M `/ y
do
. N& `: O- I4 {! n+ e+ o4 W4 g' M n:=Ereignisverwalter.zeit;& q! ]4 h* M- q
end;
8 c1 E6 p0 |, \ W# rmethode3 singleproc输出控制调用
7 \( T9 g' W9 K- t I- Gis. t* ?6 g' N5 J; U. _/ o' G
do5 h* F6 |$ b/ o; V. q
m:= Ereignisverwalter.zeit;
* O% H& C. a% L1 B( Q$ I if m/=0 then
' `/ Y {7 E: t/ J4 L6 H/ K y:=y+(m-n);
. b' f4 O% j2 i; }) H end;
, A7 F' ?# {/ a U: W
5 ]/ f' r. V/ z, v4 o6 C4 t1 b" hend;8 M2 g3 S2 N8 D: c6 ?! W
m为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,7 Q) ?/ X. ]# r/ C* b+ [
m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。
; v, J3 p5 Z- t5 y3 U5 o2 H, \3 `可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
* i3 z0 J+ ]! X- g请问如何解决这个问题 |