|
|
遇见一个难题,请教各位高手。( N: |. ~1 H) }) Y) T7 j: U3 a4 D
4 V7 r1 ]% h$ r/ E! d使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。7 V) R5 y+ P/ P/ G0 i
, @* l5 I& M% I1 Y
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。& v- M* L1 f* Y1 v3 k2 y2 P- h- ^6 Y. m/ }
% e4 ]; R4 a f6 e. L. S
is. p- A* T& y( `* ^1 n4 `( L
i,m: integer; -- 整数变量
8 V7 i, a l% ]" x Name:string; -- 字符串变量 ~3 t# K0 h3 R# ~
Obj:Object; -- 对象类型变量
* |% e$ x8 u& }2 |6 A9 u8 B
9 r) ]3 A( G7 kdo
$ `1 W* Q+ W) i R; P9 Z, F m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
{0 h+ A/ _8 d. n- p% W Name := sprint("BA", m); -- 生产线名称
2 G7 Q. a( X f/ R Obj := str_to_obj(Name); -- 转换成对象变量
, D1 X# U% C# [4 j + J" t( [' |' T5 ]% P
FOR i:=1 to 100 LOOP
" y) o+ r6 b! V4 R- n) u# |" K8 R* x7 Y waituntil OBJ.occupied prio 1;
6 {4 \1 T' Y3 V: ~ t- S# ?: y OBJ.cont.move(@);
" W; q1 `8 c1 z& U- P* q, T & {6 |$ o0 D2 T. ?+ |* N4 \
NEXT;' R) P& Y+ ~( ~
@.backwards:=false;
" ?* o+ h! o* T% W+ K2 @end;" a# m% f7 y0 ~
|
|