|
|
遇见一个难题,请教各位高手。' d' |% }4 Y5 u/ v3 W
) o; X# Y: h7 E2 d g( M& r7 q+ D使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
( v4 X- w- l4 F; R. z
" V4 N0 s& O; G4 _需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
2 Y( `- v6 }5 l* A( I; s4 b3 O# f) c! {0 `4 K) C
is2 F: X5 G( N6 A! O! y- X% P. n
i,m: integer; -- 整数变量5 m- Y* { w6 O4 o) p8 R
Name:string; -- 字符串变量
9 ~9 c) D3 E/ F7 X2 X6 Y0 p Obj:Object; -- 对象类型变量; ?* e0 s5 J1 B7 M5 v; [" o- |" \# K! }
( U/ [$ ^! e* `" E0 Y0 ydo f5 l6 ?/ p+ f. m) w2 }% ~
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型+ J1 _3 G }: t* d- a- J
Name := sprint("BA", m); -- 生产线名称; w, I. }/ v% L: r
Obj := str_to_obj(Name); -- 转换成对象变量; Q7 R# | d) a& P7 F, ?5 H! a
6 b/ {5 O' v: u" B( L
FOR i:=1 to 100 LOOP$ x0 l3 f; ]$ |
waituntil OBJ.occupied prio 1;
/ ~1 k6 U/ h" }4 {; B4 C OBJ.cont.move(@); V/ U$ Z/ \* A" L
+ u3 t5 C) a" c( a0 q NEXT;. l* X5 I8 ^3 E+ p6 [- L( w
@.backwards:=false;2 w/ i7 T4 \" |) |
end;
: N F2 U$ ]5 X7 A |
|