全球FlexSim系统仿真中文论坛

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

任务序列代码

[复制链接]
跳转到指定楼层
1#
啊钟 发表于 2014-5-29 14:53:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 啊钟 于 2014-5-29 21:31 编辑
) ~8 h" x# {4 U! h6 B/ _9 ]+ q2 \/ K* D; a
这是我想用的任务序列,可是不知道为什么设置完了以后会显示程序出错,请问我是错在哪里呢?
+ m0 D7 L: P* y8 @
' i4 v5 u- H; c2 Q6 {9 T# `7 [treenode item = parnode(1);3 W/ i: ?$ Z0 |7 L- j$ Z3 H
treenode current = ownerobject(c);+ p3 z$ k% l, b
int port = parval(2);
$ P0 b2 J8 `) F) }" E5 l3 ?
; [3 P5 m- i  R) S+ s9 f5 atreenode ts = createemptytasksequence(centerobject(current,1),0,0);
" C" A( H* H$ S- k4 ?: t, w0 N9 A7 Y
inserttask(ts,TASKTYPE_TRAVEL,current,NULL);- g0 [1 l: ], z, K
inserttask(ts,TASKTYPE_FRLOAD,item,current,port);) t- |# Y. a) ]# G$ Q
inserttask(ts,TASKTYPE_TRAVEL,centerobject(current,2),NULL);
; y$ x0 T9 [9 I7 W/ g: kinserttask(ts,TASKTYPE_DELAY,NULL,NULL,60,STATE_BUSY);: D! z) a. n& e% v  \8 y
inserttask(ts,TASKTYPE_TRAVEL,outobject(current,port),NULL);
& N+ e. y" @6 j: E3 A, E. Z2 Zinserttask(ts,TASKTYPE_FRUNLOAD,item,outobject(current,port),opipno(current,port));
' o$ r1 x6 K0 N4 p/ k( `- U" o4 ^
dispatchtasksequence(ts);' _! p% A0 u% k+ r! f

2 }) n4 \1 ?1 W! ~! Ereturn 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# 慧娴亚伦
  G; e! J! B. p2 ~7 S4 g( Q" L+ ?) ?# N: U* s6 E. A8 h, d

3 E  H  C& _) r, X0 m报错是这样的。其实我第一次输入代码的时候是可以运行的,但后来就一直不行了。

本帖子中包含更多资源

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

x
4#
 楼主| 啊钟 发表于 2014-5-31 09:13:33 | 只看该作者
本帖最后由 啊钟 于 2014-5-31 09:18 编辑
, @" O: Z4 m) w& B* ?, V$ L( k5 D% u, d- v0 Q' l+ B( r2 r
3# 啊钟 就是这个
' C; L2 V2 |. j+ b% P+ J
9 h6 e; O6 Y* |1 G由于模型要到实验室才可以修改,我自己的软件item有限所以上传不了加入了任务序列的模型,我的任务序列是添加给每一个source后的queue,下面是没有添加任务序列的模型。我的模型还有一个问题,就是货物会不断地堆积在queue中,而不会被sink吸收,这是为什么呢?求解,谢谢!!

本帖子中包含更多资源

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

x
5#
 楼主| 啊钟 发表于 2014-5-31 16:19:59 | 只看该作者
2# 慧娴亚伦
+ C' S- {& F/ L7 ]! F
/ j5 j  I' ]) I0 t! m! H; o+ [  p: x) E# v0 T9 f
我仔细看了一下发现代码的顺序有点问题,改了一下,发现可以运行了9 N. V( A! Q( N' r2 |6 n

  g3 a( [3 o& _- \- Q  Ntreenode item = parnode(1);
; p; v  J9 n+ y; x, ~5 ftreenode current = ownerobject(c);5 T) F! g: S- |; i8 R" u
int port = parval(2);
% c5 g$ w9 }* p; b: m. }, y+ N+ L, @/ ^/ R( _# s
treenode ts = createemptytasksequence(centerobject(current,1),0,0);       //创建空任务序列, P: ?$ o% [& |$ c& S# E# a/ f/ k
inserttask(ts,TASKTYPE_TRAVEL,current,NULL);                                   //走到本序列
! o6 a) W% P( @; Z) Y- I& p2 s, Jinserttask(ts,TASKTYPE_DELAY,NULL,NULL,60,STATE_BUSY);                       //延时60秒
" d% K$ v/ P. r. m) Z& W) O) {9 u  xinserttask(ts,TASKTYPE_FRLOAD,item,current,port);                             //装载实体
' ^* H) j+ t# x* K. tinserttask(ts,TASKTYPE_TRAVEL,outobject(current,port),NULL);                //走到下一序列
. i& O! K) i! E% ^inserttask(ts,TASKTYPE_DELAY,NULL,NULL,60,STATE_BUSY);                       //延时60秒
6 g# }( ~8 N3 w, d; Yinserttask(ts,TASKTYPE_FRUNLOAD,item,outobject(current,port),opipno(current,port));
2 f- \* M7 W8 W& Y. t//卸载实体
2 k0 m: G- c# \' D' r* T: A, y# j' P8 M1 r$ W$ y* I
dispatchtasksequence(ts);                                                          //分配任务序列! g9 m  p& z; {* Q( m# n# ^# z4 ^

& o! {& H" }3 `' a% Creturn 0;                                                                           // 返回0表示本对象创建自己的任务序列,而不是使用默认的自动创建的任务序列
/ B% y% Z' ?3 h3 [/ [
& o. [( H3 M5 l* J) }6 n6 \
. H7 r$ D  F6 l6 e8 F  R0 C这样是可以的吗?谢谢您!
6#
guozhongyun 发表于 2014-8-21 19:42:24 | 只看该作者
学习学习!!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-9-6 03:55 , Processed in 0.075367 second(s), 14 queries .

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

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