|
遇见一个难题,请教各位高手。0 l9 W# P3 m# ~+ t
3 O% c' n3 B# u! T: K& G4 ~) W使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
! ^6 B. Q% U. J, R K! X- W1 j2 k, e
. m4 w1 d+ j- E, H: E需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。8 H- M8 y7 [6 T- E0 d# H8 ^, q- i
6 Y8 _6 c2 G$ S: p* I is
8 ~% i: ?8 ?) U6 ^ D9 M1 u i,m: integer; -- 整数变量
; ~. y! k; \, B# t2 B. ^ Name:string; -- 字符串变量
^+ q1 K4 }/ B6 b* J6 Q Obj:Object; -- 对象类型变量+ q1 i) r$ Y8 @0 C0 s8 j) [
& T# ~$ Y; p9 [- T( w6 N7 V2 T
do2 |* |' z; P0 c8 ^0 Z8 H
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型6 g, j. C( C3 h( l0 q
Name := sprint("BA", m); -- 生产线名称
( I7 h* g+ P1 B) D# K5 u7 F( W3 O Obj := str_to_obj(Name); -- 转换成对象变量1 b" b& G1 S2 a) S
) ]7 `- v: P4 L1 S. y0 L) i" j
FOR i:=1 to 100 LOOP
* `2 A0 a) A( g/ ?% P1 e$ X waituntil OBJ.occupied prio 1;
9 D% d) k4 b9 j5 u$ E% N) X OBJ.cont.move(@); & t* k: e5 X _7 L' t! _7 z5 P. y
* m6 u( Q; X3 N: M0 i. y NEXT;
" K( h* p2 E' c5 G% G* W E @.backwards:=false;& B: A& L; b, v! B- L! t5 O
end;7 i7 n/ [" m6 @# t7 A
|
|