多谢,我程序0 Q6 i+ p4 n& n3 y7 t+ q# z
Methode1 Trigger调用 Trigger定义1小时出发一次
2 j5 v( S8 s) o8 S6 g4 J(old, new : boolean )9 W \4 u; n/ W# \- q
is/ A/ d7 z* T2 v8 k' _' C
do
6 @, B" x2 U( [' D( m: v$ ? if new = true then
. W& O/ f' ~2 b+ a! l+ h* i Tabelle1[1,1]:= time_to_num(y)/3600;; A. c- U0 ~+ d2 f
m:= 0;! ^" R! Z* `% t% c! O* ]
n:=0;
9 T" e" l$ H2 Z+ n% Y1 H; @ y:=0;5 c, {% N B# `; y% c
end;5 @- h! W( g( \. {9 G
end; 4 S' @2 A6 x( k# D) [
methode2 Singleproc 输入控制调用, O. J! n2 |; M* O
is' l# N3 T$ K& D
do0 l/ j2 o# l: o
n:=Ereignisverwalter.zeit;% e; p0 P- m0 b& r& R
end;
8 O( ?7 ?. ?. M- A! {methode3 singleproc输出控制调用
) Q' D( `8 i) k+ nis5 W C9 S4 [# `& E7 `1 Z- K2 S. Y
do0 c& e5 o& z. _$ Q$ C. \) g
m:= Ereignisverwalter.zeit;
3 ~ c9 d f: A if m/=0 then [) m# K2 U$ D- z* M8 i7 U/ Z5 R
y:=y+(m-n); G5 n7 C9 }2 p! C
end;
! N' [5 ~8 @* d6 ^5 C% \ - G# B h1 C* j& I0 H
end;
3 E+ q3 s/ ]0 e! nm为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,# R; | s9 X7 l5 s; Z: g
m-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。/ a+ C1 O: g+ @5 D) O3 o. [# w/ ^
可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。
* J& N7 W9 X. R请问如何解决这个问题 |