|
|
遇见一个难题,请教各位高手。
' [1 P/ G) z0 ?3 h
. Q6 a1 a; M0 U( [8 ^3 n9 H使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
& [, R! c! K1 `: {* D: h, d9 z1 z2 Z0 ?! z* o1 q# S, F
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。% Z5 f+ @; l# y# N, x& k! ^- u
' ?# y( ^" Q4 o( I' C( @# i
is
7 {; l3 h: Q/ L8 q1 } E i,m: integer; -- 整数变量
4 P- `9 @9 h/ k& u' |6 G$ n1 S Name:string; -- 字符串变量
- t5 N( @- z/ Q# }9 ^# A Obj:Object; -- 对象类型变量; m% K6 U! d: I" J
8 Y/ T, d1 K$ {# Qdo
w: X5 F7 E, m% @' w m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
[+ ^. ?6 O/ F! T1 }6 J) d9 ? Name := sprint("BA", m); -- 生产线名称1 n9 g( e9 `9 i
Obj := str_to_obj(Name); -- 转换成对象变量+ f+ R# O' {( h; f4 i* h
# I( A9 H8 K% X* _+ y0 c0 L
FOR i:=1 to 100 LOOP
4 ~9 o& ]6 a; X# H2 ` E7 S. w waituntil OBJ.occupied prio 1; r' ?4 E6 r9 i$ L9 F$ i
OBJ.cont.move(@); 9 i' x* ^7 i! r3 m" a
& t$ A1 b7 C' Y. R! n% D' [ NEXT;/ o1 y. q. U4 C1 ^5 G# U+ `
@.backwards:=false; t5 s# w# L# }7 D
end;
* [2 @8 I: E/ n& t$ J- E) A" G( m5 Z |
|