|
|
遇见一个难题,请教各位高手。7 p/ }. z/ B% N0 x
/ l$ c; Q3 Q" ]9 F使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。3 x0 g' ]2 n9 ?: x' ^# w9 A: y
U) ~! w& `. _, y- x; N需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
t2 x7 ~0 Q9 E
) j( B& ~6 c: s# c' p# h# a' Z% f is
- |6 T6 x) G& O) Q- s( l2 q; l i,m: integer; -- 整数变量
2 b3 m0 A, Z' e/ \$ o2 X Name:string; -- 字符串变量
* e: G5 J2 D( t1 u- z% v Obj:Object; -- 对象类型变量
* s7 b3 a2 H) `' ?/ Q4 N
- |- I5 H2 Q* v. O* c9 Y1 sdo3 d" M; o7 W7 Q2 O
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
6 f" m* u* f# a* t6 H @0 l Name := sprint("BA", m); -- 生产线名称
6 @4 m! C. l" T: b$ b: U: I Obj := str_to_obj(Name); -- 转换成对象变量/ V/ {8 t: g+ l+ m" u
5 P: _) [) n+ N5 k( K FOR i:=1 to 100 LOOP4 f0 F, J+ [5 O6 M; ?
waituntil OBJ.occupied prio 1;) X: ]7 g7 h! a. t/ O+ r' O9 f& k; M
OBJ.cont.move(@);
8 r' o6 x2 X* M. u. }* }7 x8 U0 f
- M: s- t. E" h+ B( k NEXT;! d; n# P7 e: C
@.backwards:=false;
9 j& H( s" i$ j( l/ zend;
$ Y! ^$ W# { u3 U4 d |
|