多谢,我程序
4 R8 a! ?/ n0 S. u) c: ^Methode1 Trigger调用 Trigger定义1小时出发一次
# M/ r: b4 R% x. f(old, new : boolean )
8 j }6 H# U$ s. B8 Y; _is
$ I& K# e# A! a' @7 u do4 t3 b5 k& J' H! m- q- l- `
if new = true then
+ X( l3 R! Q. j' r' H( l5 G# ? Tabelle1[1,1]:= time_to_num(y)/3600;% c) _1 @* F8 d( }2 r# v! d9 J$ ]) w
m:= 0;
7 F! w/ v/ O# ^ r n:=0;
, B \1 h! a( z" ^$ m3 [0 O y:=0;
0 a( R& b" @! J5 z! ~% I/ C- m end;
6 w$ }1 U: v# X* u3 T end; 6 z3 C4 d% k6 ^1 S, L2 Z+ l- n$ |
methode2 Singleproc 输入控制调用
5 X8 z3 k8 R( Z( b' a1 i/ \/ his
% `8 C, }5 ^6 Y% Z3 J7 O; gdo3 [ T$ B. o' p! Y1 P
n:=Ereignisverwalter.zeit;
p$ Q2 ~, U j3 W5 F+ mend;3 C+ \% t6 W! G6 J
methode3 singleproc输出控制调用$ k8 ~' b+ Q& P6 h. \
is
, |: J$ ]# |. J qdo
/ ?( Z; u4 v% W9 p5 D m:= Ereignisverwalter.zeit;; c* p9 ~) {' z- w& }
if m/=0 then
. Q. h# o! X5 h% I y:=y+(m-n);
& V; \( S- d7 [" A end;4 G' H* a/ g8 s3 y& y! p
. s6 {' R* Y6 `6 M# kend;
3 s [3 u* l- v2 b2 Cm为物件从singleproc输出时的时钟试点,n为物件输入到singleproc是的时钟试点。m-n为singleproc的工作时间,
* @7 S2 w; }0 i3 ]+ j! dm-n的值赋给y一直累加知道trigger调用将y除以3600秒得出效率,之后y赋0值,这是我的思路。! f! ?3 F: u- t& i2 e& ^! m5 o4 f
可是有时m-n超出3600秒,我查了一下,程序好像先记录m后记录n,当机器休息完m记录的是机器休息后的时点,而n还停留在休息前,这样计算y:=y+(m-n)之后结果就比正常的大,会超出3600,出现效率108%。9 J8 C( w, U6 a- `8 ~. b: |
请问如何解决这个问题 |