设为首页收藏本站

最大的系统仿真与系统优化公益交流社区

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4434|回复: 0

[求助] 求助-生产系统仿真-第六章例子 运行错误

[复制链接]
发表于 2014-12-17 14:24:26 | 显示全部楼层 |阅读模式
本帖最后由 soso001 于 2014-12-17 14:53 编辑
$ R0 P* v- R, h7 @2 x! Z4 R
  \/ \( \6 X4 l& p  _4 E; L7 e不好意思,打错了个字母,呵呵呵!
/ |$ E  K, Z. B1 i大家好,本人em-plant新人,在看《生产系统仿真》第六章时,按书上的例子,写了段method,和书上是一样的,但总是提示
, {  o# P/ u+ `# O“行19中错误,循环计数器必须为整数类型的局部变量”,但我的全局变量是 integer 类型啊,不知道怎么回事,求帮助!" K9 ]8 z8 v8 W, f6 c
is
4 `8 o+ {' O* M: L6 \  \        j,k,nstep,c, scheduleteps,mincomptime:integer;0 @& Y3 m7 p/ H0 o
        M:string;
9 I! `# w, C. a1 d' H        selecTab:table[integer,integer,integer,string];
3 K1 l; M3 D$ x- I  H' ~do" \. R  q+ a$ d3 n  G, m
        initorders;' C/ ?  D. d9 g/ R
       
1 W* U( _! W$ s6 l% y' k$ D        scheduledorders.delete;
+ x( o, P- W% @        seletTab.create;5 ^; Z9 T3 R8 C+ P
       
" c7 W7 c- w. y& i        orders.initialize({2,1}..{2,*},0);
. _2 o  t  ?0 t# G3 x; l. R        orders.initialize({4,1}..{4,*},0);' c6 X1 b, y2 B) N: x5 L3 @- c) k
        for j:=1 to numorders loop
9 ~7 X+ h/ ~4 W* G                orders[5,j]:=orders[1,j][2,1];8 d! ]0 N% h* `9 U
        next;; Q: j% R# N$ {
        occres.initialize({1,1}..{1,*},0);
7 {/ ^2 b" f4 F% a8 j! M5 b       
! J8 W5 S% Z/ I+ R0 S        --XUNHUAN
. i$ v9 J: ?/ T: k% U        for scheduledsteps:=1 to numsteps loop --- Q+ }5 A. B$ f* s6 J' p( C0 }
                selectab.delete;) K$ b5 X7 D7 I9 I* K2 l, C0 e
                k:=1;
/ n: _+ N, [2 C8 q# |- ~                for j:=1 to numorders loop
" i; f: m# L) `  C, Y  C                       
/ `& G$ F9 t8 U- a9 I* U, Y% i6 {                        nstep:=orders[2,j]+1;8 S& u# s: y0 T/ P4 ^8 d
                        if nstep<=orders[3,j] then  B2 l7 n6 X7 d
                                selectab.writerow(1,k,j orders[4,j],orders[5,j],orders[1,j][1,nstep];
2 `1 y: d6 X  G8 [                                k:=k+1;. J$ ?( y  S0 P4 [& g% ?0 t0 N  |
                                       
  r% v+ y. {# E7 E" O; ^                        end;% Q6 o, e) [( A. ?
                next;
* ]: C/ o. Y3 p% A% _+ |7 l  k                mincomptime:=selecttab.min({3,1}..{3,*});
+ d9 x! f  i' G5 g               
8 z: g1 B; p7 C: G- r' u1 i) t                from j:=1 until j>selectab.ydim loop) u; J" |  `) w
                        & N9 j5 e! J# {9 J
                        if selectab[2,j]<mincomptime then
) F5 ?9 z0 E9 \5 J3 P                                j:=j+1;
: Q0 a6 m- c% d4 N! h8 o                        else
4 l( C# c& t' w8 O# I6 q7 I                                selecttab.cutrow(j);
9 N0 W& _1 p2 b6 u                        end;
' i6 c+ k& r+ y2 s, Z6 z                end;
$ N& O( |6 K& {: A               
* R/ [% K$ ?# y! X) R; @! {: a7 B                j:=selectionrule(selecttab);
" W- z$ P1 F/ }" |, }$ g+ R               
: H% [, L7 j; s6 R' o                nstep;+orders[2.j]+1;3 X7 k# N3 L% p0 T) z, B) f
                orders[2,j]:=nstep;2 W& V( i5 p" s) J8 U  c
                m:=orders[1,j][1,nstep];8 X0 X6 y) R( p; \! S5 B2 F9 {* T
                c:=orders[5,j]
) w" E* ?9 U1 I& s                occres[1,m]:=c;) ]8 X7 m6 G( Q
                2 ?* j1 E' P& {+ k& T0 R
                --jieguo:start,end,res,job,step
4 i6 a8 F: e# Z* J  s) \                scheduledorders.writerow(1,scheduledorders,orders[4,j],c,m,j,nstep);8 F! C9 X3 d3 [8 x
                for k:=1 to numorders loop
% N( u  E, i) a& i6 K0 {3 Q                        nstep:=orders[2,k]+1;# P7 }; Z$ _) e. c+ l
                       
3 G- v5 o  |9 a                        if nstep<=orders[3,k] and orders[1,k][1,nstep]=m" u9 A% F7 p/ S, u( q$ k' m
                           --
# r) S% u% p' g! ]1 r1 s. N% B# j% Y                        then
0 s/ H% v; b& l( J$ ]3 p                                orders[4,k]:=max(c,orders[4,k]);" w; Z. r& @$ V; P' S' U
                                --
+ O3 ~6 }# Z% ^2 L                                orders[5,k]:=orders[4,k]+orders[1,k][s,nstep];6 g# ?0 D2 K6 X2 X- W$ U, `
                                --
1 d4 K8 S8 u. O' f) X' b) ~                        end;
  ?  R$ h/ \1 A) D; J) A# @* w/ M                next;) ^6 G" X# v7 i- k0 H1 d0 G
                nstep:=orders[2,j]+1:; c8 B7 r$ ]- N7 i2 [
                if nstep<=orders[3,j]6 z3 [( e' Z$ F/ V
                  
4 d* B' f$ z5 J7 f* L                then
# S; p6 F5 z# R' U  A1 a                        orders[4,j]:=max(c,occres[1,orders[1,j][1,nstep]]);+ H, `+ y$ W  m: p+ m+ n
                        orders[5,j]:=orders[4,j]+orders[1,j][2,nstep];! r5 e! _# M4 J$ c# ?# j5 j
                end;
; S5 b$ f, W( f& s2 K        next;& x8 {- D1 F8 u9 r  `) u
        0 E  Z$ F/ L' l, B4 \  i
        print"ready.duration of the schedule:",scheduledorders.max({2,1}..{2,*});
  n9 \4 j  J! v. L1 f3 ]0 ?( i5 D        mygantt;
6 h* N8 d, A6 I2 Y7 X3 B        ens;! A/ ]7 ~& s- z
            
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|SimulWay 道于仿真   

GMT+8, 2026-9-13 07:01 , Processed in 0.016856 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表