|
|
遇见一个难题,请教各位高手。* ~) z# o. j2 f2 T) W
' k7 v% Z7 R( v1 @. T# V( M
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。& }4 _/ H: n) _1 w
: {3 ]+ w+ t/ N l" B! d
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
7 Q& r( I% Z$ K) o4 w
# ]. d7 d/ d* N is
. H& u5 v- z0 k# b E1 ~2 p i,m: integer; -- 整数变量0 Y5 D) r) r1 b9 F, L \4 u
Name:string; -- 字符串变量
- d' \4 E- Z& ^+ l, q! } Obj:Object; -- 对象类型变量
; `4 ^; W M! T- Z& J
! @% C% Z# G. ^do
' u7 t |) P1 F/ s( y6 y0 T m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型$ w3 u0 [) w( u0 u2 M
Name := sprint("BA", m); -- 生产线名称/ c) z h1 M; Y' Z, e) ]
Obj := str_to_obj(Name); -- 转换成对象变量" E6 B4 z; y% G% N
* K3 `3 Y/ G; |% y% I" l1 N& R6 V2 ^
FOR i:=1 to 100 LOOP- N \, o' {$ R$ r3 y7 W: X4 ]
waituntil OBJ.occupied prio 1;
7 `9 r, _. {/ l+ g. K1 M OBJ.cont.move(@); . ]( i# k: L: F/ Q0 t$ H1 ^- u) j! a
9 ]3 M z" N8 K* J3 H' ^ NEXT;
# i: M R1 n+ x& s; i. O @.backwards:=false;4 y' d8 q3 |0 n) Z& D7 g; M
end;4 s/ ~: T7 v' k5 C- S! o4 `
|
|