|
|
遇见一个难题,请教各位高手。, z$ b4 ] ?( K; t9 L, w5 x! S
4 o: Z4 |) ~& z* j
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。! x& @0 @8 d! i6 M
- u/ ?9 m7 y& R- o' d8 D: c$ O O3 t2 c$ t
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。0 n5 y# R a5 L: @: H
( M5 T. `& w. |# O8 i" i
is
# b0 v: V `1 Z4 t i,m: integer; -- 整数变量: ^4 D. Y+ G1 ?2 c6 ?, B
Name:string; -- 字符串变量, I2 t: Z( {( {% b
Obj:Object; -- 对象类型变量
6 h1 K0 |% ~4 s+ @. [1 q0 d4 s# ?7 a9 y& r: C4 T. ?
do. m+ n/ H; \% j
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
- C0 n8 e9 e, z! _# g Name := sprint("BA", m); -- 生产线名称
2 E2 h c# o$ H* W) s: L/ D" E Obj := str_to_obj(Name); -- 转换成对象变量
; V* o5 U: ^5 Z* m1 C( t ; }" i* Q1 A9 ~3 H" K/ R4 V
FOR i:=1 to 100 LOOP
* n; n" F4 _5 ? waituntil OBJ.occupied prio 1;
2 ?7 u+ K$ n9 `2 R( B OBJ.cont.move(@);
, z2 C& Q4 ?# a9 { " O+ Y2 Z* n# E* ?: Z
NEXT;
' d) w) Q: [2 [! Y; X i @.backwards:=false;
1 U- J. u: f1 fend;2 m% v" b7 L5 c, ~0 S: b- F+ @
|
|