|
|
遇见一个难题,请教各位高手。
5 S& l" ~* m+ h& _2 a) G
0 H+ h$ p# _, w, i3 e5 v5 s) z$ G) \使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
* j8 W/ G+ Q0 ?5 W- x. F; V$ J# \) b. `/ I" N
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
/ x! W' x1 q& ^; n! u; O A
: m* y4 i: b. N0 o8 S2 F6 L) r is
7 s% C6 r- W# v. P8 U i,m: integer; -- 整数变量& W5 d$ }7 {: H. Y: V
Name:string; -- 字符串变量" w/ E: B, d. I4 Z" G" b+ r) |
Obj:Object; -- 对象类型变量
. o/ v3 I: S! |' |) |
/ a: s1 x9 I/ ~- Xdo1 q5 E8 Q1 h; O" V; v& F
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
$ I6 z. j$ u; M; q& @( y Name := sprint("BA", m); -- 生产线名称) H) R, ?1 F+ e( B; D. P
Obj := str_to_obj(Name); -- 转换成对象变量
# L4 l4 r3 c2 C: v0 u
; P) J% @8 o. M q. P$ F FOR i:=1 to 100 LOOP
$ Y; Z1 d0 m. u waituntil OBJ.occupied prio 1;
0 `/ ^( m( M' w" ? OBJ.cont.move(@);
+ ~% p6 n' d. a3 l* R ! S, h+ {2 W7 K. b& }6 a
NEXT;) i1 `: C @, ]6 G( ]$ V
@.backwards:=false;
( Y& J" y4 ?8 i' x3 jend;
" l3 b8 c! J- v2 `7 } |
|