|
|
遇见一个难题,请教各位高手。# K/ |3 u1 L9 F/ c, Z" L! t
, B' s+ W/ \9 w1 M$ `+ O
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。, F1 H; X6 ?' @7 _2 r
- L4 @% t" f2 Y& Y% l5 f需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
# J' q9 }. G- D( I! j9 W0 Z) u8 q
9 ], j1 h, g9 F' A. G/ k2 J' e is
$ _ O! G1 s: o: l i,m: integer; -- 整数变量: Q3 J) V6 u* m' L9 f# P% s9 C
Name:string; -- 字符串变量
6 J- l7 Y# m3 Y( c9 d4 u+ |6 q9 w Obj:Object; -- 对象类型变量2 c$ ], h* c+ |/ _0 l: e3 c
~8 q2 E; t2 A' D7 g9 ado( q8 K; [6 i# K, q; W4 H
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型4 j. Y ]. i* ^6 Q* ]6 @; Z. T; r
Name := sprint("BA", m); -- 生产线名称6 J4 Y1 Z8 }) v8 ?
Obj := str_to_obj(Name); -- 转换成对象变量
4 n5 _/ ^4 Y( f
3 Y8 Q8 a9 k- f, S/ n FOR i:=1 to 100 LOOP
( g# e- H% w1 B+ Y1 e waituntil OBJ.occupied prio 1;1 M; `; H6 i7 m- I _3 P/ g
OBJ.cont.move(@);
* M$ e1 p f- H( h$ j8 K
. G% F' j! D h. b# a NEXT;
+ c* v9 [8 }- Y2 U/ O, R9 j( H @.backwards:=false;
; Q, j4 U3 o* F7 E2 _/ e# x. Oend;
/ W5 y3 E' J. w; V# k" Z* K0 T. W |
|