|
|
遇见一个难题,请教各位高手。) ^0 d* n5 M5 D2 R8 {
" c. i2 a1 b9 W8 Q6 q
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。
4 Z, n0 _) B1 h7 f8 c: f) M9 d6 K" y& A9 }. ?
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。, ~0 r0 U& C4 |* L# U1 ~
# w2 Z/ e2 P& o* C3 c: F is( O B v S$ C# `) J
i,m: integer; -- 整数变量! u M$ n$ @) m1 u+ d* e
Name:string; -- 字符串变量
6 B. c6 }+ h z% w: C' x Obj:Object; -- 对象类型变量9 f; ^+ o1 {0 Y+ X! f! a/ I+ D
' X) B5 Q; W) }' I gdo2 u; A1 Z2 `. t! ~( p0 b
m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型
! ]# d: k4 }$ a/ j Name := sprint("BA", m); -- 生产线名称
$ T. Q$ d8 k2 R6 X0 [- b Obj := str_to_obj(Name); -- 转换成对象变量# v4 ?4 q4 C: J- \' A- z
! W A# f# C# p- Y% } FOR i:=1 to 100 LOOP
; S7 ]5 T. s7 D& Q waituntil OBJ.occupied prio 1;
( @& a% H: o2 F4 J! F3 O8 R8 T OBJ.cont.move(@); : @2 B S! H- d1 ^& V# J9 Z4 s
5 }7 Y. C$ l5 g. e: q( R, B! z6 N NEXT;
3 j2 n A2 K8 i; F0 o5 }8 o @.backwards:=false;0 P# t" n7 c$ L% [. t1 O
end;; Y0 q) r6 ?/ J$ `8 g& a( ~: J5 N
|
|