|
本帖最后由 慧娴亚伦 于 2013-11-27 21:28 编辑
) R9 X% m* ]$ t; C( j- P( G$ a8 d+ n4 T, ?: h! }# T- D" x
我看了一下,引用到传送带速度的代码只出现在基本传送带的进入触发,所以出现这个情况基本上都是跟这个代码有关系。
' K, K4 R: H/ j+ B; M此代码是为了让基本传送带延迟一段时间之后再接受新的临时实体,当item1到达第一个决策点时,代码让他去端口1(即conveyor4),而查看使用运输工具的代码,里面写了如果要去端口1就要使用crane,而去端口2(即excess)则不需要运输工具。因此crane就来准备拾取item1(你仔细看就可以看到,临时实体到第一个决策点之后,crane就开始动了),到了决策点2有一段代码,如果item1不处于FRSTATE_MOVEREQUESTED状态(即下游可接受item,item目前正在等待运输工具将其拾起并送往下游,后面简称3状态)才执行holditem这个命令(让已经决定被释放的item取消释放),item1正好是处于3状态,因此在这个决策点不执行任何代码,到了第三个决策点就是单纯让item1释放到excess,但是在决策点1就已经给crane下达搬运item1的任务,因此crane还是会到决策点1搬运item1到conveyor4(无论现在item1处在什么位置)+ Q+ O6 `) @- A5 g! \
与此同时,如果item2到达决策点1,一样是下达去conveyor的指令,但是由于crane上有item1,下游正在准备接收item1,因此item2是处于FRSTATE_READY(即item释放,但还没找到合适的下游),到达决策点2的时就会执行holditem,取消释放,因此crane搬运完item1并不会去拾取item2。
( u% j! O7 p$ k- a那么何时crane才会再搬运item到conveyor4呢?只有等到crane上没有item,而一个新的item到达决策点1之后,carne才会重新启动去搬运此item。 |
|