全球FlexSim系统仿真中文论坛

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

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

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

本帖子中包含更多资源

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

x
2#
CraneJan 发表于 2012-3-7 15:32:23 | 只看该作者
1# hubangzhi
( r6 W3 O% o  ?* m- m+ H0 a) z( P8 |- p3 @. g7 W9 P$ e: [$ v) a% v" b
if(content(current)>1)
$ D3 j+ x$ j" B. l8 q{, i, }, x% @; i! D" l1 _" `
        treenode ts=createemptytasksequence(centerobject(current,1),0,0);
1 e' E' |! ~! |  j8 u# z( L        # O# h; K4 l. }
        inserttask(ts,TASKTYPE_TRAVEL,current,NULL);3 V1 {9 A& j" X* W7 d! ]- T& |
        inserttask(ts,TASKTYPE_FRLOAD,item,current);/ `9 Z( M9 g( T# v/ P+ x
        inserttask(ts,TASKTYPE_BREAK,NULL,NULL);
+ a* _) l% `# a. t; T1 `1 l        inserttask(ts,TASKTYPE_TRAVEL,centerobject(current,2),NULL);
& O8 F8 C$ V# O        inserttask(ts,TASKTYPE_FRUNLOAD,item,centerobject(current,2));; S7 |  \7 D# {! T9 g' D* |* W* h
       
7 P3 N4 j2 F+ u7 j) w$ N        dispatchtasksequence(ts);9 k0 x% b+ \; R( ^
}
" ?4 m% v$ z' L) @" R: \  G0 e4 W5 F! O

9 h! r8 [0 V" m这样应该可以了吧……
3#
 楼主| hubangzhi 发表于 2012-3-11 22:42:44 | 只看该作者
2# CraneJan " U. A# u! {' j$ I" X3 p! j! Y
. Z) R1 I; p3 B. E" n6 K

0 c0 g/ n- B, y0 U! g4 ?. Q4 l1 [o啦 太感谢了哈
4#
qhg1982 发表于 2013-5-15 15:05:01 | 只看该作者
原模型的代码是:
- ]/ P8 l4 l; b) P4 v4 y
3 ^2 w2 a: ^' X- v8 i* o2 Mif(content(current)>1)
: v6 ]# m- s2 T8 i) Q8 l* u4 |  o2 i{# A, z  g# k( Y! _; k! \3 \
        treenode item1=rank(current,1);
  R% m; p. B' z. {) k, b7 T        treenode item2=rank(current,2);
( j' ?# K3 K9 {9 h% ]        / {: Z* h0 h8 u2 f! ^7 m1 V
        treenode ts=createemptytasksequence(centerobject(current,1),0,0);( L5 B" m' ^9 h) }/ @
       
) q* c6 }2 f/ y9 i2 j$ P        inserttask(ts,TASKTYPE_TRAVEL,current,NULL);
1 T" ~& I" a4 S% i# S7 G        inserttask(ts,TASKTYPE_FRLOAD,item1,current,0);
% ~4 a. A: B" ~6 r5 E# n        inserttask(ts,TASKTYPE_BREAK,NULL,NULL);8 @5 j' C+ D/ U: ^% s# v9 {9 Y
        inserttask(ts,TASKTYPE_TRAVEL,centerobject(current,2),NULL);% ]+ C- |. v9 a
        inserttask(ts,TASKTYPE_FRUNLOAD,item1,centerobject(current,2),0);
+ Z6 J$ i1 q: D. X       
0 j7 Y3 R( u" A0 M( l        dispatchtasksequence(ts);       
! F" Z3 D7 U; g( _8 w2 L+ L& `        }
4 i0 ~9 l5 [: |6 e$ m- H" J; U3 O
1 a/ ~$ F. K" F* P( l) s. f只是用rank函数获取了流动实体的指针,为啥不行呢?
5#
天性518 发表于 2013-5-16 12:18:12 | 只看该作者
4# qhg1982 6 }1 {0 H) r! k: H# k5 I
- f7 @7 _; @5 X) \, [
* j8 T1 ?6 @% P2 U+ D3 ]& _
这些因为操作员每次只会去版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-5-8 03:30 , Processed in 0.078902 second(s), 15 queries .

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

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