|
|
遇见一个难题,请教各位高手。" f0 r" t: k2 J2 p y
5 W1 G1 v7 h0 N4 A使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。$ x( |1 L7 j9 a' ]% J" L5 s% u+ O* G. T
; l7 e" s' r+ l
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。- e( R! O+ P9 z$ Y! } N
% k6 H. u3 g( C
is
2 U* K6 T4 F/ w: Z# g# m# G5 ? i,m: integer; -- 整数变量
; A B/ D- g: @! A% J4 m3 w7 W- y+ E Name:string; -- 字符串变量 b& v- ^( ~4 g8 h( `
Obj:Object; -- 对象类型变量
1 K4 b0 s0 U- |# ^2 ^0 ]' }: J7 i0 j- }5 W+ h5 Y6 K2 o
do
* {6 O; `6 b) |- y* _. q m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
" [ K; ^# A% L$ o8 T$ y Name := sprint("BA", m); -- 生产线名称& ?- k( ~9 n7 k" Z- f
Obj := str_to_obj(Name); -- 转换成对象变量
* ~! u; ^* x, m( O $ ]3 O0 [; `: @& i8 \, I5 L' {
FOR i:=1 to 100 LOOP) E; ~! n5 y1 C% u, e3 j2 K6 _
waituntil OBJ.occupied prio 1;6 \6 ]% \8 r0 I! `: {4 ~$ ~
OBJ.cont.move(@); : X2 k4 `! N' Y' i; s
8 z+ L4 d8 _$ C
NEXT;
8 {- u# J3 n8 a+ u9 v ? @.backwards:=false;2 O1 d% V4 e' c5 q0 ~
end;
" B/ P$ n/ N, b3 t" t j6 \ |
|