|
|
遇见一个难题,请教各位高手。+ P9 m8 E$ D& f7 B# y
! ]: |. F8 ~7 H! \
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
# o( w) ~: g! d- h) A3 g1 P4 L$ h3 F. w: K; k6 R
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
- d9 H+ h2 E# T7 r/ G& M& L) ]' I. K
4 C8 S* F! t$ s }3 f# Z is( Y9 h" ^7 t4 B& O
i,m: integer; -- 整数变量7 N8 ]* B5 {3 c: N* [" A: g8 O
Name:string; -- 字符串变量, O/ F9 ~# N0 k d+ y, d0 Q
Obj:Object; -- 对象类型变量
% Q) B s2 p: G2 E: c; [7 K' h
, [& `- Y4 n: ~6 _, _! Edo
! W1 b0 b$ a0 O1 ]5 d8 k m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型$ A* {2 x( ?' q, ?. ^3 ?1 l
Name := sprint("BA", m); -- 生产线名称+ e/ q% |* \ ?( T% k
Obj := str_to_obj(Name); -- 转换成对象变量
1 F9 V* l3 |6 X8 Y ) B7 @; p: B7 D2 V
FOR i:=1 to 100 LOOP7 ?2 z- O y9 n: u H
waituntil OBJ.occupied prio 1;1 D* M' e2 f- L& j/ L
OBJ.cont.move(@);
1 I8 [9 M# D/ U; b2 F( H
, K9 @ c" \; }' o NEXT;
`7 B6 c3 ]- h# V @.backwards:=false;+ c2 T( B1 z& A4 A- }1 R& B! G! a R
end;
0 ]' l, v9 `1 M; Q2 p9 l |
|