|
遇见一个难题,请教各位高手。+ {/ t$ A. P6 H+ o$ d# U9 D
8 t( D3 @6 X: V8 j/ X, @/ x! K
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
* p' k5 {. C" J" L
1 g6 V4 \7 q' E* X需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。 l3 @( y! j- f. J
; L; W2 m1 {$ g1 X( u* f is$ O2 n& N4 ~5 f% w
i,m: integer; -- 整数变量
! p: s; b5 u9 D* m2 g0 U Name:string; -- 字符串变量; k; J, n+ M' Q$ S! p: x
Obj:Object; -- 对象类型变量5 h! G; E( N6 _
% K5 ~5 H7 {4 t: E7 F- z% _do( N! l1 G' P1 w* z' X! U
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
- k3 K1 Z i0 B1 b- R Name := sprint("BA", m); -- 生产线名称. o. s! F( f. Q
Obj := str_to_obj(Name); -- 转换成对象变量0 M4 X+ ]& `% R9 b5 ? h4 ^$ ~5 N
4 K7 y/ X$ w& \: u3 {* d FOR i:=1 to 100 LOOP: M. N# d# G9 R v3 r
waituntil OBJ.occupied prio 1;
! c" h5 B: n( t9 ] OBJ.cont.move(@); % f8 o% q. A( G
- [+ D7 ~. U/ F0 x8 H9 f& ~; }
NEXT;6 [3 \7 V( t& H* S9 I/ n
@.backwards:=false;
9 t& ~( Z7 L: \' d2 R* qend;
7 Z5 ` Q* {& L( u: u8 Q$ Q. O |
|