|
|
遇见一个难题,请教各位高手。
4 A0 d S8 T, L3 r8 j9 ?1 L' a+ Z, G: N: E, n; ^% [/ a; I
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
# f( j0 g1 h# v) s& ]1 ~6 Q% F9 M) @1 H. _$ D+ j
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。) r2 @7 F! ]# P8 J
5 a3 C& q$ g6 Q0 s
is! y- y# h3 u E' d
i,m: integer; -- 整数变量. [, k; g4 Q3 c4 u' b) o% X
Name:string; -- 字符串变量4 ?: ~9 f, ]* }5 V
Obj:Object; -- 对象类型变量
* }) S9 h% V; h6 g$ p: Q1 l; R5 i+ M2 J5 ?. K. U
do
& @5 e* g: M# b$ z9 ~- l- Y m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
& f+ A( {" l$ Q% U6 U% a/ i Name := sprint("BA", m); -- 生产线名称9 e& L# f8 J$ m7 ` K' c
Obj := str_to_obj(Name); -- 转换成对象变量) p# x' v% |+ | B; q
& d" J$ o0 B% S e5 Z6 c) h) d T FOR i:=1 to 100 LOOP
& j# }! Z* s4 D. g+ h waituntil OBJ.occupied prio 1;
" A |! e6 s: C# x OBJ.cont.move(@);
3 d% c; `* j( x% O; T Z% Z2 E& A : a, c% u( U5 Y. g0 [1 v& w ?
NEXT;7 k2 [7 B4 j$ b0 E8 o% w
@.backwards:=false;
- h$ ^) I4 g: L4 b8 X+ ?+ [1 Fend;6 d6 w" g) z6 b: Z7 M! k3 ?! Y" R
|
|