|
遇见一个难题,请教各位高手。3 d! f4 ^# S+ [5 t6 J2 _
/ F7 R. b0 P& w* J7 ?: z使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
5 c' c0 t6 K: r$ Z3 A, B& R7 T# s" N% m6 o$ b" l7 c5 U
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
; E) z' n4 X q; N# D0 K s$ D2 v d2 a0 m& K) {2 A8 M
is# P9 {" J9 ^+ k9 X
i,m: integer; -- 整数变量
' u p1 @% `% S+ s. t. _6 F4 X Name:string; -- 字符串变量: D, `2 ~% ` w: q
Obj:Object; -- 对象类型变量' b+ i8 w" c& K2 u
/ B. C! ^7 Y W( C+ b4 x; U
do
3 ?7 A2 W8 n' x& n2 O1 z2 x. X1 v m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
3 D6 T' z+ {. ^+ v2 ] Name := sprint("BA", m); -- 生产线名称
0 I0 b2 E9 h4 Y5 ]0 T1 k: x0 Y! f Obj := str_to_obj(Name); -- 转换成对象变量8 T8 j$ P* _4 \) L5 B
- H b* B- k3 c2 H( m FOR i:=1 to 100 LOOP
/ v. M3 p3 _! _3 d# g# S- P+ T5 b waituntil OBJ.occupied prio 1;
1 y& v' s6 k# A \, H OBJ.cont.move(@); 7 g3 s- N+ k1 e' O9 |! Q& Z" @6 R
9 g# `" c$ m* l- {6 b+ ` NEXT;! z6 y+ T0 P7 h. O) f8 ?4 C" x: D! A: K
@.backwards:=false;2 q9 w! W1 W+ t
end;
, V: F6 h* w; Z. a |
|