|
|
遇见一个难题,请教各位高手。: Z2 C+ r' `) W- u
8 C/ Q6 i+ H" E' _; {2 e使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。4 k/ }( ]5 H3 ^' S' ~
/ r& [5 M* Z0 K+ q- f
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
3 F4 @7 U9 S1 x& N# K
5 x3 i. H% n% X4 p. p( f+ c! F is
2 }9 P+ f: B# S I4 s, s i,m: integer; -- 整数变量
* l, O$ ]5 q; \! G Name:string; -- 字符串变量
% E* ~5 z* h# p6 I p0 T Obj:Object; -- 对象类型变量4 Y1 m$ Q; r! g9 x
! B7 h+ e" R* D
do
0 ?! B, E: p2 r- x* y) T m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
a6 R2 v: B0 O5 h# Q* s Name := sprint("BA", m); -- 生产线名称
# W( R& t, q& l5 l' n. b2 i Obj := str_to_obj(Name); -- 转换成对象变量/ [9 t3 a% G! B, D* [1 M
( Y9 {& w* Q2 k; A9 o
FOR i:=1 to 100 LOOP% R1 _/ O: W4 M! L
waituntil OBJ.occupied prio 1;
6 h6 j$ v9 e. P OBJ.cont.move(@); 1 D8 f6 b [" _/ i2 ?6 Z$ ]
) T) O1 {3 ^/ J
NEXT;+ s2 ^* ], ^% g8 @8 e+ G2 S
@.backwards:=false;, R1 ~$ C. L7 g( L5 ?
end;4 ]$ R6 A0 n# G, T' V4 [
|
|