|
|
遇见一个难题,请教各位高手。
8 a/ Y, \+ R2 ~1 O% a
- J8 }2 Z4 y+ ]; c& b8 {& |( |1 K使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
. ~( M5 n! V7 b- E0 [
" A" ^4 _3 `6 X5 V0 G' _需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。0 ]+ R) y8 I( f* p. W5 w
" q& d0 H9 n) `8 _ ~8 P
is# ]- O W: i! w7 {! `$ S
i,m: integer; -- 整数变量3 d5 Q$ M; |- Z( H; @) ?. ?
Name:string; -- 字符串变量/ }$ G, v/ a$ ^8 a7 P5 {
Obj:Object; -- 对象类型变量
2 o K; R4 o* o+ |% x! l; y U' M- s' U2 v
do
" Y2 F( A, P1 {: }* H: `% R6 B! u8 A m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型! y8 W" ~7 L" Y+ @) N& j
Name := sprint("BA", m); -- 生产线名称
5 m: L( z! h7 Z3 j$ P Obj := str_to_obj(Name); -- 转换成对象变量
0 O5 y- V; b2 H8 _3 |. ~
* n5 K ^$ q% m/ B4 u% X% T FOR i:=1 to 100 LOOP8 \+ y; m: _- E
waituntil OBJ.occupied prio 1;3 R% Q& k1 t* H/ Z* W) o& y/ ?
OBJ.cont.move(@);
; | \) \. \/ X H* |$ m/ i' }$ I) k
9 ~6 L& H3 s2 L" T# T NEXT;
* B9 U4 v) N" w& n F. H @.backwards:=false;
% R; {; ?* R b. Q, _4 e$ f1 hend;
, g1 D: T7 l- h( r) G q" f |
|