|
遇见一个难题,请教各位高手。
2 F5 M+ a& {$ p" {1 {" ]( r$ o% H4 t8 {& X& ~ z
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
& E+ r# e/ G+ m1 f; g6 i- E% t {! U) c1 j$ D
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。! U2 n& Z5 m' I, Z$ L
- J" k/ T7 @8 H" g( o
is) Y. {+ S) \! `5 ] I
i,m: integer; -- 整数变量
! x6 c4 c, W7 w/ i/ r) c Name:string; -- 字符串变量8 f* u4 l$ b+ a6 x/ a
Obj:Object; -- 对象类型变量
/ c. `$ o/ r" t$ N0 q# K% ?! A+ q. v/ {
do
2 ?& ], N1 M% s; Z& Q# t0 Z* }" j m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
; Z" P9 W' x) V& D' T5 \( @* ^ Name := sprint("BA", m); -- 生产线名称+ X y g! {" l7 N9 k& n* D2 A
Obj := str_to_obj(Name); -- 转换成对象变量3 b8 \% v# M3 x' |. K/ \. q
) K2 r) F4 c- {( `6 l FOR i:=1 to 100 LOOP
. g, }) g7 |8 t7 ]) R# M6 C waituntil OBJ.occupied prio 1;# q4 J) j- C1 l! L0 Q
OBJ.cont.move(@);
1 {$ } Y* d A& S- ~+ Y% V6 f6 d7 M
4 U ~' Y% {; i. o$ D1 k- ` NEXT;2 |; o; |) ~& t: Z; S# v/ \
@.backwards:=false;; E c5 h! ^" T, J8 m, l
end;' _6 W- n2 `" _4 n9 n
|
|