|
|
遇见一个难题,请教各位高手。+ f! K) G' U* \& d* n
" s; g8 N1 A# M
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。: i7 u& i! x/ S: T# w/ w
0 E5 F( p5 f+ Z' \% U% O
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。6 D* r. B$ ]) A" O1 n& h" m W
; W2 Y9 l6 O" [ E is
* E5 g. Y$ A' q0 n0 J" Q i,m: integer; -- 整数变量$ M1 a* l# B9 t
Name:string; -- 字符串变量7 V. @' Y7 G" H2 f" n7 B
Obj:Object; -- 对象类型变量
0 l; o1 o- p9 D/ |8 \2 c
/ G7 E% I* ~3 H. D. h- M+ \do
" K3 \$ |9 t+ ?* L; u. x m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
' O& Z) k U3 L- ]; E! c4 z4 [ Name := sprint("BA", m); -- 生产线名称1 ?1 u/ ^: {% J0 o5 Y( S' m5 s C
Obj := str_to_obj(Name); -- 转换成对象变量1 ` |, ~' L% E! l
+ m6 I8 R) a. ]5 v+ j
FOR i:=1 to 100 LOOP
( @9 u! N5 X3 E/ t. t waituntil OBJ.occupied prio 1;
* T( s9 E5 Q* R' M( x2 y& M OBJ.cont.move(@);
5 b" p1 K4 o U& R! d @
, w% p5 j/ ?+ a7 |# _+ \5 t5 q NEXT;
0 B, G. u- h% Z! a, I" \2 K& T; E9 _ @.backwards:=false;
0 A0 B6 C& ?) |end;: z: [! c- [! B
|
|