|
|
遇见一个难题,请教各位高手。
5 a' l! S' D0 ]) c) a: [
& Z0 H l% Y7 o使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
/ C9 d; Y3 K t' I1 x0 H- z! I1 Q1 X% V- E J% _" V4 @
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。
# B* H4 p5 B) a9 z( B" P5 b. k& z( o0 {: ]' Q4 r! v8 k! f
is
, e- J9 r7 G8 z2 J) k1 o! Z i,m: integer; -- 整数变量( f; o9 N- S l! v# w) B
Name:string; -- 字符串变量
; W6 c; j3 j1 M( x0 n Obj:Object; -- 对象类型变量
+ v) X5 L3 }$ H; T# r, u) B& G- V; T4 x) {& Y: m* }8 {- |
do
. ?# Q% x1 p" u0 N m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型4 f3 Q4 s; f& J1 [3 ?
Name := sprint("BA", m); -- 生产线名称8 c6 G1 x& `# _' z9 ]
Obj := str_to_obj(Name); -- 转换成对象变量/ ?8 E2 c3 e, M# R
5 l: L. R9 S# S5 q% q* \: W
FOR i:=1 to 100 LOOP
3 _; _+ ]; J: x( | waituntil OBJ.occupied prio 1;# s1 D0 V& S" N0 Z' I
OBJ.cont.move(@); & c8 h7 e$ q( c5 f7 N
3 @% M) \6 y7 T+ K3 C* Y+ a: G+ o
NEXT;% @, ^7 F5 w+ Z7 G. U! i" Z
@.backwards:=false;
+ C4 i% e. m" N% f/ O3 Q) Vend;: f/ S4 I# F" P/ W* O( R
|
|