|
|
遇见一个难题,请教各位高手。! {1 E6 _% U( P B( q) e
; l) G L+ ?/ |
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。+ d3 R, c/ G0 Y1 ~6 _& p* {% r
* a0 z) S8 r. z. v' p需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。; N+ }# q' @* Y/ ?; {* x, L/ v
- m$ a7 F# Q ^3 q, d is% f, ^, N, M5 C: L; f, O( c
i,m: integer; -- 整数变量* S* Q) s) z, X+ y N1 C& D4 a3 h4 W" ]
Name:string; -- 字符串变量
7 @0 D/ d* N' c3 u Obj:Object; -- 对象类型变量
I! _: Z! j0 X2 h3 L/ c; L
0 O1 \! D# K% @" @do7 G4 Y+ O7 L8 D* A8 F, E" R: |9 t
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型: F6 l" ]. D& \1 M6 I- i. ?
Name := sprint("BA", m); -- 生产线名称
1 |1 M' w2 [* _4 ~ Obj := str_to_obj(Name); -- 转换成对象变量
% l' q! w/ l2 J ) @/ X# ^" y& ?4 n4 ~
FOR i:=1 to 100 LOOP) _) x/ s% C# M$ E, F
waituntil OBJ.occupied prio 1;
4 J, K' }& K I4 |/ @5 s3 a3 m7 B F OBJ.cont.move(@); 8 f1 _2 y! o' b: q
9 b) q3 F; W" d' n$ v
NEXT;
$ v# y9 q8 j& X7 P @.backwards:=false;
" o5 s& ~. [/ S U6 @. Yend;
% q6 q% R: L0 f; o |
|