全球FlexSim系统仿真中文论坛

搜索
查看: 8934|回复: 7
打印 上一主题 下一主题

[求助]用任务序列实现搬箱子

[复制链接]
跳转到指定楼层
1#
hubangzhi 发表于 2012-3-7 10:11:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用任务序列控制操作员在两个暂存区之间搬运箱子,基本实现,但是有时候操作员会不搬箱子,空跑一趟或多趟,求助。。。。. ~( \. {' k( ]* f7 A+ c

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
2#
CraneJan 发表于 2012-3-7 15:32:23 | 只看该作者
1# hubangzhi 9 B' |5 l1 `4 K; T: d+ Q

% R$ C# C! R& j1 X7 U( ~  iif(content(current)>1)
. d2 w! I0 ^0 h/ O, g" S: Y  |. C{
# v7 {& F$ ^/ X! c6 g& Y        treenode ts=createemptytasksequence(centerobject(current,1),0,0);; y+ R% b+ U0 {
        * W' q1 [: q& \9 B- ^& q8 a
        inserttask(ts,TASKTYPE_TRAVEL,current,NULL);
/ ?0 C/ l4 j- W  v4 [# i9 w; j        inserttask(ts,TASKTYPE_FRLOAD,item,current);
% K  J. Y& t( ]4 I8 R  J% ]( @+ B        inserttask(ts,TASKTYPE_BREAK,NULL,NULL);
0 Y6 G; I  {, S  [3 A9 r        inserttask(ts,TASKTYPE_TRAVEL,centerobject(current,2),NULL);, [8 b: }; f; y. ?# F7 R" A' ?9 E$ @/ {
        inserttask(ts,TASKTYPE_FRUNLOAD,item,centerobject(current,2));% o  O- I4 Y  s5 T
       
2 p. K! T; c1 s# \        dispatchtasksequence(ts);
+ T" m$ b1 T( b/ ~% @}
9 ~3 Y' ^) }) ?- d8 s2 ^  g, J. v/ o" i2 T  l+ a" W- U( j0 u- n
+ @/ u1 k- O4 a2 {
这样应该可以了吧……
3#
 楼主| hubangzhi 发表于 2012-3-11 22:42:44 | 只看该作者
2# CraneJan
' \+ m( f1 ]4 x  j2 O2 p( r/ S3 l5 y! |8 k9 @5 ?

; p" `+ t# M( S7 O9 u: io啦 太感谢了哈
4#
qhg1982 发表于 2013-5-15 15:05:01 | 只看该作者
原模型的代码是:. Y0 J9 z9 p+ |) L
+ \1 }8 Y$ w" C8 E6 q: V+ }
if(content(current)>1)5 N/ [, ?" N: u3 O; u
{
* ?0 O' H4 [+ G) G* @% ]        treenode item1=rank(current,1);  i0 l( I! Z6 E* m, V) O
        treenode item2=rank(current,2);5 k& C7 L2 \+ U9 Z2 I: ~+ w
       
# K' M' `" i( a: o, I        treenode ts=createemptytasksequence(centerobject(current,1),0,0);
3 H7 @/ G' Y' I$ I6 ]        ; @- y7 R$ J/ _, s( I. S
        inserttask(ts,TASKTYPE_TRAVEL,current,NULL);
. K) a3 }7 [( M        inserttask(ts,TASKTYPE_FRLOAD,item1,current,0);
0 |2 M4 d8 {) }. g+ H6 b        inserttask(ts,TASKTYPE_BREAK,NULL,NULL);
; M4 D! {2 N1 g% }        inserttask(ts,TASKTYPE_TRAVEL,centerobject(current,2),NULL);
. W# G8 o4 L" {8 F  |$ G        inserttask(ts,TASKTYPE_FRUNLOAD,item1,centerobject(current,2),0);% a4 t* `, ]5 D- Z7 r! |
       
" v8 ?; S! L# C; z; d' R        dispatchtasksequence(ts);          d$ v& x7 y. c) p; b
        }7 x1 m0 M' }/ n' R' t

; z1 [* h: I; X( I# E* c" W" k# ~只是用rank函数获取了流动实体的指针,为啥不行呢?
5#
天性518 发表于 2013-5-16 12:18:12 | 只看该作者
4# qhg1982
4 p7 s9 D5 m0 L3 q0 j
+ N% ~/ l9 a; A+ j& Y5 ?
# f% C  E. ]! g1 M/ W这些因为操作员每次只会去版item1,你把发生器3产生实体的方式改成到达序列,你再去观察模型,就会发现:操作员搬走item1这个实体之后,他就不会再搬了,这是因为暂存区中没有item1这个实体了让他来搬了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
6#
qhg1982 发表于 2013-5-22 08:46:58 | 只看该作者
谢谢!
7#
JYF-芳 发表于 2020-12-1 09:57:04 | 只看该作者
请问此问题解决了?我也遇到同样问题了,求教!十分感谢!
8#
wangchangping 发表于 2020-12-21 23:14:02 | 只看该作者
进来学学任务序列
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|全球FlexSim系统仿真中文论坛 ( 京ICP备14043114号-2 )

GMT+8, 2025-6-30 13:19 , Processed in 0.079675 second(s), 14 queries .

Powered by Discuz! X3.3© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表