|
|
遇见一个难题,请教各位高手。
- t* F$ \9 L4 n, q$ t" z9 T, a$ |' R: D
使用transporter将物料从A点运送到B点,通常情况下,每次运输100件,但是运输几次后,剩余的产品不够100件(例如订单总数是220件,第一次运输100件,第二次运输100件,第三次只有 20件可以运了),当运行到第三次的时候,仿真就停滞了,无法继续下去。不知道如何修改程序(我现在的程序如下)。- y4 z# o% t Z5 o- u& [
; z4 @: e" k8 j: p2 H
需要说明的是,A点的运输量不是固定的,因为有两台并联的机器,因此我无法通过表格直接得出已运送量和未运送量。) I. }# I, Q0 U$ G$ A- E1 c
; ^$ T1 K" \! o! Q- Q
is
7 k Z# E' n/ g; J6 P i,m: integer; -- 整数变量
% B9 y) q _$ L/ o3 G2 L1 e Name:string; -- 字符串变量+ l9 w/ ]/ n" F( T7 X
Obj:Object; -- 对象类型变量* H! U% s# B, q% v6 }
+ V" E/ I9 B1 b: Y4 qdo
1 A9 t- @: |: G9 C& |8 a0 O m := str_to_num(omit(?.Name,1,1)); -- 先取Drain*后面的数字,在转换成整数类型7 l0 R- }9 I, d1 P9 {* W
Name := sprint("BA", m); -- 生产线名称
7 \) q1 e7 \, j% r% ^ Obj := str_to_obj(Name); -- 转换成对象变量
( i& L* C# L: U1 Q Z4 x, b1 R1 q! E- l( @
FOR i:=1 to 100 LOOP
* b g3 Y6 Y5 q% Q waituntil OBJ.occupied prio 1;7 v& y7 T9 L( G! w7 q
OBJ.cont.move(@); 5 r1 z3 Z- A# }" y4 `( B
7 d% b( y* u/ q2 D, z6 R# y) g NEXT;
F' U* K* D7 t7 e* A @.backwards:=false;
' @ F5 O; E: s; X7 f; qend;5 [7 ]$ z0 Y5 o7 T: d' f% G
|
|