|
|
遇见一个难题,请教各位高手。
& p: J+ G6 W5 s H1 M Q7 A. S% d( u. Y+ j
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。. d2 }1 W$ G! a' a& n) O/ l: G
- w w8 |+ ?5 b
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。6 \( K; _( ]. \/ M
) b4 r0 x4 R) o0 Z* O) C/ }: e
is% r: \+ b6 F: ?8 ~
i,m: integer; -- 整数变量
3 U" I' t* }1 L w/ v7 { Name:string; -- 字符串变量# ], W* a% ?* ^! i+ f9 K& [
Obj:Object; -- 对象类型变量( U) A2 z- J0 B8 l
" E f" c3 g% M- j0 R! W0 u
do9 e( }6 I, g3 z: i5 c/ o
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型9 p7 c) x; p' f! U* o4 ^- @
Name := sprint("BA", m); -- 生产线名称
" P- Y4 ] E( J$ O* `; }0 s Obj := str_to_obj(Name); -- 转换成对象变量8 S. B9 f+ L0 U, C$ m' f9 }7 O7 J. i! B
. f. @( a7 h1 o! ]3 ^2 E
FOR i:=1 to 100 LOOP
( N! E0 ~1 C* l4 @6 C! D waituntil OBJ.occupied prio 1;# ^" x8 v1 b' U" d- R. l( v+ h
OBJ.cont.move(@); 0 [! T& V& n/ D' f! D
2 c3 m& |; I- O
NEXT;
7 y% M, [$ H: V @.backwards:=false;
5 A4 D; s7 y$ {! F# Rend;
5 z0 P. \" J. L* v X' `( n' ~ |
|