|
|
遇见一个难题,请教各位高手。/ l& O: G& w( _0 M/ x. x' D
5 g! R3 m# m. s使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
* F& t+ A2 {* O2 Q; b
; v# O! b' c p# P& `需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。5 j0 e. y0 r! y3 F
$ e* f+ D3 {# F# B
is
S* ?1 U$ k5 E i,m: integer; -- 整数变量
* S. m1 x: Q, {9 P Name:string; -- 字符串变量
0 c3 I% {$ w: a3 h; o2 s. c! y Obj:Object; -- 对象类型变量/ _, Z7 r5 c m# O; D- ?3 a
9 x9 G+ t/ F& r! Z L1 ?
do
- H$ }# C8 @2 h# U& P m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
% Y9 G5 j1 ?$ j! _4 O Name := sprint("BA", m); -- 生产线名称
4 r+ H9 ^5 f4 {7 U" L3 s8 F) b! A Obj := str_to_obj(Name); -- 转换成对象变量
0 P# K0 ~" @8 q+ Z4 O* R
. [/ h# x9 Z# K4 M1 H1 K FOR i:=1 to 100 LOOP# f' Q9 P6 B/ q: p, ]7 D8 \
waituntil OBJ.occupied prio 1;
$ J: ]8 k/ _: `7 ? OBJ.cont.move(@);
6 i5 E% g7 H" E/ p
' | r K, B! f5 F: w/ {, B7 G NEXT;& I- u! E0 w5 S% j* M; D
@.backwards:=false;
! w/ p" t+ K# }: Oend;& q8 P+ W3 f5 z. w0 h" I: G" u; P
|
|