|
|
遇见一个难题,请教各位高手。
! E3 H$ J" `3 K2 z1 c, z" I4 s6 Q+ u' C; i
4 K1 k" z/ J& N- Z i使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
# O. j5 r+ S% O" L9 ?) q4 w9 f% h7 q
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。( P! T; @# e) L9 `" j
( i0 N7 r, l0 }
is; h+ t% E; D8 n4 T
i,m: integer; -- 整数变量: |( T, Q/ _* ~, b! m
Name:string; -- 字符串变量, ^: ?# Q* ^/ V; e: M* o
Obj:Object; -- 对象类型变量
/ `1 f% J# \0 u& U6 X, n% x! I, U4 e" i* `3 ~8 [
do
: O/ ]) i }: h2 j7 |7 ? m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
9 \! m' u7 n9 s# i& o1 C. T5 v Name := sprint("BA", m); -- 生产线名称
% k5 n' D. w# I7 F# D# V. q8 w Obj := str_to_obj(Name); -- 转换成对象变量$ g1 ]8 i, K7 q8 F; H* ~' d
, U8 M$ r3 E m r8 X8 Y# ?
FOR i:=1 to 100 LOOP
4 k D6 A! [3 ` U- u6 b waituntil OBJ.occupied prio 1;/ h! h1 v( G5 t( G( \, \
OBJ.cont.move(@); , b& ^$ n1 ^& {6 {) W
# c( ^2 ?1 F( A# `4 u
NEXT;
" N A2 O8 ^8 l! N @.backwards:=false;
- l" a5 a; v0 y7 E# Iend;
4 B6 T6 z: X3 J' s% g* T( P |
|