|
|
遇见一个难题,请教各位高手。
7 A# Z4 W u- i$ t& k
: ]: r, G, @9 z( s; m/ `2 P使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
& `7 }- w* J, B0 }- a% ^1 `
; V+ b' G/ ?8 A# S" ~4 Z1 D0 t# ^+ ]% p需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
! o3 K( J& a% \& v$ I- Q( S$ y1 B
4 G; `5 s9 J) e1 c8 p; u is
( @! j% T6 w2 b% V6 h; x' _3 T6 k i,m: integer; -- 整数变量' _$ Z" b* |& F7 {
Name:string; -- 字符串变量6 G# {1 `& C7 ^1 E
Obj:Object; -- 对象类型变量
! [. b" j5 F; ^9 o3 R- `8 l) m$ P }0 A3 G, N/ P
do
4 ^ `8 @0 e' N9 e( P1 J m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
+ r; b. K& z/ ~9 z3 p! T Name := sprint("BA", m); -- 生产线名称# v" n% K6 }+ z" R7 [& q' B
Obj := str_to_obj(Name); -- 转换成对象变量+ O6 u% f; n5 O
0 t3 T& j0 S% e) M' d2 l( `
FOR i:=1 to 100 LOOP
; |' Z% C& g$ T {, }' l& E6 o waituntil OBJ.occupied prio 1;. z$ Q# p7 R. O+ j
OBJ.cont.move(@); 5 G! T( v8 x4 G
( o$ l Y, {" _" S' g7 _' Q8 x
NEXT;
# J$ j7 Y; \- K; a @.backwards:=false;
3 E( `. o1 ?9 V+ t' ~- r8 y2 Tend;2 H! A& P; ]+ X" Z7 K
|
|