|
|
遇见一个难题,请教各位高手。5 `( Q# V) i* p! I1 M% Y S1 Z
7 E- \0 ]- w- g0 Z& M% Y/ N; n' \使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
$ h! ^* [. W) _
: {& ]+ L" d& g需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
* D4 v5 C# @4 z2 u% H: e& s* q: Q) C; K. n- x! \
is
5 y" U. ?& p$ \. B, r0 v5 o i,m: integer; -- 整数变量
6 g0 T* U+ i# Z# L: D/ L u! V Name:string; -- 字符串变量
/ u% P9 h: K" D, C( i( W Obj:Object; -- 对象类型变量
# v- s3 g. V& q, [* a0 K7 z: w2 X3 F* |5 V1 u9 c, W; v# p
do
/ E4 I4 F, p/ Y+ h m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型$ C% v4 e9 }, X& ^9 Y
Name := sprint("BA", m); -- 生产线名称# h1 ?' F5 m8 q
Obj := str_to_obj(Name); -- 转换成对象变量. q7 @2 y3 L+ P8 S! {
# I2 u2 d# S1 s2 W
FOR i:=1 to 100 LOOP% h6 `, ~% N. t+ E% }) e
waituntil OBJ.occupied prio 1;
: E9 G8 M- C3 R0 f OBJ.cont.move(@); ( l0 b, u% P; u" Z* s; N$ Y
1 z2 D+ x, F; U$ \2 j5 }" H! D' K4 b NEXT;% K0 r+ Z$ h8 A! R6 A9 L& ^
@.backwards:=false;
5 M+ C8 T: D V. D; F- [( rend;
2 `: v/ Q2 Q; N& o V) O |
|