|
|
遇见一个难题,请教各位高手。3 W; H8 a* |. V
6 Y2 }* \) d8 y) B# u2 d4 }* b
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。. F2 d7 b& r# f6 q0 C1 Z$ ]2 j8 @
- Y- B F& D9 _' {3 q# \
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
. Q6 o& g% Q, ~; k3 t2 j% w" ~/ M) T( |) i& k' L4 A- F6 b/ `
is
( c1 u# S% v7 M+ H) @' l i,m: integer; -- 整数变量
. L2 D2 }* U, |: q4 w Name:string; -- 字符串变量
# R7 R2 _( C# j! ~/ ? Obj:Object; -- 对象类型变量
* V/ A& a4 s) Q: X$ @5 r. j! E1 ^4 W% p5 p
do
' _+ j, i! W& O2 c m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型, w0 E3 v5 r y9 T( X1 G( y' x
Name := sprint("BA", m); -- 生产线名称
$ p# F; E+ x/ u# ?7 U0 l Obj := str_to_obj(Name); -- 转换成对象变量
( U. h. t/ ?, b F: y6 |6 e/ s 6 g- \4 D$ h1 e* D2 B! o" n
FOR i:=1 to 100 LOOP" m) r' K" v* v0 B2 f3 v6 G: V
waituntil OBJ.occupied prio 1;/ t2 U: I8 h7 C- c$ `. _' [
OBJ.cont.move(@); - H6 g C- |8 @1 `8 M1 ~- L
" q+ {! |. B# @ NEXT;
3 Y2 w5 i5 J- C6 g+ Q/ ?/ k @.backwards:=false;. r8 p: F/ }9 a1 ^3 s8 f
end;+ Q' N3 n h W
|
|