|
|
遇见一个难题,请教各位高手。
% y9 F" q" \7 D+ k% ^+ v1 c1 p# i! C
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。0 i& `4 R- ^. a+ G8 G( a
/ D- i+ d4 A% @5 {8 s, _! h
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。2 {: X8 S, d6 Y
8 t' x/ P; v) g; ~5 H: ?# I is
m5 T$ j- c w: c( N/ X# ] i,m: integer; -- 整数变量
" `# O& ]3 `( m6 L6 ~ Name:string; -- 字符串变量
5 h N3 z# n% f' ? Obj:Object; -- 对象类型变量7 k5 e/ u' i! T" u% d# ]+ a9 t
, z3 N% l3 q5 d2 j( w
do; ]8 y' ?; P4 ^2 _5 V
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
% ^4 G% o. d: v* k: ] Name := sprint("BA", m); -- 生产线名称
. G( c) \" H5 I0 L& A2 @4 R' U Obj := str_to_obj(Name); -- 转换成对象变量, @( |1 D6 {1 s& j
3 j/ J, f4 ~; w, H( _; T FOR i:=1 to 100 LOOP4 @) d9 D& S+ O' ?
waituntil OBJ.occupied prio 1;; H9 s& Y7 c1 r# p; h7 ~5 Y# A
OBJ.cont.move(@);
# ]- g4 c- _0 g! q' K
' b: d* b% u9 W( T' d4 n2 i% K% u NEXT;
4 |0 ~4 n' h- @$ |$ l" n5 a+ { @.backwards:=false;( @* |* k' b2 i8 o. P
end;' \ p; {( Q! x$ W1 M
|
|