全球FlexSim系统仿真中文论坛

搜索
查看: 7310|回复: 5
打印 上一主题 下一主题

任务序列代码

[复制链接]
跳转到指定楼层
1#
啊钟 发表于 2014-5-29 14:53:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 啊钟 于 2014-5-29 21:31 编辑
# ~+ }6 `" R% _; `0 t' e4 W7 M2 E
这是我想用的任务序列,可是不知道为什么设置完了以后会显示程序出错,请问我是错在哪里呢?7 B- R# @" |) n2 r6 }9 M/ {4 j: U/ O

, T, x$ m% u& u' f/ q  btreenode item = parnode(1);1 D4 `* a( n! l5 l2 Q+ H
treenode current = ownerobject(c);/ x1 H/ V" {9 V9 k
int port = parval(2);
# i! ^: V& M& ^5 Q& l, U+ G  Y& H) n; f0 Q- J" R2 t
treenode ts = createemptytasksequence(centerobject(current,1),0,0);
- c( S% ^) O1 \  f
( z# B, G4 J: y9 S. F6 o5 ]inserttask(ts,TASKTYPE_TRAVEL,current,NULL);
9 g' _4 n+ T. U2 pinserttask(ts,TASKTYPE_FRLOAD,item,current,port);& i: {7 r; V( z. g3 n8 J0 w& f. E
inserttask(ts,TASKTYPE_TRAVEL,centerobject(current,2),NULL);& ]$ x8 ?. r5 x4 W+ v+ f$ q+ \
inserttask(ts,TASKTYPE_DELAY,NULL,NULL,60,STATE_BUSY);
9 `# `/ s. U# R/ {inserttask(ts,TASKTYPE_TRAVEL,outobject(current,port),NULL);
, w. c  l3 U" n. kinserttask(ts,TASKTYPE_FRUNLOAD,item,outobject(current,port),opipno(current,port));
* Q0 n: V. m7 ?% d
! n) i" `8 B. S+ j$ qdispatchtasksequence(ts);
9 _+ C! k) ?5 q! ^, ?2 @8 k- K" ]' s8 p+ C. T
return 0;  // return a 0 so this object will know that you made your own tasksequence and it doesn't need to make the standard tasksequence automatically
2#
慧娴亚伦 发表于 2014-5-30 10:07:18 | 只看该作者
单看代码是没有问题,但是需要结合具体的模型中的情况来看,您最好是能把报错截图上传。
3#
 楼主| 啊钟 发表于 2014-5-31 09:13:15 | 只看该作者
2# 慧娴亚伦
1 V  S9 p4 A, a6 r+ _$ U" Q
6 d4 H& }; R, v" C4 C8 }% D4 a# G: s  P
报错是这样的。其实我第一次输入代码的时候是可以运行的,但后来就一直不行了。

本帖子中包含更多资源

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

x
4#
 楼主| 啊钟 发表于 2014-5-31 09:13:33 | 只看该作者
本帖最后由 啊钟 于 2014-5-31 09:18 编辑 - [* f; A: I, I# G: a) M3 P: P

1 s: r. i; f4 I1 T3 ]) { 3# 啊钟 就是这个3 f6 H9 k) O5 H  b- f" i
' @) N1 a: k5 S
由于模型要到实验室才可以修改,我自己的软件item有限所以上传不了加入了任务序列的模型,我的任务序列是添加给每一个source后的queue,下面是没有添加任务序列的模型。我的模型还有一个问题,就是货物会不断地堆积在queue中,而不会被sink吸收,这是为什么呢?求解,谢谢!!

本帖子中包含更多资源

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

x
5#
 楼主| 啊钟 发表于 2014-5-31 16:19:59 | 只看该作者
2# 慧娴亚伦 " S& W* W" E) p

+ K' a5 ~0 x+ e- Y' Y; B
; M; Y! l( ^& Z* h( `5 W4 p) J我仔细看了一下发现代码的顺序有点问题,改了一下,发现可以运行了/ ^6 C9 N0 a; t" n$ S
7 |, r. \5 X) a* x# ?$ s
treenode item = parnode(1);; d$ Z7 ?. @& o4 @* j8 R( `
treenode current = ownerobject(c);
: ^: i7 w, ~+ v5 E. Z+ c; Dint port = parval(2);
' `7 G) |: T/ ?3 G; }% L' L* |- L) N# v
treenode ts = createemptytasksequence(centerobject(current,1),0,0);       //创建空任务序列
9 K+ s# }6 d! m! h% k1 Linserttask(ts,TASKTYPE_TRAVEL,current,NULL);                                   //走到本序列
# k/ t% A" r- vinserttask(ts,TASKTYPE_DELAY,NULL,NULL,60,STATE_BUSY);                       //延时60秒# ~' k% H7 g) N  @7 ^
inserttask(ts,TASKTYPE_FRLOAD,item,current,port);                             //装载实体# b. f, p# {6 ]4 L  }) x
inserttask(ts,TASKTYPE_TRAVEL,outobject(current,port),NULL);                //走到下一序列
- R3 p) A  x) p: r9 @; I7 Iinserttask(ts,TASKTYPE_DELAY,NULL,NULL,60,STATE_BUSY);                       //延时60秒8 d# m/ V) {1 F, Y; ]" @5 W3 r
inserttask(ts,TASKTYPE_FRUNLOAD,item,outobject(current,port),opipno(current,port));! n/ {* ?$ ?( h$ _
//卸载实体" t  x6 q7 Z9 Z* ^4 V2 }3 q: n& k
( T0 A3 H6 C  B* |, [) \) U
dispatchtasksequence(ts);                                                          //分配任务序列
" T! U: C' o  u! g& a5 b) I8 o, I( j
return 0;                                                                           // 返回0表示本对象创建自己的任务序列,而不是使用默认的自动创建的任务序列
' B2 ]7 O1 t/ u
: m2 g4 ~, u4 `8 J
# B# H3 G8 H! @/ l* ?1 n! c; o这样是可以的吗?谢谢您!
6#
guozhongyun 发表于 2014-8-21 19:42:24 | 只看该作者
学习学习!!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-29 21:47 , Processed in 0.087264 second(s), 15 queries .

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

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