|
|
遇见一个难题,请教各位高手。
0 Z1 X0 v {2 j1 o5 t5 G9 M7 B( p% n5 c# o! R. B" D
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。0 M+ x5 `) h9 C, N/ E
0 a) `2 U8 p: I8 L) G
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。( d* ?* D- R1 n$ [
% K; k* ?8 {$ W5 h2 _- z
is
) z9 R. X3 x* n/ w8 T( R i,m: integer; -- 整数变量
0 b& H- }* W; _& X* ?; b Name:string; -- 字符串变量
9 |6 z, l( [- g. C% t Obj:Object; -- 对象类型变量' Q) O# K+ C) `$ X1 |
/ I5 x& ]2 |2 _6 ?. [8 C' j
do( b }. H! ~7 ?2 J- y2 N9 o7 L
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型& J3 @. ~* y' H( N. p- ~) D9 l
Name := sprint("BA", m); -- 生产线名称
; ]8 ?" S3 u1 Q" Q# R Obj := str_to_obj(Name); -- 转换成对象变量
8 @' y" ?. ]* c. o/ D 4 Q6 B y- Y) p* g: g6 T
FOR i:=1 to 100 LOOP
6 Q. ~/ V: J) z6 e" V2 Z& [* F waituntil OBJ.occupied prio 1;
* _. ]) O1 R9 @" a4 j OBJ.cont.move(@);
- i1 e: H' t `/ x- f" N
4 n/ {! H( M9 f7 W NEXT;+ ~/ S3 `. X! a H8 g) k' z
@.backwards:=false;
! c) | O2 M }# d5 rend;
8 ]0 @' V7 @5 ], t7 L9 h |
|