|
|
遇见一个难题,请教各位高手。" j8 s4 Q7 t: U* `$ Z& S6 O
, K- ?: Y* \8 y' W& u使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
3 h8 K/ C6 W6 \& n# A
6 }5 O# a4 Q/ J6 A- l; l; v# Z- w需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
, A* n& r5 o$ o7 F+ u- L
1 j3 R* j$ p9 J, { is
; M8 z. a: i1 I, h, d4 m i,m: integer; -- 整数变量1 I i" j! H% ` \
Name:string; -- 字符串变量4 L5 T% C9 E% N5 V2 q) I) ~) ^- v
Obj:Object; -- 对象类型变量, |! C2 c& E- i7 O4 B* u, k
2 c) r* J8 C: p
do! T' B2 S8 \7 w f Y/ W ]
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型8 W$ a8 A+ g, k$ e) S) \8 ~% W
Name := sprint("BA", m); -- 生产线名称5 [; |5 g. f. O
Obj := str_to_obj(Name); -- 转换成对象变量
& z' Z" c7 S" z0 d, n
3 w; `- G |4 y FOR i:=1 to 100 LOOP
8 @6 s: j1 j* X' w8 h waituntil OBJ.occupied prio 1;
' t$ ~- k6 Y0 d i t+ n9 [; K# f OBJ.cont.move(@); / d( R9 O C4 S5 W& @% U& _
+ p$ n2 z# N4 r
NEXT;+ {' N8 p5 f- Y4 N$ d1 u
@.backwards:=false;9 M( p! k6 {1 J; C4 I! g
end;+ [& p- ?* N0 u1 D+ ?
|
|