|
|
遇见一个难题,请教各位高手。; H# X6 c0 i# Z9 {% @; `$ y
* M' W2 ?/ [1 k0 S
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。* i; C3 S" P8 ?
0 o1 Z$ d# [* h0 R) m& [
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。7 m) b1 ^# z. f- @* B+ G7 \0 d
" Y: O/ }! e! G6 \( V7 l is* x. p! |$ a- q, Y0 n4 j
i,m: integer; -- 整数变量: B6 w& W% ]9 p3 K4 o) e, T
Name:string; -- 字符串变量+ `: @/ u9 E3 R, i s) i# j
Obj:Object; -- 对象类型变量
2 Q3 F" U! f! W: D6 w* Y9 Y; q0 Y9 Q. J7 z, u+ m8 p7 `' B
do
5 `7 h( w0 g% f& u5 j m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型: |4 f% ~2 v1 L6 ?4 m
Name := sprint("BA", m); -- 生产线名称
) g! j3 u6 K6 @% r Obj := str_to_obj(Name); -- 转换成对象变量
# C8 l: j3 C3 ]- k & m9 j6 V4 i* H% i6 }
FOR i:=1 to 100 LOOP
$ Y# X5 D5 v+ l" R- P7 c' n; U8 H waituntil OBJ.occupied prio 1;" ^. W1 l4 C! ^* A* z- c
OBJ.cont.move(@);
/ j( A: |$ ?" Z4 M4 v& K
6 @2 U. D$ {! |8 |6 Q; S NEXT;
2 Z. E5 e5 T: \5 M9 r8 S @.backwards:=false;$ R0 \% {, N: D0 _
end;( g5 v; G% g; @) p
|
|