|
|
遇见一个难题,请教各位高手。
# l. w5 W1 i4 F3 N4 r4 \, q; ~. p4 |4 K0 W& I' h% x
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
" B' a3 @; f1 w& q4 ^" }* ~) U: z+ Q' t H3 o
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。; m' k- T+ }6 D
( k( n- I5 |5 a, _- A is) }; [$ W# m3 T) [$ U
i,m: integer; -- 整数变量: W' L$ m5 a0 N4 ?( a& Z4 G
Name:string; -- 字符串变量
+ ^- Q: J( X! M2 O$ L+ ~; {- E( B Obj:Object; -- 对象类型变量
4 Z* ?0 P0 z& M+ f* H4 l- M
0 v6 E1 u5 k0 S3 C8 S: k1 {do+ U5 x0 ?6 d6 f$ b
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型9 i' X8 t; ]: R
Name := sprint("BA", m); -- 生产线名称' `$ G2 F) { k5 O6 f' a# r- H6 p
Obj := str_to_obj(Name); -- 转换成对象变量
4 _3 X' ~2 e. o9 Q4 @0 G/ i+ {/ Z
! U6 }- q2 r4 [, V2 U5 E FOR i:=1 to 100 LOOP
+ a" |: I+ M9 ?, H waituntil OBJ.occupied prio 1;
! V: u0 ?: }& i* `- [! t4 B4 { OBJ.cont.move(@); 1 I9 b2 Q, \1 |8 q5 `3 U4 [
$ ^0 L1 s; R$ u$ ~3 c1 B, m3 e, k NEXT;3 u6 c+ b1 S, a( a7 I7 Q+ _
@.backwards:=false;$ \7 K& D5 i) G$ v1 [: q
end;
& i9 ?, B- u. D- Y/ T6 u |
|