|
|
遇见一个难题,请教各位高手。* e3 S7 j% i" ^. [( _6 N! j
8 a! r" N* \, Z; {7 U( A4 c
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。$ v. A- L7 C2 S) E. M
7 {2 D7 \! m4 j7 q) a6 U2 Q
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。9 u' k" E: ^2 J, c; S8 v, K7 A) D
7 s$ j' j7 c8 Y! d+ O0 a6 Q is
2 }: p2 I7 u4 O A+ n- V* v i,m: integer; -- 整数变量3 B6 ?( U {) z1 i& }# [) c
Name:string; -- 字符串变量$ D8 h/ Z, D/ d, V$ n m
Obj:Object; -- 对象类型变量1 T& d$ o1 `6 l$ w
! Y$ H1 a+ {- u$ e
do
6 z u4 v: |4 m5 j% y) t# ^ m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
; N, f. j# W7 d3 g" B$ P Name := sprint("BA", m); -- 生产线名称; v/ u; B# J/ [+ d' @8 I: J
Obj := str_to_obj(Name); -- 转换成对象变量
7 e* ?6 m2 g4 Z) O5 z; ^/ t- h, B
6 Z- _# r- [- d FOR i:=1 to 100 LOOP
5 O2 A1 l; u! O waituntil OBJ.occupied prio 1; D. i0 x# `2 _# _
OBJ.cont.move(@); ! f) g' B( v2 g3 v3 W" f2 l
! d6 @: ?: H: G; L3 T, i' m
NEXT;5 Z5 g/ ]$ ^4 f$ U8 j, ?3 {
@.backwards:=false;3 w# `1 L: W" b0 t5 X4 K& K7 z7 Q
end;
r" T8 d0 @% A# v! o- ? C2 M |
|