全球FlexSim系统仿真中文论坛

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

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

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

本帖子中包含更多资源

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

x
2#
CraneJan 发表于 2012-3-7 15:32:23 | 只看该作者
1# hubangzhi 6 I5 ?1 @$ f- f: W+ J0 C8 K$ }( Z
1 r2 W$ _0 Q7 h8 I2 K  F
if(content(current)>1)
0 t7 V+ \- H" y% o' `* d6 e1 X' s{
( B$ }  e2 W& z& M        treenode ts=createemptytasksequence(centerobject(current,1),0,0);
1 G8 Q& w- D1 q) b, m  Y       
. F+ a5 S- d# }# G        inserttask(ts,TASKTYPE_TRAVEL,current,NULL);
9 t. E1 g# \' ?2 _6 l. h7 i5 `: o+ D        inserttask(ts,TASKTYPE_FRLOAD,item,current);
1 L1 f: j* M6 B) Q! E        inserttask(ts,TASKTYPE_BREAK,NULL,NULL);- p4 j/ H& M+ z7 L( }% W9 s" E0 {
        inserttask(ts,TASKTYPE_TRAVEL,centerobject(current,2),NULL);( p4 s5 b% B9 h1 p; |5 V3 i* Y
        inserttask(ts,TASKTYPE_FRUNLOAD,item,centerobject(current,2));. |8 @# `3 V+ {. j$ ~: Q: }
        % ~! J8 p' I# b1 K
        dispatchtasksequence(ts);
; k3 q% ?$ ~- Q  C3 t) b0 L}  J# g4 f% x7 G5 `8 Q
  K6 Q/ [! S. X0 R/ P
/ d: W( g' u0 u6 p
这样应该可以了吧……
3#
 楼主| hubangzhi 发表于 2012-3-11 22:42:44 | 只看该作者
2# CraneJan
+ M5 E7 Y, V! }
- N# j) v( u  p5 A4 o5 o' J2 @7 O& }
o啦 太感谢了哈
4#
qhg1982 发表于 2013-5-15 15:05:01 | 只看该作者
原模型的代码是:
* t8 H6 Y5 A5 O* T6 ~
& O1 q4 h, i* V% \8 [if(content(current)>1)
7 t, D' Y9 m& Y2 a  a+ H& R{
* \" i' j( F& j+ _        treenode item1=rank(current,1);" x( ]2 ^# x) i4 ?8 N
        treenode item2=rank(current,2);8 G% c7 |/ W( y. b" A2 z9 V2 W
        . P- k; h5 Q# q9 p$ R6 t: X1 p
        treenode ts=createemptytasksequence(centerobject(current,1),0,0);
8 _# Q* H' x1 y3 z$ A* M7 w( u3 [$ `        ' w7 U0 A- g2 l0 C2 F7 P
        inserttask(ts,TASKTYPE_TRAVEL,current,NULL);
- v5 N1 S/ [( Q! K' N) v& f% U        inserttask(ts,TASKTYPE_FRLOAD,item1,current,0);2 p5 z5 \8 Q. v: B: n
        inserttask(ts,TASKTYPE_BREAK,NULL,NULL);- d  j- A1 @% T7 P; t
        inserttask(ts,TASKTYPE_TRAVEL,centerobject(current,2),NULL);
9 _  s( O. B  s8 Y+ T        inserttask(ts,TASKTYPE_FRUNLOAD,item1,centerobject(current,2),0);5 M8 {8 I9 s' P# u+ P7 x* n* p
        ) N: v) q( f  j$ {# Q) H( Q7 Y* ~  |' y
        dispatchtasksequence(ts);        6 {$ A& F8 K2 Y+ s* o  h  S
        }
& u. {" F- ]) u  X6 Y/ W
, s! \9 K4 p& x只是用rank函数获取了流动实体的指针,为啥不行呢?
5#
天性518 发表于 2013-5-16 12:18:12 | 只看该作者
4# qhg1982
8 `; U, Q9 W: w4 z, I# N7 `( `7 W1 X% z. a* q
6 I; r* |8 N, g. `2 O$ d# d
这些因为操作员每次只会去版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-9-4 13:36 , Processed in 0.072240 second(s), 14 queries .

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

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