|
|
遇见一个难题,请教各位高手。
( ^5 f5 ]7 n* `6 w" j$ H9 w5 b# Q; w5 ?
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
! H+ G1 \- h2 F, @: U5 ~. ]2 r* i) ~& X, i' J. s, |) p0 f( O8 R S7 [
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。# z; b) W- u6 ?, ^# s
0 N; a& J, g4 f0 C
is7 g E0 J* V2 @, K$ ?
i,m: integer; -- 整数变量* I7 Z0 ]& W) t( r0 s
Name:string; -- 字符串变量* ?9 _. p% ?# {
Obj:Object; -- 对象类型变量, D8 w: v7 o+ `5 _( G
- i) n5 X" c! q6 i' R$ Tdo! G! ^; m! U, F0 p: [4 e( x7 M
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
; z5 [& ?1 u( ?( U Name := sprint("BA", m); -- 生产线名称
b# I/ x2 Q# y* v/ u; P, B Obj := str_to_obj(Name); -- 转换成对象变量
( x. r( ]0 ?1 b J" x' y 1 I* \. a( x) B
FOR i:=1 to 100 LOOP
0 i& C3 s s) I' c waituntil OBJ.occupied prio 1;$ W7 H: Y0 ~! p$ v. T5 [
OBJ.cont.move(@); 6 n5 K8 h: ?8 p
( m9 c- h' w& Q( ?/ }, i
NEXT;" Q" {8 n: c1 Z9 Y I: c+ D& \
@.backwards:=false;1 K3 k& p) e1 C2 P2 b" k
end;
, p$ E9 f8 o6 K3 ]$ S7 a% \9 @ |
|