|
|
遇见一个难题,请教各位高手。
: R, a; j e3 M, K! J8 Z3 h$ ^1 ~7 i/ A9 J- R
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。 v8 s: M+ z9 M6 W) T
4 O3 W& G0 Q2 _4 m# {. F2 A需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
' j8 e! e& i9 T6 N) s' O$ e
7 B7 e$ {) O/ T7 | is9 P/ K" J6 u5 q9 J
i,m: integer; -- 整数变量
- I- H7 ?( [/ l. n7 [( }9 j7 E% ^ Name:string; -- 字符串变量- j3 ^ e! U3 v, n* i. H: P
Obj:Object; -- 对象类型变量4 Z4 {7 N/ E G0 C/ D/ ?) ^
- I& H. c3 w; }( O1 j& F; Udo
4 W! r* o3 {' p ]2 F m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型: S9 S- |3 {1 E* o
Name := sprint("BA", m); -- 生产线名称+ @& i% ]% D: T3 l9 Y5 g9 a
Obj := str_to_obj(Name); -- 转换成对象变量 w6 q- o% [8 T# y5 V
2 f9 h/ }* F* T4 n4 H
FOR i:=1 to 100 LOOP6 P& u& j4 Y' q4 e1 R
waituntil OBJ.occupied prio 1;# H( [! W9 q* m4 D" ?; M. k! Q' M
OBJ.cont.move(@);
& ^3 t$ H2 T! Z& K; I2 R
: g, {4 w; x8 j* f NEXT;
" D! t, y2 g1 l' p) Q4 l @.backwards:=false;. ^- ]1 Z& }, S
end;
6 r/ }& ]' D' U6 X2 s9 S' n: ] |
|