|
|
遇见一个难题,请教各位高手。* f1 X( e" K7 n* U
' Y! s0 X4 `6 t( y3 p5 I, u/ I使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。+ d2 b! i- |' b2 `- c' k$ i
8 `# Z( O0 m7 W+ E; M2 s: [, s/ w3 o
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
$ c6 M3 [2 `+ Y- t7 a
, T# {: q5 |) }& L; F/ e is l* B, w: \ d( L6 {1 E
i,m: integer; -- 整数变量4 W$ {; {7 v: X' L
Name:string; -- 字符串变量* M( Q: e% a. s3 }$ n
Obj:Object; -- 对象类型变量
' n; {( P/ y) ~4 g% S' g, u2 Q( F# Z& I$ f/ _0 l
do
* I: T7 O" Z9 h! }% n, y# K/ S m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型2 F7 h5 j! {& ~) Z
Name := sprint("BA", m); -- 生产线名称
0 p, Z7 Y7 ~1 ?! j1 ^) V8 J4 c Obj := str_to_obj(Name); -- 转换成对象变量
: z9 [- J# ^% I' |- i0 S
' K: D! V. U3 G& T FOR i:=1 to 100 LOOP
6 ?; M* t5 [8 X) R waituntil OBJ.occupied prio 1;
4 w5 k4 G- ~$ \0 S& K8 O OBJ.cont.move(@); : X3 A# h% j0 c
* e( J9 T' J( p' a/ @; C NEXT;) j7 q7 t% X% W- }1 Q! u& l
@.backwards:=false;
# `* }9 x( @% uend;
; s3 E$ m) Z- R, z) y! T |
|