|
遇见一个难题,请教各位高手。
6 o% j" J: S' f- Q, a1 c( p. r+ {3 A' ]5 l
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。5 a3 A5 a- J; s8 t- V; {2 L( R4 t# n
, T7 S0 a2 y O" l9 J! r
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
# _2 N, |% `. @# n, }2 @( J( L, d, q, @/ z; a' Y/ X" |+ A
is
) D8 [! P8 r ^: J" u2 o2 h i,m: integer; -- 整数变量& T3 c1 K7 g2 R) o4 s
Name:string; -- 字符串变量% V( [# \4 l9 Q) I: M* k ?( L9 L. o
Obj:Object; -- 对象类型变量0 F9 }! r" U: m3 ?8 ?2 ^' u
$ {( ]/ W) D% `" \& r. M5 S* E
do( k9 {- i1 Q9 S/ [3 Z" |
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型* `0 z; @8 z3 C6 @' e' `4 K
Name := sprint("BA", m); -- 生产线名称( q$ b% s) L) f1 L; R4 I
Obj := str_to_obj(Name); -- 转换成对象变量
5 |* m: k. d) F% w+ R' P
' z5 A% b' |/ @! A1 @8 e8 v FOR i:=1 to 100 LOOP
; `2 Y+ s7 x9 n waituntil OBJ.occupied prio 1;5 p" J* V& v, [; u6 b
OBJ.cont.move(@);
; d: Z1 \, T; v2 J+ c + }1 i$ T' S6 [$ G4 F/ L0 ]
NEXT;
6 |' y/ [1 p4 i) B7 a' t5 ^ @.backwards:=false;
/ ^( X. S+ @+ Y# j# ^( N0 `end;; a5 m2 x2 L0 z6 d1 A
|
|