|
|
遇见一个难题,请教各位高手。
+ L* P7 s% |8 c) w8 j. r9 L% L' j* E/ e! j1 r$ |4 Q. K7 T( \0 w
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
% f N$ e% h8 G! r A0 w* u& X2 }5 K+ ~- J$ E0 T. l& _* Q
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。5 k) w4 D0 R- p
! A' M8 S. H6 `% l
is' y% g9 B5 c) K6 Z# H: L2 |
i,m: integer; -- 整数变量
4 ?- M8 E6 G8 S6 v8 J Name:string; -- 字符串变量
; D* N8 q! w* j- p* |( o$ X Obj:Object; -- 对象类型变量* u! [2 ]$ |6 d8 l; p7 y5 y
0 u6 I, k5 {$ K4 q( Z, t% `7 edo1 X4 Q2 z/ b/ m& i: |
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型9 `, z4 V6 e$ W3 z4 f/ l9 k: g
Name := sprint("BA", m); -- 生产线名称* a! a; ^$ ^ u) `3 P
Obj := str_to_obj(Name); -- 转换成对象变量
, a1 F/ A# S8 Z& C- O1 o
8 I2 W9 W% ~4 b) B" A5 E: v) T3 s7 T FOR i:=1 to 100 LOOP& `' q- z0 c0 U+ p7 d+ ~ c
waituntil OBJ.occupied prio 1;( C1 p. e' C: `( g% c7 h
OBJ.cont.move(@);
' o) U, f- k0 D+ Z3 z + e, N4 u W4 w+ q* [/ C) |) Z; b4 t
NEXT;
; D: A7 n O2 y* B+ j+ g @.backwards:=false;. a- T; q4 c' H: H# A
end;
2 Y- r# |' p' T8 B3 d( o* X |
|