全球FlexSim系统仿真中文论坛

标题: 求解协同任务序列报错问题 [打印本页]

作者: 小蔡来了    时间: 2013-11-8 21:00
标题: 求解协同任务序列报错问题
请问我这个模型  是哪里出了问题呢?  急求助
作者: 慧娴亚伦    时间: 2013-11-9 09:05
这个跟flexsim的事件触发有关,你设定的是0时刻同时到达两个暂存区临时实体,在此同时你已经分派了操作员9装载暂存区7里面第一个临时实体的任务。但由于以上事件全部都是同时发生的,分派任务的时候会认为暂存区7里面还没有临时实体,因此无法获取暂存区7的临时实体的引用。此类报错大部分都是这种原因。
作者: 小蔡来了    时间: 2013-11-9 12:54
2# 慧娴亚伦
1 z- w( {4 g. V  B7 X. s: |" R9 C) m! ?/ S% Z! r2 p
那要实现这个逻辑  怎么能解决这个问题?
作者: 慧娴亚伦    时间: 2013-11-9 13:10
3# 小蔡来了 % ^4 ]- r2 j- C! Q: n2 O

4 V; Y0 J) d  N: a- f( U1 N! ]! y/ W- S2 f
你把写代码的那个暂存区之前发生器的到达时间改为1即可。
作者: 小蔡来了    时间: 2013-11-9 21:03
4# 慧娴亚伦
9 p2 k9 e% d  Q/ q- h4 K) ]6 U* E( ?2 g0 s6 ]' Q' i+ E# Y- H2 {
感谢你的回答  我看了一下  第二个操作员只能拣取到一次临时实体  以后就拣取不到了  人直接没拿任何实体  来回走  这是怎么回事呢?
作者: 慧娴亚伦    时间: 2013-11-9 22:40
5# 小蔡来了 # k4 W" @8 }/ i$ H
8 v2 M6 {; e: v, O! B" ?6 c
1 h/ b5 G& [  L* @9 K
呃。。。因为你的任务里面写的是first()这个函数,还是一个道理,你这个任务是在进入时候下达的,只会读到下达任务那时候的暂存区状态。
作者: 小蔡来了    时间: 2013-11-9 23:25
6# 慧娴亚伦
3 ]' ^9 P, W4 A  L8 `2 f, U: U$ j( f3 e
额  大神 还是这个问题  要怎样避免这些问题  达到我想要实现的逻辑呢?
作者: 慧娴亚伦    时间: 2013-11-10 12:19
7# 小蔡来了
9 N) B9 `% Z! T4 D1 P" H( \0 }. D
5 j4 U- Z& j. X  x1 e3 P& O7 i7 k) R- p+ W4 ?. ?+ r
你可以试试不是一次性分配所有的协同任务,而是当每一个临时实体到达时分配一次协同任务,这样就能实现你的逻辑。关键点在于你要知道什么时候全部的任务分配的那个时间点里面,所有的引用是否存在或者符合你的要求。
作者: 慧娴亚伦    时间: 2013-11-10 12:26
7# 小蔡来了
: @: v& ~, x, i+ Q" m' g
7 R( W. O. I9 v7 K! L2 n/ h- n* W' U
另外,你不必额外添加一个分配器来作为协同任务的分配执行器,可以直接让操作员来分配,你这样添加了之后引用有点乱。
作者: 小蔡来了    时间: 2013-11-10 14:30
9# 慧娴亚伦
% z$ \/ I" P4 h
% j$ K. n& Z9 n7 Q5 U0 |! K# y" A' Q2 e+ @! x1 s; ^# f
额  感谢解答
作者: 小蔡来了    时间: 2013-11-10 16:11
9# 慧娴亚伦 - ^+ x. O& q% B) t. p; y* `
. w8 x# U- V3 H

: {8 B& f9 U2 i. G" \ 关于这个问题 我学的东西有限  还是不能解决  你能做个能实现我上面逻辑的模型么  我研究研究 谢谢了
作者: 慧娴亚伦    时间: 2013-11-10 16:31
11# 小蔡来了
  {+ S! w$ V2 `+ q- N3 [
0 v6 |3 M: K7 \& k& i! [其实更多要考虑的是逻辑上的时间顺序。1 r0 o  F( S4 s; x! d  @' T9 i# o

) F. Z( A+ R% K+ m0 Mps:我觉得这个模型不一定需要使用协同任务,也可以使用任务分配器来指派的。




欢迎光临 全球FlexSim系统仿真中文论坛 (http://www.flexsimasia.com/) Powered by Discuz! X3.3