|
|
遇见一个难题,请教各位高手。; A$ b% k6 G7 O& |
8 l5 {/ S- t% E& x5 c% b) K9 h) }使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
+ S) x8 E9 r: W* I- R( g$ L0 n- r
4 m0 a3 h8 U" }; A2 r2 {. O需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
/ t, {4 d# U! i5 l3 A# S* O) p! Y4 O8 V7 D; G$ T6 `+ E6 q W
is
7 P9 j3 R) {- b" j/ w9 y i,m: integer; -- 整数变量
1 g9 e2 ^, G( c Name:string; -- 字符串变量
- S9 P% t3 m e1 w Obj:Object; -- 对象类型变量
, {9 v; H' ?4 i: ]4 l4 Q9 g+ Z4 o( _$ H* u& y. X
do
8 j- Q7 J- `3 N4 k m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
# A( p9 J! w2 U3 N7 F Name := sprint("BA", m); -- 生产线名称! b ^( u& D0 x
Obj := str_to_obj(Name); -- 转换成对象变量( o( _4 J" s4 z
( i, o+ N( `( h7 |1 x6 f/ D
FOR i:=1 to 100 LOOP
8 ]' ?) u5 {# @1 @ i& { waituntil OBJ.occupied prio 1;
( H% o5 k* ^6 }+ u- S( S6 L: B OBJ.cont.move(@);
# }4 P5 E) q8 [* M r* i5 Y
" q- V9 N) `0 D4 k( B4 ~& y- z NEXT;
; U Y* f* A, O @.backwards:=false;
' c9 n7 t$ q; L0 t* ]5 }5 J2 i, S( aend;
- q/ u5 e* [+ D; Y5 d |
|