|
|
遇见一个难题,请教各位高手。2 y. A1 `9 q* `& l' ~
2 f; F$ g0 Y! \, j
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。' c" P; }: S! [3 j
& f1 L* U* O0 ]" A5 c, L* U
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。! O, q/ v6 e+ V [
0 A/ E1 [ G1 m" n is. u9 {- P v! `( Q. @
i,m: integer; -- 整数变量
w' O: {& F5 w- \: E. q$ ] Name:string; -- 字符串变量
* R+ V A: S W4 h0 P Obj:Object; -- 对象类型变量, O- p1 M' p$ R- F/ U
' I- S: v( T0 K5 E1 ]% f
do
m! G4 S4 r6 U/ Y2 D m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
$ I" |/ B2 `6 S1 f M, m: y+ G Name := sprint("BA", m); -- 生产线名称
; _ N |: _0 `. u Obj := str_to_obj(Name); -- 转换成对象变量
7 K/ p, x) |% Q % a# K% P6 Y2 z: T, e
FOR i:=1 to 100 LOOP
; ?7 T0 J# |& N waituntil OBJ.occupied prio 1;' P# Q+ ?5 E1 E1 r) t6 @2 e- O
OBJ.cont.move(@); ; K& v, J6 z6 _; z
& s/ O/ A& G& ?8 w1 Y0 B' @+ ?" x NEXT;
& P# ^" X, s* j @.backwards:=false;
: @7 c. E# w* T) U; {end;
2 Z4 E; l, p* H! [. x |
|