|
|
遇见一个难题,请教各位高手。
! C6 X" w$ g6 Y+ H$ c. i6 I/ X& I A: Y
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
% m6 U W# x/ v; o
% S6 Q) R% D- w* X0 r- I需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。3 _7 m- ^; Q9 Y0 r% \7 {
# u* t. b# t1 ^' a. [) ]2 ? is
& C j4 J! F3 G3 }1 C i,m: integer; -- 整数变量
e4 P# M- n3 e* p$ X Name:string; -- 字符串变量
8 @" v! w! W( _ L1 M/ o t% X Obj:Object; -- 对象类型变量1 F5 }0 J2 C3 t7 m
' f5 u( w% ?$ u, ?9 m4 w0 T7 a
do
# ^0 s0 X. F1 v1 b m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型1 P# F6 z: Q) D$ Q3 R% ~' r/ r* F
Name := sprint("BA", m); -- 生产线名称) H* W' T, L2 n' K3 ~! B
Obj := str_to_obj(Name); -- 转换成对象变量$ l; x' J i* o6 [" U
/ B# Q+ o* z* [, b! o FOR i:=1 to 100 LOOP
6 X! ?9 N' n6 \+ v, w3 e g! R waituntil OBJ.occupied prio 1;" t- t" M3 @0 z6 q& N( X* x9 y
OBJ.cont.move(@); 3 o+ e6 Q3 h' u5 q0 E
, j5 o. I: Z; R/ E# |
NEXT;. \5 `5 K- O$ ?+ F5 n
@.backwards:=false;
" `$ ]% _0 h3 R6 T/ Gend;7 j5 y0 m# {& T% t1 T( v+ Q' l" y
|
|