|
|
遇见一个难题,请教各位高手。
N1 N* _5 X% V c9 p2 m0 }9 O
0 ?# u$ W3 Q: g) D L+ D: M/ n) B) H& E使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
+ h* Y5 v+ c5 n& w$ V2 m( g
R6 O& O: Y7 K! T8 n2 K6 ]7 M需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
4 Z2 a4 y/ V# D* D! X4 h. [" Q$ g& v" u
is- k) q& w4 {1 I0 a, I
i,m: integer; -- 整数变量 ~. f# y" r" m7 \: k1 S1 I
Name:string; -- 字符串变量% d" o, m: I- ]$ j# [5 Z+ h1 R
Obj:Object; -- 对象类型变量
& O' H- B9 w( t& h8 s3 e0 ~# Q& ?6 I/ T
do
" d6 S1 T4 H& @ m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型* h& v% N7 `) z- u" }
Name := sprint("BA", m); -- 生产线名称
7 [. g, p' r' }( O9 B7 G) { Obj := str_to_obj(Name); -- 转换成对象变量
+ [. W+ U* Z8 j2 X2 W 4 f$ `5 u1 _# Q" P! C2 Q2 S5 M
FOR i:=1 to 100 LOOP
# [. K( {3 j- I/ n0 ^ waituntil OBJ.occupied prio 1;) z* r0 u; |# q
OBJ.cont.move(@); ' D, L& |) U/ ]1 m: Y
y& o, I, W8 [9 Q5 T3 n
NEXT;9 q0 a. I5 Y0 h& @1 B4 Y) {
@.backwards:=false;* u1 N- x- {. W+ [1 W
end;, r5 G8 G5 s, f1 |- b
|
|