全球FlexSim系统仿真中文论坛

标题: 任务序列混入分配器 [打印本页]

作者: lulu-luka    时间: 2017-1-6 10:34
标题: 任务序列混入分配器
本帖最后由 lulu-luka 于 2017-1-8 13:04 编辑
9 r; @# E+ `4 ~; i- o  i, y9 U* w. X  k$ x1 E! j
[local]1[/local]background:要在Flexsim里面实现一个汽车装配流程的仿真。发动机由传送带从分装线运送过来,利用升降机将发动机从传送带搬运到一个暂存区Queue1,接着由AGV将其搬运到第一个工位(利用合成器实现其装配),将发动机与副车架装配起来,这个装配过程实际上是在AGV小车上实现的,因此AGV小车会被占用同等装配时间,接着AGV将装配好副车架的发动机搬运到第二个工位进行装配,装配过程同第一个工位,装配完成之后,发动机流入下一个工位,由sink吸收,而AGV在装配完成之后自己按轨道行进到Queue1,接受下一个循环任务。
) }& ?  d1 h6 n" N8 H& g( Z$ ?Problem:在这个系统中,配置了多辆AGV完成相应的搬运工作,使用分配器将多个搬运任务分配给多个AGV,但分配器中自带的分配规则均不适用,且利用自带的use transporter设置时,除非AGV收到任务分配,否则不会自己行进,但是在实际生产中,在没有任务时,AGV还是自己按照既定的轨迹在运动。
  W5 ]! K$ b6 [' Q4 ZSolution:在分配器中选择循环时,多个AGV之间会出现任务抢夺的情况,实际生产中要求一辆AGV负责上述一个完整的装载、搬运、占用、搬运、占用、回到Queue的过程,分配器循环时,会出现一辆AGV在被占用时,另一辆AGV跑过来搬运的情况。
5 c% @- P/ |  x. FAsking for help:使得AGV在没有任务召唤时也能自己按照既定的速度按照既定的轨道行进,且单个AGV完成整个过程?[attach]3401[/attach]
作者: 慧娴亚伦    时间: 2017-1-6 19:52
千言万语,不如一张逻辑流程图或者模型来的好。5 `8 y* l1 B! A' R

9 Z0 k0 r; _# n7 d2 P5 _/ |1 E前面的background和problem,说实话写得让我看不下去。。。。你不如上传一个简单的模型来解释比较好。
6 ^$ ]  @0 ]( F9 y' }% P2 T0 I9 o" i2 g/ V5 ?5 J
agv按照轨道循环运作寻找工作可以使用agv模块很方便地实现,至于单个agv完成整个过程,有很多办法可以解决,我选择使用的是用标签记录任务执行器(TE)信息,让一个产品的所有工作都绑定一个TE来实现。附带有一个小例子,希望有帮助。
5 f* Z, D1 Q/ T# p0 r  V- m/ b/ g7 m+ Z# }. D4 ~
不过,个人的建议您应该要换一个思路,虽然实际中是agv在循环运作,但是实际上agv行进的位置是固定的,一次任务的流程也是固定的,而且后面还有装卸等操作,可以将agv直接看做是一个底盘(pallet)在不同的合成器中间流动,看做是一个流水线的工作。
作者: 漂吧    时间: 2017-1-6 21:44
好厉害,学习了。
% |7 {+ a+ x& s- h  y相比之下,我做的这个流程就太low了,不过也算一个思路吧
, h/ H7 _' t  b0 r5 A* }[attach]3391[/attach]
作者: 慧娴亚伦    时间: 2017-1-7 13:43
白猫黑猫能抓到老鼠就是好猫,我个人认为方法没有low还是不low,关键是可以解决问题。
- T7 N- u& y% B: M2 y3 j! ]稍微改进了一下3楼的模型,其实思路与2楼一致,只不过这回用itemtype来区分了。这样更加灵活,也不用去限定装载的类型。
作者: 漂吧    时间: 2017-1-7 17:21
本帖最后由 漂吧 于 2017-1-7 17:25 编辑
2 w4 P/ C& L& t! r6 ]9 h
5 Q2 Q% X/ M, L, R) a" _ 4# 慧娴亚伦 7 W1 z- d  m1 ?5 {$ v0 I
确实,这样修改比较好。2 p+ d+ l3 K* |
另外,关于如下图所示的地方,我不是太能理解它的作用及原理:' u4 K; i7 \# }2 p2 x6 _
[attach]3393[/attach]7 M2 g* t) G4 U9 |  W+ {# k
[attach]3394[/attach], I7 ]: B7 V6 P; x4 O# J0 o9 y
最后,您能帮我修改一下,下面这个模型吗?: m5 d1 [5 x: n
[attach]3395[/attach]4 T' d! q0 g1 C) ^( L/ j9 z" C
(要求:第三个暂存区,实现与第二个暂存区一样的功能)
作者: 慧娴亚伦    时间: 2017-1-7 17:44
1是优先级,2是先占值。都是指当前的自动生成的搬运任务的一些属性,二者的作用用户手册有详细的解释。
; a) T3 K7 j, q' N简单可以理解为:优先级就是执行任务的优先度,此值越高,在任务执行器空闲的时候越优先去完成;先占值则是任务的抢占能力,分为四个不同类型,默认是无抢占能力(no preempt),以仅先占(preempt only)为例,就是如果出现了这种任务等待执行,那么任务执行器无论当前在干什么,都会停下正在执行的任务前去执行该任务。其他类型不多做赘述。
2 K. L# J% @7 `; V3 r  s% l6 g
, M3 s% n, F0 D* l' ~) V关于模型请自己先尝试来改一下吧~
作者: 漂吧    时间: 2017-1-7 19:55
6# 慧娴亚伦 ) z! c5 H) R  N; I  B, l
关于priority和preemption之间的区别是否可以这样理解:4 C2 I) ]+ U1 c7 N
priority是关于调用执行器的优先权;
$ F1 Y) N/ n$ [6 spreemption是关于执行器对任务序列的处理。
7 f# D5 c; M  u" b1 |6 l- B此外:preemption的三个参数可否这样理解:
/ q# j' X' U( S+ x; J- ZPREEMPT_ONLY:插队;% v0 C4 f# ^, V: y5 `1 _. C8 l# M# R
PREEMPT_AND_ABORT_ACTIVE:任务转移;
0 `9 D1 Y1 F6 z. n- F( `) v( C4 APREEMPT_AND_ABORT_ALL:插队且所有任务终止。
8 v% i/ m6 i! `最后,模型修改好了:! Z2 t0 e6 C5 X' U9 O
[attach]3399[/attach]
作者: lulu-luka    时间: 2017-1-8 12:59
2# 慧娴亚伦 " m6 F# A( E+ P0 t
- `5 W3 Q/ R8 y5 `! K1 L  Y( A

+ _4 K+ l- V* T' |4 s3 v3 Z9 X谢谢版主细心回答~第一次发帖,确实是不知道怎么简要明了的描述自己的问题,也没有说清楚自己使用的版本。使用的是学校的Flexsim6.02教育版,所以最新版本中的AGV模块还有决策点这些模块都没有。下面是我自己昨天自己设定任务序列,实现了AGV的循环工作,也是误打误撞,但是在叉车速度设定不合适时,会出现超车的问题。在Flexsim6.02版本下,有什么好的解决方法么?
作者: 慧娴亚伦    时间: 2017-1-8 15:06
6.02版本避免路径上的超车可以修改passing模式(绿色箭头)改为non-passing模式(黄色箭头)8 v# D+ r* V! d7 k
如果是停留在节点上时候的超车那么就比较麻烦了,需要使用碰撞球。. \. @5 ^! C, u( W* p7 H
尝试在论坛搜索碰撞,看看其他帖子的碰撞应用办法。
作者: lulu-luka    时间: 2017-1-9 08:45
9# 慧娴亚伦
- i9 }. X# S  F3 h+ ^. U) B( o# @6 j
+ n# V  D, i6 ~- ?3 [3 W" I- y好的~谢谢啦




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