|
|
遇见一个难题,请教各位高手。. M* Z8 C5 y& u( |9 c# x5 c: e+ r8 a
+ l! F* Q) }- f" A- I& g6 D
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。1 W0 s! a! W8 `1 L8 h* b) e7 G
" a- u- r9 d4 m k( L* D7 F
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
6 b$ _& ]$ Y; \7 N; [
* u8 Y' ~9 p# G# t% [7 ` is
8 N4 ^/ j$ f- M5 F, K7 \& a i,m: integer; -- 整数变量
% w8 E2 ]) x& G% o8 [ Name:string; -- 字符串变量
* H4 J% j% D2 P0 o- t, q+ ?8 }+ ~% Z Obj:Object; -- 对象类型变量/ H: ?( \- f3 `7 J7 q, N
- _3 z- [0 m& n o% G
do
' b6 W3 X' l( A* c, S$ r5 e' K m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型8 q% X% R. ^! ^, q: L
Name := sprint("BA", m); -- 生产线名称. {6 N9 o7 T# C, P: V
Obj := str_to_obj(Name); -- 转换成对象变量0 ~7 ~4 w! G# x, Q. h
; m/ d( Y' S( q
FOR i:=1 to 100 LOOP
_/ V0 m" k4 h: J; N# g$ c waituntil OBJ.occupied prio 1;
# e$ B, `# V2 P$ }" I# v6 \3 s OBJ.cont.move(@); , [$ s) I( d3 s m
2 k1 s5 r3 X3 Y H4 x4 |% t% E; y
NEXT;
3 v1 ^# T; q) V @.backwards:=false;
* h5 y& n& T9 b& y* O* h; ?2 o2 Bend;
# M2 p' B8 e7 n) K' ?& S |
|