|
本帖最后由 慧娴亚伦 于 2013-11-27 21:28 编辑 0 a2 w+ R5 {# J2 d5 Q( j
/ x: x1 w1 S' k/ K- B5 [+ G
我看了一下,引用到传送带速度的代码只出现在基本传送带的进入触发,所以出现这个情况基本上都是跟这个代码有关系。& @4 r6 a6 D, v- k1 }$ N
此代码是为了让基本传送带延迟一段时间之后再接受新的临时实体,当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处在什么位置)9 h; \# D _8 D4 r. a# S
与此同时,如果item2到达决策点1,一样是下达去conveyor的指令,但是由于crane上有item1,下游正在准备接收item1,因此item2是处于FRSTATE_READY(即item释放,但还没找到合适的下游),到达决策点2的时就会执行holditem,取消释放,因此crane搬运完item1并不会去拾取item2。' }' i @+ D/ O6 D* [, }4 n
那么何时crane才会再搬运item到conveyor4呢?只有等到crane上没有item,而一个新的item到达决策点1之后,carne才会重新启动去搬运此item。 |
|