|
|
遇见一个难题,请教各位高手。* M5 m1 c$ J/ { y' @
3 D7 t& p" l/ i- L
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
& Y; G3 C: d h7 D% q. J2 @; o7 w$ G/ m2 s
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。) N# }" |! w6 [" u- ~2 W
# [$ ~$ `9 v) I/ y
is) c$ e) [" X0 j& U: t
i,m: integer; -- 整数变量
2 F6 R# ~; c5 i R2 [ Name:string; -- 字符串变量
a/ M# x' V. f3 `. o0 F Obj:Object; -- 对象类型变量4 l- K# a6 R E8 s
( _% T# ^* a7 {/ K! r, ]
do
. M' }) L9 _1 f; a" `0 \$ }9 Y m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
5 x3 @0 s5 n% t6 k. S5 [2 l+ L Name := sprint("BA", m); -- 生产线名称5 T; v* e& n$ s- W& K$ g
Obj := str_to_obj(Name); -- 转换成对象变量3 N J- P* @; N2 i: E% M1 g) x5 g
K/ t2 v. Q- p% \! T" X% D5 p% y FOR i:=1 to 100 LOOP
/ H1 k h( w, [: z2 Z waituntil OBJ.occupied prio 1;( o$ Y2 B- s, h% r
OBJ.cont.move(@); ; H2 E; J, E6 B |
~- h9 m& ]+ W0 M. G( [, K e2 N' k NEXT;
( f0 c* q2 M3 l3 q" ?+ E @.backwards:=false;& u0 I# i4 c/ ? l
end;; R' h& L# R' \% ]6 S: k
|
|