|
|
遇见一个难题,请教各位高手。( i3 k; R% L$ e; g( j, K5 c
8 y9 Z4 Q+ t( t1 e# ]5 c使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
4 R0 L, e$ W+ E- {
" ?. V" f7 [8 B1 Q: M需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
: C/ `7 z+ Q# Z/ _6 ^+ U% j; J
0 |5 |3 F M6 q" T; z2 a is
: A7 S5 S$ M7 X# @. |$ |5 n! n2 N i,m: integer; -- 整数变量% t2 C% ?3 a/ y) o5 U' `
Name:string; -- 字符串变量
4 Q& W% v& U# G9 L3 _6 } Obj:Object; -- 对象类型变量
7 n1 t5 V G; F: ~- f1 k2 i7 R' n# b0 q; p! j. R* {3 k
do, I( @, \7 t! l: J1 H8 y j
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型 O0 \8 u/ g& F; F5 u5 R. ^
Name := sprint("BA", m); -- 生产线名称
! U, y- G j9 ~ Obj := str_to_obj(Name); -- 转换成对象变量
; t% q( {; r J % K2 y+ g3 ?5 A& |6 c* E+ D
FOR i:=1 to 100 LOOP `/ a9 R% d7 c2 r ~4 ?
waituntil OBJ.occupied prio 1;
, O. t7 C% B( P* G& G J OBJ.cont.move(@);
: s, i7 H1 @0 L4 Q0 i2 |
C$ S5 b+ r3 p NEXT;
) H* y' e1 |7 g, R/ X- N @.backwards:=false;
$ Q9 X6 R. V, I$ j0 h. lend;7 N! ]2 }- Q# ?0 A* V$ S
|
|